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-2016 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2017 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
@@ -106,9 +106,10 @@
 qtahHooks :: UserHooks
 qtahHooks = simpleUserHooks
   { hookedPrograms = [generatorProgram]
-  , postConf = \_ cf _ lbi -> do libDir <- lookupQtahCppLibDir lbi
-                                 storeQtahCppLibDir libDir
-                                 generateSources cf lbi libDir
+  , postConf = \args cf pd lbi -> do libDir <- lookupQtahCppLibDir lbi
+                                     storeQtahCppLibDir libDir
+                                     generateSources cf lbi libDir
+                                     postConf simpleUserHooks args cf pd lbi
   , preBuild = \_ _ -> addLibDir
   , preTest = \_ _ -> addLibDir
   , preCopy = \_ _ -> addLibDir  -- Not sure if necessary, but doesn't hurt.
@@ -208,7 +209,7 @@
   delStartingWithInDir "Q" $ startDir </> joinPath ["src", "Graphics", "UI", "Qtah", "Widgets"]
   delStartingWithInDir "Types.hs" $ startDir </> joinPath ["src", "Graphics", "UI", "Qtah", "Core"]
   mapM_ (delFile True (startDir </> joinPath ["src", "Graphics", "UI", "Qtah", "Internal"]))
-    ["Callback.hs", "EventListener.hs", "Listener.hs"]
+    ["Callback.hs", "EventListener.hs", "Listener.hs", "SceneEventListener.hs"]
 
   where verbosity = fromFlagOrDefault normal $ cleanVerbosity cleanFlags
 
diff --git a/qtah-qt5.cabal b/qtah-qt5.cabal
--- a/qtah-qt5.cabal
+++ b/qtah-qt5.cabal
@@ -1,12 +1,12 @@
 name: qtah-qt5
-version: 0.2.0
+version: 0.3.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-2016 Bryan Gardiner
+copyright: Copyright 2015-2017 The Qtah Authors.
 category: Graphics
 build-type: Custom
 cabal-version: >=1.10
@@ -21,20 +21,30 @@
     , Graphics.UI.Qtah.Core.HPointF
     , Graphics.UI.Qtah.Core.HRect
     , Graphics.UI.Qtah.Core.HSize
+    , Graphics.UI.Qtah.Core.QAbstractItemModel
+    , Graphics.UI.Qtah.Core.QAbstractListModel
+    , Graphics.UI.Qtah.Core.QAbstractTableModel
     , Graphics.UI.Qtah.Core.QChar
     , Graphics.UI.Qtah.Core.QChildEvent
     , Graphics.UI.Qtah.Core.QCoreApplication
     , Graphics.UI.Qtah.Core.QDir
     , Graphics.UI.Qtah.Core.QEvent
+    , Graphics.UI.Qtah.Core.QItemSelection
+    , Graphics.UI.Qtah.Core.QItemSelectionModel
+    , Graphics.UI.Qtah.Core.QItemSelectionRange
     , Graphics.UI.Qtah.Core.QList.Int
     , Graphics.UI.Qtah.Core.QList.QAbstractButton
+    , Graphics.UI.Qtah.Core.QList.QItemSelectionRange
+    , Graphics.UI.Qtah.Core.QList.QModelIndex
     , Graphics.UI.Qtah.Core.QList.QObject
     , Graphics.UI.Qtah.Core.QList.QString
     , Graphics.UI.Qtah.Core.QList.QVariant
     , Graphics.UI.Qtah.Core.QList.QWidget
     , Graphics.UI.Qtah.Core.QMargins
     , Graphics.UI.Qtah.Core.QMarginsF
+    , Graphics.UI.Qtah.Core.QModelIndex
     , Graphics.UI.Qtah.Core.QObject
+    , Graphics.UI.Qtah.Core.QPersistentModelIndex
     , Graphics.UI.Qtah.Core.QPoint
     , Graphics.UI.Qtah.Core.QPointF
     , Graphics.UI.Qtah.Core.QRect
@@ -43,13 +53,19 @@
     , Graphics.UI.Qtah.Core.QSizeF
     , Graphics.UI.Qtah.Core.QString
     , Graphics.UI.Qtah.Core.QStringList
+    , Graphics.UI.Qtah.Core.QStringListModel
+    , Graphics.UI.Qtah.Core.QTimer
     , Graphics.UI.Qtah.Core.QTimerEvent
     , Graphics.UI.Qtah.Core.QVariant
+    , Graphics.UI.Qtah.Core.QVector.Int
     , Graphics.UI.Qtah.Core.QVector.QPoint
+    , Graphics.UI.Qtah.Core.QVector.QPointF
+    , Graphics.UI.Qtah.Core.QVector.QRgb
     , Graphics.UI.Qtah.Core.Types
     , Graphics.UI.Qtah.Event
     , Graphics.UI.Qtah.Gui.HColor
     , Graphics.UI.Qtah.Gui.QActionEvent
+    , Graphics.UI.Qtah.Gui.QBrush
     , Graphics.UI.Qtah.Gui.QClipboard
     , Graphics.UI.Qtah.Gui.QCloseEvent
     , Graphics.UI.Qtah.Gui.QColor
@@ -57,23 +73,41 @@
     , Graphics.UI.Qtah.Gui.QEnterEvent
     , Graphics.UI.Qtah.Gui.QExposeEvent
     , Graphics.UI.Qtah.Gui.QFocusEvent
+    , Graphics.UI.Qtah.Gui.QFont
     , Graphics.UI.Qtah.Gui.QHideEvent
     , Graphics.UI.Qtah.Gui.QHoverEvent
+    , Graphics.UI.Qtah.Gui.QImage
     , Graphics.UI.Qtah.Gui.QInputEvent
     , Graphics.UI.Qtah.Gui.QIntValidator
     , Graphics.UI.Qtah.Gui.QKeyEvent
     , Graphics.UI.Qtah.Gui.QMouseEvent
+    , Graphics.UI.Qtah.Gui.QOpenGLWindow
+    , Graphics.UI.Qtah.Gui.QPaintDevice
+    , Graphics.UI.Qtah.Gui.QPaintDeviceWindow
+    , Graphics.UI.Qtah.Gui.QPaintEvent
+    , Graphics.UI.Qtah.Gui.QPainter
+    , Graphics.UI.Qtah.Gui.QPainterPath
+    , Graphics.UI.Qtah.Gui.QPen
     , Graphics.UI.Qtah.Gui.QPolygon
     , Graphics.UI.Qtah.Gui.QPolygonF
+    , Graphics.UI.Qtah.Gui.QRasterWindow
     , Graphics.UI.Qtah.Gui.QRegion
     , Graphics.UI.Qtah.Gui.QShowEvent
+    , Graphics.UI.Qtah.Gui.QSurface
+    , Graphics.UI.Qtah.Gui.QTransform
     , Graphics.UI.Qtah.Gui.QValidator
     , Graphics.UI.Qtah.Gui.QWheelEvent
+    , Graphics.UI.Qtah.Gui.QWindow
+    , Graphics.UI.Qtah.Gui.QtahOpenGLWindow
+    , Graphics.UI.Qtah.Gui.QtahRasterWindow
+    , Graphics.UI.Qtah.SceneEvent
     , Graphics.UI.Qtah.Signal
     -- TODO This should not be exposed directly, but there is no nice interface
     -- to it right now.
     , Graphics.UI.Qtah.Std
     , Graphics.UI.Qtah.Widgets.QAbstractButton
+    , Graphics.UI.Qtah.Widgets.QAbstractGraphicsShapeItem
+    , Graphics.UI.Qtah.Widgets.QAbstractItemView
     , Graphics.UI.Qtah.Widgets.QAbstractScrollArea
     , Graphics.UI.Qtah.Widgets.QAbstractSlider
     , Graphics.UI.Qtah.Widgets.QAbstractSpinBox
@@ -90,6 +124,15 @@
     , Graphics.UI.Qtah.Widgets.QFileDialog
     , Graphics.UI.Qtah.Widgets.QFormLayout
     , Graphics.UI.Qtah.Widgets.QFrame
+    , Graphics.UI.Qtah.Widgets.QGraphicsEllipseItem
+    , Graphics.UI.Qtah.Widgets.QGraphicsItem
+    , Graphics.UI.Qtah.Widgets.QGraphicsPolygonItem
+    , Graphics.UI.Qtah.Widgets.QGraphicsRectItem
+    , Graphics.UI.Qtah.Widgets.QGraphicsScene
+    , Graphics.UI.Qtah.Widgets.QGraphicsSceneEvent
+    , Graphics.UI.Qtah.Widgets.QGraphicsSceneMouseEvent
+    , Graphics.UI.Qtah.Widgets.QGraphicsSceneWheelEvent
+    , Graphics.UI.Qtah.Widgets.QGraphicsView
     , Graphics.UI.Qtah.Widgets.QGridLayout
     , Graphics.UI.Qtah.Widgets.QGroupBox
     , Graphics.UI.Qtah.Widgets.QHBoxLayout
@@ -98,10 +141,12 @@
     , Graphics.UI.Qtah.Widgets.QLayout
     , Graphics.UI.Qtah.Widgets.QLayoutItem
     , Graphics.UI.Qtah.Widgets.QLineEdit
+    , Graphics.UI.Qtah.Widgets.QListView
     , Graphics.UI.Qtah.Widgets.QMainWindow
     , Graphics.UI.Qtah.Widgets.QMenu
     , Graphics.UI.Qtah.Widgets.QMenuBar
     , Graphics.UI.Qtah.Widgets.QMessageBox
+    , Graphics.UI.Qtah.Widgets.QOpenGLWidget
     , Graphics.UI.Qtah.Widgets.QProgressBar
     , Graphics.UI.Qtah.Widgets.QPushButton
     , Graphics.UI.Qtah.Widgets.QRadioButton
@@ -121,20 +166,30 @@
     , Graphics.UI.Qtah.Widgets.QVBoxLayout
     , Graphics.UI.Qtah.Widgets.QWidget
   other-modules:
-      Graphics.UI.Qtah.Generated.Core.QChar
+      Graphics.UI.Qtah.Generated.Core.QAbstractItemModel
+    , Graphics.UI.Qtah.Generated.Core.QAbstractListModel
+    , Graphics.UI.Qtah.Generated.Core.QAbstractTableModel
+    , Graphics.UI.Qtah.Generated.Core.QChar
     , Graphics.UI.Qtah.Generated.Core.QChildEvent
     , Graphics.UI.Qtah.Generated.Core.QCoreApplication
     , Graphics.UI.Qtah.Generated.Core.QDir
     , Graphics.UI.Qtah.Generated.Core.QEvent
+    , Graphics.UI.Qtah.Generated.Core.QItemSelection
+    , Graphics.UI.Qtah.Generated.Core.QItemSelectionModel
+    , Graphics.UI.Qtah.Generated.Core.QItemSelectionRange
     , Graphics.UI.Qtah.Generated.Core.QList.Int
     , Graphics.UI.Qtah.Generated.Core.QList.QAbstractButton
+    , Graphics.UI.Qtah.Generated.Core.QList.QItemSelectionRange
+    , Graphics.UI.Qtah.Generated.Core.QList.QModelIndex
     , Graphics.UI.Qtah.Generated.Core.QList.QObject
     , Graphics.UI.Qtah.Generated.Core.QList.QString
     , Graphics.UI.Qtah.Generated.Core.QList.QVariant
     , Graphics.UI.Qtah.Generated.Core.QList.QWidget
     , Graphics.UI.Qtah.Generated.Core.QMargins
     , Graphics.UI.Qtah.Generated.Core.QMarginsF
+    , Graphics.UI.Qtah.Generated.Core.QModelIndex
     , Graphics.UI.Qtah.Generated.Core.QObject
+    , Graphics.UI.Qtah.Generated.Core.QPersistentModelIndex
     , Graphics.UI.Qtah.Generated.Core.QPoint
     , Graphics.UI.Qtah.Generated.Core.QPointF
     , Graphics.UI.Qtah.Generated.Core.QRect
@@ -143,12 +198,17 @@
     , Graphics.UI.Qtah.Generated.Core.QSizeF
     , Graphics.UI.Qtah.Generated.Core.QString
     , Graphics.UI.Qtah.Generated.Core.QStringList
+    , Graphics.UI.Qtah.Generated.Core.QStringListModel
+    , Graphics.UI.Qtah.Generated.Core.QTimer
     , Graphics.UI.Qtah.Generated.Core.QTimerEvent
     , Graphics.UI.Qtah.Generated.Core.QVariant
+    , Graphics.UI.Qtah.Generated.Core.QVector.Int
     , Graphics.UI.Qtah.Generated.Core.QVector.QPoint
     , Graphics.UI.Qtah.Generated.Core.QVector.QPointF
+    , Graphics.UI.Qtah.Generated.Core.QVector.QRgb
     , Graphics.UI.Qtah.Generated.Core.Types
     , Graphics.UI.Qtah.Generated.Gui.QActionEvent
+    , Graphics.UI.Qtah.Generated.Gui.QBrush
     , Graphics.UI.Qtah.Generated.Gui.QClipboard
     , Graphics.UI.Qtah.Generated.Gui.QCloseEvent
     , Graphics.UI.Qtah.Generated.Gui.QColor
@@ -156,20 +216,38 @@
     , Graphics.UI.Qtah.Generated.Gui.QEnterEvent
     , Graphics.UI.Qtah.Generated.Gui.QExposeEvent
     , Graphics.UI.Qtah.Generated.Gui.QFocusEvent
+    , Graphics.UI.Qtah.Generated.Gui.QFont
     , Graphics.UI.Qtah.Generated.Gui.QHideEvent
     , Graphics.UI.Qtah.Generated.Gui.QHoverEvent
+    , Graphics.UI.Qtah.Generated.Gui.QImage
     , Graphics.UI.Qtah.Generated.Gui.QInputEvent
     , Graphics.UI.Qtah.Generated.Gui.QIntValidator
     , Graphics.UI.Qtah.Generated.Gui.QKeyEvent
     , Graphics.UI.Qtah.Generated.Gui.QMouseEvent
+    , Graphics.UI.Qtah.Generated.Gui.QOpenGLWindow
+    , Graphics.UI.Qtah.Generated.Gui.QPaintDevice
+    , Graphics.UI.Qtah.Generated.Gui.QPaintDeviceWindow
+    , Graphics.UI.Qtah.Generated.Gui.QPaintEvent
+    , Graphics.UI.Qtah.Generated.Gui.QPainter
+    , Graphics.UI.Qtah.Generated.Gui.QPainterPath
+    , Graphics.UI.Qtah.Generated.Gui.QPen
     , Graphics.UI.Qtah.Generated.Gui.QPolygon
     , Graphics.UI.Qtah.Generated.Gui.QPolygonF
+    , Graphics.UI.Qtah.Generated.Gui.QRasterWindow
     , Graphics.UI.Qtah.Generated.Gui.QRegion
     , Graphics.UI.Qtah.Generated.Gui.QShowEvent
+    , Graphics.UI.Qtah.Generated.Gui.QSurface
+    , Graphics.UI.Qtah.Generated.Gui.QTransform
     , Graphics.UI.Qtah.Generated.Gui.QValidator
     , Graphics.UI.Qtah.Generated.Gui.QWheelEvent
+    , Graphics.UI.Qtah.Generated.Gui.QWindow
+    , Graphics.UI.Qtah.Generated.Gui.QtahOpenGLWindow
+    , Graphics.UI.Qtah.Generated.Gui.QtahRasterWindow
     , Graphics.UI.Qtah.Generated.Internal.EventListener
+    , Graphics.UI.Qtah.Generated.Internal.SceneEventListener
     , Graphics.UI.Qtah.Generated.Widgets.QAbstractButton
+    , Graphics.UI.Qtah.Generated.Widgets.QAbstractGraphicsShapeItem
+    , Graphics.UI.Qtah.Generated.Widgets.QAbstractItemView
     , Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea
     , Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider
     , Graphics.UI.Qtah.Generated.Widgets.QAbstractSpinBox
@@ -186,6 +264,15 @@
     , Graphics.UI.Qtah.Generated.Widgets.QFileDialog
     , Graphics.UI.Qtah.Generated.Widgets.QFormLayout
     , Graphics.UI.Qtah.Generated.Widgets.QFrame
+    , Graphics.UI.Qtah.Generated.Widgets.QGraphicsEllipseItem
+    , Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem
+    , Graphics.UI.Qtah.Generated.Widgets.QGraphicsPolygonItem
+    , Graphics.UI.Qtah.Generated.Widgets.QGraphicsRectItem
+    , Graphics.UI.Qtah.Generated.Widgets.QGraphicsScene
+    , Graphics.UI.Qtah.Generated.Widgets.QGraphicsSceneEvent
+    , Graphics.UI.Qtah.Generated.Widgets.QGraphicsSceneMouseEvent
+    , Graphics.UI.Qtah.Generated.Widgets.QGraphicsSceneWheelEvent
+    , Graphics.UI.Qtah.Generated.Widgets.QGraphicsView
     , Graphics.UI.Qtah.Generated.Widgets.QGridLayout
     , Graphics.UI.Qtah.Generated.Widgets.QGroupBox
     , Graphics.UI.Qtah.Generated.Widgets.QHBoxLayout
@@ -194,10 +281,12 @@
     , Graphics.UI.Qtah.Generated.Widgets.QLayout
     , Graphics.UI.Qtah.Generated.Widgets.QLayoutItem
     , Graphics.UI.Qtah.Generated.Widgets.QLineEdit
+    , Graphics.UI.Qtah.Generated.Widgets.QListView
     , Graphics.UI.Qtah.Generated.Widgets.QMainWindow
     , Graphics.UI.Qtah.Generated.Widgets.QMenu
     , Graphics.UI.Qtah.Generated.Widgets.QMenuBar
     , Graphics.UI.Qtah.Generated.Widgets.QMessageBox
+    , Graphics.UI.Qtah.Generated.Widgets.QOpenGLWidget
     , Graphics.UI.Qtah.Generated.Widgets.QProgressBar
     , Graphics.UI.Qtah.Generated.Widgets.QPushButton
     , Graphics.UI.Qtah.Generated.Widgets.QRadioButton
@@ -219,6 +308,7 @@
     , Graphics.UI.Qtah.Internal.Callback
     , Graphics.UI.Qtah.Internal.EventListener
     , Graphics.UI.Qtah.Internal.Listener
+    , Graphics.UI.Qtah.Internal.SceneEventListener
   other-extensions:
       FlexibleContexts
     , NoMonomorphismRestriction
@@ -227,8 +317,8 @@
     , binary >=0.7 && <0.9
     , bytestring >=0.10 && <0.11
     , hoppy-runtime >=0.3 && <0.4
-    , qtah-cpp-qt5 >=0.2 && <0.3
-    , qtah-generator >=0.2 && <0.3
+    , qtah-cpp-qt5 >=0.3 && <0.4
+    , qtah-generator >=0.3 && <0.4
   hs-source-dirs: src
   ghc-options: -W -fwarn-incomplete-patterns -fwarn-unused-do-bind
   default-language: Haskell2010
@@ -243,9 +333,9 @@
   build-depends:
       base >=4 && <5
     , hoppy-runtime >=0.3 && <0.4
-    , HUnit >=1.2 && <1.4
+    , HUnit >=1.2 && <1.6
     , qtah-qt5
   hs-source-dirs: tests
-  ghc-options: -W -fwarn-incomplete-patterns -fwarn-unused-do-bind
+  ghc-options: -W -fwarn-incomplete-patterns -fwarn-unused-do-bind -dynamic
   default-language: Haskell2010
   extra-libraries: qtah
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-2016 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2017 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-2016 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2017 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
@@ -27,7 +27,7 @@
 data HPoint = HPoint
   { x :: Int
   , y :: Int
-  } deriving (Eq, Show)
+  } deriving (Eq, Ord, Show)
 
 null :: HPoint
 null = HPoint 0 0
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 2016 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2017 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-2016 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2017 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-2016 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2017 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/QAbstractItemModel.hs b/src/Graphics/UI/Qtah/Core/QAbstractItemModel.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QAbstractItemModel.hs
@@ -0,0 +1,219 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  columnCount,
+  columnCountAt,
+  fetchMore,
+  flags,
+  getData,
+  getDataWithRole,
+  hasChildren,
+  hasChildrenAt,
+  hasIndex,
+  hasIndexAt,
+  headerData,
+  headerDataWithRole,
+  index,
+  indexAt,
+  insertColumn,
+  insertColumnAt,
+  insertColumns,
+  insertColumnsAt,
+  insertRow,
+  insertRowAt,
+  insertRows,
+  insertRowsAt,
+  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,
+  columnsAboutToBeInsertedSignal,
+  columnsAboutToBeMovedSignal,
+  columnsAboutToBeRemovedSignal,
+  columnsInsertedSignal,
+  columnsMovedSignal,
+  columnsRemovedSignal,
+  dataChangedSignal,
+  modelAboutToBeResetSignal,
+  modelResetSignal,
+  rowsAboutToBeInsertedSignal,
+  rowsAboutToBeMovedSignal,
+  rowsAboutToBeRemovedSignal,
+  rowsInsertedSignal,
+  rowsMovedSignal,
+  rowsRemovedSignal,
+  QAbstractItemModelLayoutChangeHint (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QAbstractItemModel
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M28
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.Int as M76
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude ()
+import qualified Prelude as HoppyP
+
+
+castConst = toQAbstractItemModelConst
+cast = toQAbstractItemModel
+downCastConst = downToQAbstractItemModelConst
+downCast = downToQAbstractItemModel
+
+columnsAboutToBeInsertedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+columnsAboutToBeInsertedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntInt_new fn'
+    listenerQModelIndexIntInt_connectListener listener' object' "2columnsAboutToBeInserted(QModelIndex,int,int)"
+  , QtahSignal.internalName = "QAbstractItemModel::columnsAboutToBeInserted (ListenerQModelIndexIntInt)"
+  }
+
+columnsAboutToBeMovedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M28.QModelIndex -> HoppyP.Int -> HoppyP.IO ())
+columnsAboutToBeMovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntIntQModelIndexInt_new fn'
+    listenerQModelIndexIntIntQModelIndexInt_connectListener listener' object' "2columnsAboutToBeMoved(QModelIndex,int,int,QModelIndex,int)"
+  , QtahSignal.internalName = "QAbstractItemModel::columnsAboutToBeMoved (ListenerQModelIndexIntIntQModelIndexInt)"
+  }
+
+columnsAboutToBeRemovedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+columnsAboutToBeRemovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntInt_new fn'
+    listenerQModelIndexIntInt_connectListener listener' object' "2columnsAboutToBeRemoved(QModelIndex,int,int)"
+  , QtahSignal.internalName = "QAbstractItemModel::columnsAboutToBeRemoved (ListenerQModelIndexIntInt)"
+  }
+
+columnsInsertedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+columnsInsertedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntInt_new fn'
+    listenerQModelIndexIntInt_connectListener listener' object' "2columnsInserted(QModelIndex,int,int)"
+  , QtahSignal.internalName = "QAbstractItemModel::columnsInserted (ListenerQModelIndexIntInt)"
+  }
+
+columnsMovedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M28.QModelIndex -> HoppyP.Int -> HoppyP.IO ())
+columnsMovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntIntQModelIndexInt_new fn'
+    listenerQModelIndexIntIntQModelIndexInt_connectListener listener' object' "2columnsMoved(QModelIndex,int,int,QModelIndex,int)"
+  , QtahSignal.internalName = "QAbstractItemModel::columnsMoved (ListenerQModelIndexIntIntQModelIndexInt)"
+  }
+
+columnsRemovedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+columnsRemovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntInt_new fn'
+    listenerQModelIndexIntInt_connectListener listener' object' "2columnsRemoved(QModelIndex,int,int)"
+  , QtahSignal.internalName = "QAbstractItemModel::columnsRemoved (ListenerQModelIndexIntInt)"
+  }
+
+dataChangedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M28.QModelIndex -> M28.QModelIndex -> M76.QVectorInt -> HoppyP.IO ())
+dataChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexQModelIndexQVectorInt_new fn'
+    listenerQModelIndexQModelIndexQVectorInt_connectListener listener' object' "2dataChanged(QModelIndex,QModelIndex,QVector<int>)"
+  , QtahSignal.internalName = "QAbstractItemModel::dataChanged (ListenerQModelIndexQModelIndexQVectorInt)"
+  }
+
+modelAboutToBeResetSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+modelAboutToBeResetSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2modelAboutToBeReset()"
+  , QtahSignal.internalName = "QAbstractItemModel::modelAboutToBeReset (Listener)"
+  }
+
+modelResetSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+modelResetSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2modelReset()"
+  , QtahSignal.internalName = "QAbstractItemModel::modelReset (Listener)"
+  }
+
+rowsAboutToBeInsertedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+rowsAboutToBeInsertedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntInt_new fn'
+    listenerQModelIndexIntInt_connectListener listener' object' "2rowsAboutToBeInserted(QModelIndex,int,int)"
+  , QtahSignal.internalName = "QAbstractItemModel::rowsAboutToBeInserted (ListenerQModelIndexIntInt)"
+  }
+
+rowsAboutToBeMovedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M28.QModelIndex -> HoppyP.Int -> HoppyP.IO ())
+rowsAboutToBeMovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntIntQModelIndexInt_new fn'
+    listenerQModelIndexIntIntQModelIndexInt_connectListener listener' object' "2rowsAboutToBeMoved(QModelIndex,int,int,QModelIndex,int)"
+  , QtahSignal.internalName = "QAbstractItemModel::rowsAboutToBeMoved (ListenerQModelIndexIntIntQModelIndexInt)"
+  }
+
+rowsAboutToBeRemovedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+rowsAboutToBeRemovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntInt_new fn'
+    listenerQModelIndexIntInt_connectListener listener' object' "2rowsAboutToBeRemoved(QModelIndex,int,int)"
+  , QtahSignal.internalName = "QAbstractItemModel::rowsAboutToBeRemoved (ListenerQModelIndexIntInt)"
+  }
+
+rowsInsertedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+rowsInsertedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntInt_new fn'
+    listenerQModelIndexIntInt_connectListener listener' object' "2rowsInserted(QModelIndex,int,int)"
+  , QtahSignal.internalName = "QAbstractItemModel::rowsInserted (ListenerQModelIndexIntInt)"
+  }
+
+rowsMovedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M28.QModelIndex -> HoppyP.Int -> HoppyP.IO ())
+rowsMovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntIntQModelIndexInt_new fn'
+    listenerQModelIndexIntIntQModelIndexInt_connectListener listener' object' "2rowsMoved(QModelIndex,int,int,QModelIndex,int)"
+  , QtahSignal.internalName = "QAbstractItemModel::rowsMoved (ListenerQModelIndexIntIntQModelIndexInt)"
+  }
+
+rowsRemovedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+rowsRemovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntInt_new fn'
+    listenerQModelIndexIntInt_connectListener listener' object' "2rowsRemoved(QModelIndex,int,int)"
+  , QtahSignal.internalName = "QAbstractItemModel::rowsRemoved (ListenerQModelIndexIntInt)"
+  }
diff --git a/src/Graphics/UI/Qtah/Core/QAbstractListModel.hs b/src/Graphics/UI/Qtah/Core/QAbstractListModel.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QAbstractListModel.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QAbstractTableModel.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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/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,93 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  cell,
+  combiningClass,
+  currentUnicodeVersion,
+  decomposition,
+  decompositionTag,
+  digitValue,
+  direction,
+  eQ,
+  gE,
+  gT,
+  hasMirrored,
+  isDigit,
+  isHighSurrogate,
+  isLetter,
+  isLetterOrNumber,
+  isLowSurrogate,
+  isLower,
+  isMark,
+  isNull,
+  isNumber,
+  isPrint,
+  isPunct,
+  isSpace,
+  isSymbol,
+  isTitleCase,
+  isUpper,
+  joiningType,
+  lE,
+  lT,
+  mirroredChar,
+  nE,
+  newFromLatin1,
+  row,
+  toCaseFolded,
+  toLatin1,
+  toLower,
+  toTitleCase,
+  toUpper,
+  unicode,
+  unicodeRef,
+  unicodeVersion,
+  QCharCategory (..),
+  QCharDecomposition (..),
+  QCharJoiningType (..),
+  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,48 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,38 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QCoreApplication (
+  QCoreApplicationValue (..),
+  QCoreApplicationConstPtr (..),
+  QCoreApplicationPtr (..),
+  QCoreApplicationConst,
+  QCoreApplication,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  arguments,
+  exec,
+  exit,
+  getInstance,
+  new,
+  postEvent,
+  postEventWithPriority,
+  quit,
+  sendEvent,
+  ) 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/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,124 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  fromQDirFilters,
+  IsQDirFilters (..),
+  dirs,
+  allDirs,
+  files,
+  drives,
+  noSymLinks,
+  noDotAndDotDot,
+  noDot,
+  noDotDot,
+  allEntries,
+  readable,
+  writable,
+  executable,
+  modified,
+  hidden,
+  system,
+  caseSensitive,
+  QDirSortFlag (..),
+  QDirSortFlags,
+  fromQDirSortFlags,
+  IsQDirSortFlags (..),
+  name,
+  time,
+  size,
+  typ,
+  unsorted,
+  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 M14
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQDirConst
+cast = toQDir
+downCastConst = downToQDirConst
+downCast = downToQDir
+
+decode :: (QDirConstPtr this) => this -> QtahP.IO M14.QDir
+decode = QtahFHR.decode QtahP.. toQDirConst
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,49 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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/QItemSelection.hs b/src/Graphics/UI/Qtah/Core/QItemSelection.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QItemSelection.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M22
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQItemSelectionConst
+cast = toQItemSelection
+downCastConst = downToQItemSelectionConst
+downCast = downToQItemSelection
+
+decode :: (QItemSelectionConstPtr this) => this -> QtahP.IO [M22.QItemSelectionRange]
+decode = QtahFHR.decode QtahP.. toQItemSelectionConst
diff --git a/src/Graphics/UI/Qtah/Core/QItemSelectionModel.hs b/src/Graphics/UI/Qtah/Core/QItemSelectionModel.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QItemSelectionModel.hs
@@ -0,0 +1,119 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  hasSelection,
+  isColumnSelected,
+  isRowSelected,
+  isSelected,
+  model,
+  modelConst,
+  reset,
+  rowIntersectsSelection,
+  selectIndex,
+  selectSelection,
+  selectedColumns,
+  selectedIndexes,
+  selectedRows,
+  selection,
+  setCurrentIndex,
+  setModel,
+  currentChangedSignal,
+  currentColumnChangedSignal,
+  currentRowChangedSignal,
+  modelChangedSignal,
+  selectionChangedSignal,
+  QItemSelectionModelSelectionFlag (..),
+  QItemSelectionModelSelectionFlags,
+  fromQItemSelectionModelSelectionFlags,
+  IsQItemSelectionModelSelectionFlags (..),
+  noUpdate,
+  clearFlag,
+  select,
+  deselect,
+  toggle,
+  current,
+  rows,
+  columns,
+  selectCurrent,
+  toggleCurrent,
+  clearAndSelect,
+  ) where
+
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M2
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelection as M18
+import Graphics.UI.Qtah.Generated.Core.QItemSelectionModel
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M28
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude ()
+import qualified Prelude as HoppyP
+
+
+castConst = toQItemSelectionModelConst
+cast = toQItemSelectionModel
+downCastConst = downToQItemSelectionModelConst
+downCast = downToQItemSelectionModel
+
+currentChangedSignal :: (QItemSelectionModelPtr object) => QtahSignal.Signal object (M28.QModelIndex -> M28.QModelIndex -> HoppyP.IO ())
+currentChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexQModelIndex_new fn'
+    listenerQModelIndexQModelIndex_connectListener listener' object' "2currentChanged(QModelIndex,QModelIndex)"
+  , QtahSignal.internalName = "QItemSelectionModel::currentChanged (ListenerQModelIndexQModelIndex)"
+  }
+
+currentColumnChangedSignal :: (QItemSelectionModelPtr object) => QtahSignal.Signal object (M28.QModelIndex -> M28.QModelIndex -> HoppyP.IO ())
+currentColumnChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexQModelIndex_new fn'
+    listenerQModelIndexQModelIndex_connectListener listener' object' "2currentColumnChanged(QModelIndex,QModelIndex)"
+  , QtahSignal.internalName = "QItemSelectionModel::currentColumnChanged (ListenerQModelIndexQModelIndex)"
+  }
+
+currentRowChangedSignal :: (QItemSelectionModelPtr object) => QtahSignal.Signal object (M28.QModelIndex -> M28.QModelIndex -> HoppyP.IO ())
+currentRowChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexQModelIndex_new fn'
+    listenerQModelIndexQModelIndex_connectListener listener' object' "2currentRowChanged(QModelIndex,QModelIndex)"
+  , QtahSignal.internalName = "QItemSelectionModel::currentRowChanged (ListenerQModelIndexQModelIndex)"
+  }
+
+modelChangedSignal :: (QItemSelectionModelPtr object) => QtahSignal.Signal object (M2.QAbstractItemModel -> HoppyP.IO ())
+modelChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAbstractItemModel_new fn'
+    listenerPtrQAbstractItemModel_connectListener listener' object' "2modelChanged(QAbstractItemModel*)"
+  , QtahSignal.internalName = "QItemSelectionModel::modelChanged (ListenerPtrQAbstractItemModel)"
+  }
+
+selectionChangedSignal :: (QItemSelectionModelPtr object) => QtahSignal.Signal object (M18.QItemSelectionConst -> M18.QItemSelectionConst -> HoppyP.IO ())
+selectionChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerRefConstQItemSelectionRefConstQItemSelection_new fn'
+    listenerRefConstQItemSelectionRefConstQItemSelection_connectListener listener' object' "2selectionChanged(QItemSelection const&,QItemSelection const&)"
+  , QtahSignal.internalName = "QItemSelectionModel::selectionChanged (ListenerRefConstQItemSelectionRefConstQItemSelection)"
+  }
diff --git a/src/Graphics/UI/Qtah/Core/QItemSelectionRange.hs b/src/Graphics/UI/Qtah/Core/QItemSelectionRange.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QItemSelectionRange.hs
@@ -0,0 +1,61 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M22
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQItemSelectionRangeConst
+cast = toQItemSelectionRange
+downCastConst = downToQItemSelectionRangeConst
+downCast = downToQItemSelectionRange
+
+decode :: (QItemSelectionRangeConstPtr this) => this -> QtahP.IO M22.QItemSelectionRange
+decode = QtahFHR.decode QtahP.. toQItemSelectionRangeConst
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,82 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,82 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M162
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQListQAbstractButtonConst
+cast = toQListQAbstractButton
+downCastConst = downToQListQAbstractButtonConst
+downCast = downToQListQAbstractButton
+
+encode :: [M162.QAbstractButton] -> QtahP.IO QListQAbstractButton
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListQAbstractButton)
+
+decode :: (QListQAbstractButtonConstPtr this) => this -> QtahP.IO [M162.QAbstractButton]
+decode = QtahFHR.decode QtahP.. toQListQAbstractButtonConst
diff --git a/src/Graphics/UI/Qtah/Core/QList/QItemSelectionRange.hs b/src/Graphics/UI/Qtah/Core/QList/QItemSelectionRange.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QList/QItemSelectionRange.hs
@@ -0,0 +1,82 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M22
+import Graphics.UI.Qtah.Generated.Core.QList.QItemSelectionRange
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQListQItemSelectionRangeConst
+cast = toQListQItemSelectionRange
+downCastConst = downToQListQItemSelectionRangeConst
+downCast = downToQListQItemSelectionRange
+
+encode :: [M22.QItemSelectionRange] -> QtahP.IO QListQItemSelectionRange
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListQItemSelectionRange)
+
+decode :: (QListQItemSelectionRangeConstPtr this) => this -> QtahP.IO [M22.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QList/QModelIndex.hs
@@ -0,0 +1,82 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M28
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQListQModelIndexConst
+cast = toQListQModelIndex
+downCastConst = downToQListQModelIndexConst
+downCast = downToQListQModelIndex
+
+encode :: [M28.QModelIndex] -> QtahP.IO QListQModelIndex
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListQModelIndex)
+
+decode :: (QListQModelIndexConstPtr this) => this -> QtahP.IO [M28.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,82 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQListQObjectConst
+cast = toQListQObject
+downCastConst = downToQListQObjectConst
+downCast = downToQListQObject
+
+encode :: [M30.QObject] -> QtahP.IO QListQObject
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListQObject)
+
+decode :: (QListQObjectConstPtr this) => this -> QtahP.IO [M30.QObject]
+decode = QtahFHR.decode QtahP.. toQListQObjectConst
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,81 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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/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,82 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M56
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQListQVariantConst
+cast = toQListQVariant
+downCastConst = downToQListQVariantConst
+downCast = downToQListQVariant
+
+encode :: [M56.QVariant] -> QtahP.IO QListQVariant
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListQVariant)
+
+decode :: (QListQVariantConstPtr this) => this -> QtahP.IO [M56.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,82 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M280
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQListQWidgetConst
+cast = toQListQWidget
+downCastConst = downToQListQWidgetConst
+downCast = downToQListQWidget
+
+encode :: [M280.QWidget] -> QtahP.IO QListQWidget
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListQWidget)
+
+decode :: (QListQWidgetConstPtr this) => this -> QtahP.IO [M280.QWidget]
+decode = QtahFHR.decode QtahP.. toQListQWidgetConst
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,63 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,51 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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/QModelIndex.hs b/src/Graphics/UI/Qtah/Core/QModelIndex.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QModelIndex.hs
@@ -0,0 +1,51 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M28
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQModelIndexConst
+cast = toQModelIndex
+downCastConst = downToQModelIndexConst
+downCast = downToQModelIndex
+
+decode :: (QModelIndexConstPtr this) => this -> QtahP.IO M28.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,72 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  deleteLater,
+  dumpObjectInfo,
+  dumpObjectTree,
+  event,
+  eventFilter,
+  installEventFilter,
+  isWidgetType,
+  isWindowType,
+  killTimer,
+  objectName,
+  parent,
+  removeEventFilter,
+  setObjectName,
+  setParent,
+  signalsBlocked,
+  startTimer,
+  destroyedSignal,
+  objectNameChangedSignal,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QObject
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+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 (M30.QObject -> HoppyP.IO ())
+destroyedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQObject_new fn'
+    listenerPtrQObject_connectListener listener' object' "2destroyed(QObject*)"
+  , 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 fn'
+    listenerQString_connectListener listener' object' "2objectNameChanged(QString)"
+  , QtahSignal.internalName = "QObject::objectNameChanged (ListenerQString)"
+  }
diff --git a/src/Graphics/UI/Qtah/Core/QPersistentModelIndex.hs b/src/Graphics/UI/Qtah/Core/QPersistentModelIndex.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QPersistentModelIndex.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M32
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQPersistentModelIndexConst
+cast = toQPersistentModelIndex
+downCastConst = downToQPersistentModelIndexConst
+downCast = downToQPersistentModelIndex
+
+decode :: (QPersistentModelIndexConstPtr this) => this -> QtahP.IO M32.QPersistentModelIndex
+decode = QtahFHR.decode QtahP.. toQPersistentModelIndexConst
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,58 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,59 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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/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,102 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,100 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M40
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQRectFConst
+cast = toQRectF
+downCastConst = downToQRectFConst
+downCast = downToQRectF
+
+decode :: (QRectFConstPtr this) => this -> QtahP.IO M40.QRectF
+decode = QtahFHR.decode QtahP.. toQRectFConst
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,63 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,61 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M44
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQSizeFConst
+cast = toQSizeF
+downCastConst = downToQSizeFConst
+downCast = downToQSizeF
+
+decode :: (QSizeFConstPtr this) => this -> QtahP.IO M44.QSizeF
+decode = QtahFHR.decode QtahP.. toQSizeFConst
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,52 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  newCopy,
+  newFromCString,
+  aSSIGN,
+  at,
+  eQ,
+  gE,
+  gT,
+  lE,
+  lT,
+  nE,
+  set,
+  toHtmlEscaped,
+  toStdString,
+  ) 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,52 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QStringListModel.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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/QTimer.hs b/src/Graphics/UI/Qtah/Core/QTimer.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QTimer.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 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
+
+
+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 fn'
+    listener_connectListener listener' object' "2timeout()"
+  , 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,45 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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/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,105 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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,
+  toChar,
+  toDouble,
+  toFloat,
+  toInt,
+  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 M56
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQVariantConst
+cast = toQVariant
+downCastConst = downToQVariantConst
+downCast = downToQVariant
+
+decode :: (QVariantConstPtr this) => this -> QtahP.IO M56.QVariant
+decode = QtahFHR.decode QtahP.. toQVariantConst
diff --git a/src/Graphics/UI/Qtah/Core/QVector/Int.hs b/src/Graphics/UI/Qtah/Core/QVector/Int.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QVector/Int.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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/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,81 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QVector/QPointF.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QVector/QRgb.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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/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,196 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.Types (
+  QReal,
+  QtAlignmentFlag (..),
+  QtAlignment,
+  fromQtAlignment,
+  IsQtAlignment (..),
+  alignLeft,
+  alignRight,
+  alignHCenter,
+  alignJustify,
+  alignTop,
+  alignBottom,
+  alignVCenter,
+  alignAbsolute,
+  QtAspectRatioMode (..),
+  QtBrushStyle (..),
+  QtCaseSensitivity (..),
+  QtCheckState (..),
+  QtCorner (..),
+  QtCursorMoveStyle (..),
+  QtDropAction (..),
+  QtDropActions,
+  fromQtDropActions,
+  IsQtDropActions (..),
+  ignoreAction,
+  copyAction,
+  moveAction,
+  linkAction,
+  actionMask,
+  targetMoveAction,
+  QtEventPriority (..),
+  QtFillRule (..),
+  QtFocusReason (..),
+  QtGlobalColor (..),
+  QtImageConversionFlag (..),
+  QtImageConversionFlags,
+  fromQtImageConversionFlags,
+  IsQtImageConversionFlags (..),
+  auto,
+  colorOnly,
+  monoOnly,
+  orderedDither,
+  thresholdDither,
+  orderedAlphaDither,
+  diffuseAlphaDither,
+  preferDither,
+  avoidDither,
+  noOpaqueDetection,
+  noFormatConversion,
+  QtInputMethodHint (..),
+  QtInputMethodHints,
+  fromQtInputMethodHints,
+  IsQtInputMethodHints (..),
+  imhNone,
+  imhHiddenText,
+  imhSensitiveData,
+  imhNoAutoUppercase,
+  imhPreferNumbers,
+  imhPreferUppercase,
+  imhPreferLowercase,
+  imhNoPredictiveText,
+  imhDate,
+  imhTime,
+  imhPreferLatin,
+  imhMultiLine,
+  imhDigitsOnly,
+  imhFormattedNumbersOnly,
+  imhUppercaseOnly,
+  imhLowercaseOnly,
+  imhDialableCharactersOnly,
+  imhEmailCharactersOnly,
+  imhUrlCharactersOnly,
+  imhLatinOnly,
+  imhExclusiveInputMask,
+  QtItemDataRole (..),
+  QtItemFlag (..),
+  QtItemFlags,
+  fromQtItemFlags,
+  IsQtItemFlags (..),
+  noItemFlags,
+  itemIsSelectable,
+  itemIsEditable,
+  itemIsDragEnabled,
+  itemIsDropEnabled,
+  itemIsUserCheckable,
+  itemIsEnabled,
+  itemIsAutoTristate,
+  itemNeverHasChildren,
+  itemIsUserTristate,
+  QtKey (..),
+  QtKeyboardModifier (..),
+  QtKeyboardModifiers,
+  fromQtKeyboardModifiers,
+  IsQtKeyboardModifiers (..),
+  noModifier,
+  shiftModifier,
+  controlModifier,
+  altModifier,
+  metaModifier,
+  keypadModifier,
+  groupSwitchModifier,
+  QtLayoutDirection (..),
+  QtMaskMode (..),
+  QtMouseButton (..),
+  QtMouseButtons,
+  fromQtMouseButtons,
+  IsQtMouseButtons (..),
+  noButton,
+  allButtons,
+  leftButton,
+  rightButton,
+  middleButton,
+  QtMouseEventFlag (..),
+  QtMouseEventFlags,
+  fromQtMouseEventFlags,
+  IsQtMouseEventFlags (..),
+  mouseEventCreatedDoubleClick,
+  QtMouseEventSource (..),
+  QtNavigationMode (..),
+  QtOrientation (..),
+  QtOrientations,
+  fromQtOrientations,
+  IsQtOrientations (..),
+  horizontal,
+  vertical,
+  QtScreenOrientation (..),
+  QtScreenOrientations,
+  fromQtScreenOrientations,
+  IsQtScreenOrientations (..),
+  primaryOrientation,
+  portraitOrientation,
+  landscapeOrientation,
+  invertedPortraitOrientation,
+  invertedLandscapeOrientation,
+  QtScrollBarPolicy (..),
+  QtScrollPhase (..),
+  QtSortOrder (..),
+  QtTextElideMode (..),
+  QtTextFormat (..),
+  QtTextInteractionFlag (..),
+  QtTextInteractionFlags,
+  fromQtTextInteractionFlags,
+  IsQtTextInteractionFlags (..),
+  noTextInteraction,
+  textSelectableByMouse,
+  textSelectableByKeyboard,
+  linksAccessibleByMouse,
+  linksAccessibleByKeyboard,
+  textEditable,
+  textEditorInteraction,
+  textBrowserInteraction,
+  QtTransformationMode (..),
+  QtWindowModality (..),
+  QtWindowState (..),
+  QtWindowStates,
+  fromQtWindowStates,
+  IsQtWindowStates (..),
+  windowNoState,
+  windowMinimized,
+  windowMaximized,
+  windowFullScreen,
+  windowActive,
+  QtWindowType (..),
+  QtWindowFlags,
+  fromQtWindowFlags,
+  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 2016 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2017 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
@@ -27,26 +27,24 @@
   EventFilter,
   onAnyEvent,
   -- * Internal
-  internalOnEvent,
+  internalRegistrationIsLive,
   ) where
 
-import Control.Concurrent.MVar (MVar, modifyMVar_, newMVar)
+import Control.Concurrent.MVar (MVar, modifyMVar_, newMVar, readMVar)
 import Control.Monad (when)
-import Foreign.C.Types (CInt)
 import Foreign.Hoppy.Runtime (delete)
-import Foreign.Ptr (Ptr, nullPtr)
-import Graphics.UI.Qtah.Core.QObject (QObject, QObjectPtr)
+-- Importing QObject in both ways is a silly, but it prevents unused import
+-- warnings from having a doc link to installEventFilter.
+import Graphics.UI.Qtah.Core.QObject (QObjectPtr)
 import qualified Graphics.UI.Qtah.Core.QObject as QObject
+import Graphics.UI.Qtah.SceneEvent (SceneEvent)
 -- Note, Generated import, since the non-Generated import imports this module.
 import Graphics.UI.Qtah.Generated.Core.QEvent (QEvent)
 import Graphics.UI.Qtah.Internal.EventListener (EventListener)
 import qualified Graphics.UI.Qtah.Internal.EventListener as EventListener
-import Graphics.UI.Qtah.Signal (connect)
 
-data Receiver = forall a. QObjectPtr a => Receiver a
-
 -- | A typeclass for Qt event classes (subclasses of @QEvent@).
-class Event e where
+class SceneEvent e => Event e where
   -- | Registers a callback function to be invoked when an event of type @e@ is
   -- sent to an object.  This is a wrapper around 'onAnyEvent', so for details,
   -- see that function; all comments about @EventFilter@s apply equally to
@@ -56,15 +54,14 @@
 -- | A record that an event handler was registered with a receiver object.  This
 -- can be given to 'unregister' to destroy the corresponding handler.
 data EventRegistration = EventRegistration
-  { regReceiver :: Receiver
-  , regListener :: EventListener
-  , regActive :: MVar Bool
+  { regListener :: EventListener
+  , regLive :: MVar Bool
   }
 
 -- | An filter that can handle any type of event.
-type EventFilter = QObject -> QEvent -> IO Bool
+type EventFilter = QObject.QObject -> QEvent -> IO Bool
 
--- | Registers an 'EventFilter' to listen to events that a 'QObject' receives.
+-- | Registers an 'EventFilter' to listen to events that a 'QObject.QObject' receives.
 -- A filter can return false to allow the event to propagate further, or true to
 -- indicate that the event has been handled, and stop propagation.  When
 -- multiple filters are attached to an object, the last one installed is called
@@ -73,33 +70,25 @@
 --
 -- This function uses 'QObject.installEventFilter' under the hood.
 onAnyEvent :: QObjectPtr target => target -> EventFilter -> IO EventRegistration
-onAnyEvent receiver filter = internalOnEvent receiver nullPtr filter
-
--- | Internal function, do not use outside of Qtah.
---
--- Implements 'onAnyEvent'.  Also takes a pointer to an @int@ that is passed to
--- the underlying 'EventListener.EventListener' object to be set to 1 when the
--- listener is deleted.  This is used for testing purposes.
-internalOnEvent :: QObjectPtr target => target -> Ptr CInt -> EventFilter -> IO EventRegistration
-internalOnEvent receiver deletedPtr filter = do
-  listener <- EventListener.new filter deletedPtr
-  activeVar <- newMVar True
-  let reg = EventRegistration
-            { regReceiver = Receiver receiver
-            , regListener = listener
-            , regActive = activeVar
-            }
-  QObject.installEventFilter receiver listener
-  _ <- connect receiver QObject.destroyedSignal $ \_ -> unregister reg
-  return reg
+onAnyEvent receiver filter = do
+  liveVar <- newMVar True
+  listener <- EventListener.new receiver filter $ modifyMVar_ liveVar $ const $ return False
+  return $ EventRegistration
+    { regListener = listener
+    , regLive = liveVar
+    }
 
 -- | Disconnects an event handler and frees its resources.  This function is
 -- idempotent.
 unregister :: EventRegistration -> IO ()
-unregister reg = modifyMVar_ (regActive reg) $ \active -> do
-  when active $ do
+unregister reg = modifyMVar_ (regLive reg) $ \live -> do
+  when live $ do
     let listener = regListener reg
-    case regReceiver reg of
-      Receiver receiver -> QObject.removeEventFilter receiver listener
+    -- The on-delete callback tries to modify regLive too, so skip it to avoid
+    -- deadlock, because we already know the listener is being deleted.
+    EventListener.doNotNotifyOnDelete listener
     delete listener
   return False
+
+internalRegistrationIsLive :: EventRegistration -> IO Bool
+internalRegistrationIsLive = readMVar . regLive
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QAbstractItemModel.hs b/src/Graphics/UI/Qtah/Generated/Core/QAbstractItemModel.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QAbstractItemModel.hs
@@ -0,0 +1,667 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QAbstractItemModel (
+  castQAbstractItemModelToQObject,
+  castQObjectToQAbstractItemModel,
+  QAbstractItemModelValue (..),
+  QAbstractItemModelConstPtr (..),
+  buddy,
+  canFetchMore,
+  columnCount,
+  columnCountAt,
+  getData,
+  getDataWithRole,
+  flags,
+  hasChildren,
+  hasChildrenAt,
+  hasIndex,
+  hasIndexAt,
+  headerData,
+  headerDataWithRole,
+  index,
+  indexAt,
+  parent,
+  rowCount,
+  rowCountAt,
+  sibling,
+  span,
+  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,
+  QAbstractItemModelConst (..),
+  castQAbstractItemModelToConst,
+  QAbstractItemModel (..),
+  castQAbstractItemModelToNonconst,
+  QAbstractItemModelSuper (..),
+  QAbstractItemModelSuperConst (..),
+  QAbstractItemModelLayoutChangeHint (..),
+  ) 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 {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M28
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M42
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M56
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import Prelude (($), (++), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QAbstractItemModel_buddy" buddy' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M28.QModelIndexConst)
+foreign import ccall "genpop__QAbstractItemModel_canFetchMore" canFetchMore' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.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 M28.QModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemModel_getData" getData' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M56.QVariantConst)
+foreign import ccall "genpop__QAbstractItemModel_getDataWithRole" getDataWithRole' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M56.QVariantConst)
+foreign import ccall "genpop__QAbstractItemModel_fetchMore" fetchMore' ::  HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemModel_flags" flags' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemModel_hasChildren" hasChildren' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_hasChildrenAt" hasChildrenAt' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_hasIndex" hasIndex' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_hasIndexAt" hasIndexAt' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_headerData" headerData' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M56.QVariantConst)
+foreign import ccall "genpop__QAbstractItemModel_headerDataWithRole" headerDataWithRole' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M56.QVariantConst)
+foreign import ccall "genpop__QAbstractItemModel_index" index' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M28.QModelIndexConst)
+foreign import ccall "genpop__QAbstractItemModel_indexAt" indexAt' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M28.QModelIndexConst)
+foreign import ccall "genpop__QAbstractItemModel_insertColumn" insertColumn' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_insertColumnAt" insertColumnAt' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_insertColumns" insertColumns' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_insertColumnsAt" insertColumnsAt' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_insertRow" insertRow' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_insertRowAt" insertRowAt' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_insertRows" insertRows' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_insertRowsAt" insertRowsAt' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_moveColumn" moveColumn' ::  HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_moveColumns" moveColumns' ::  HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_moveRow" moveRow' ::  HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_moveRows" moveRows' ::  HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_parent" parent' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M28.QModelIndexConst)
+foreign import ccall "genpop__QAbstractItemModel_removeColumn" removeColumn' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_removeColumnAt" removeColumnAt' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_removeColumns" removeColumns' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_removeColumnsAt" removeColumnsAt' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_removeRow" removeRow' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_removeRowAt" removeRowAt' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_removeRows" removeRows' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_removeRowsAt" removeRowsAt' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.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 M28.QModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemModel_setData" setData' ::  HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M56.QVariantConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_setDataWithRole" setDataWithRole' ::  HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M56.QVariantConst -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_setHeaderData" setHeaderData' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M56.QVariantConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_setHeaderDataWithRole" setHeaderDataWithRole' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M56.QVariantConst -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemModel_sibling" sibling' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M28.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 M28.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M42.QSizeConst)
+foreign import ccall "genpop__QAbstractItemModel_submit" submit' ::  HoppyF.Ptr QAbstractItemModel -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__QAbstractItemModel__QObject" castQAbstractItemModelToQObject :: HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractItemModel" castQObjectToQAbstractItemModel :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QAbstractItemModelConstPtr a => QAbstractItemModelValue a where
+#else
+instance QAbstractItemModelConstPtr a => QAbstractItemModelValue a where
+#endif
+  withQAbstractItemModelPtr = HoppyP.flip ($) . toQAbstractItemModelConst
+
+class (M30.QObjectConstPtr this) => QAbstractItemModelConstPtr this where
+  toQAbstractItemModelConst :: this -> QAbstractItemModelConst
+
+buddy :: (QAbstractItemModelValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M28.QModelIndex
+buddy arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M28.QModelIndexConst) =<<
+  (buddy' arg'1' arg'2')
+
+canFetchMore :: (QAbstractItemModelValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+canFetchMore arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (canFetchMore' arg'1' arg'2')
+
+columnCount :: (QAbstractItemModelValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+columnCount arg'1 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (columnCount' arg'1')
+
+columnCountAt :: (QAbstractItemModelValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+columnCountAt arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (columnCountAt' arg'1' arg'2')
+
+getData :: (QAbstractItemModelValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M56.QVariant
+getData arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M56.QVariantConst) =<<
+  (getData' arg'1' arg'2')
+
+getDataWithRole :: (QAbstractItemModelValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> M58.QtItemDataRole -> HoppyP.IO M56.QVariant
+getDataWithRole arg'1 arg'2 arg'3 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (HoppyFHR.decodeAndDelete . M56.QVariantConst) =<<
+  (getDataWithRole' arg'1' arg'2' arg'3')
+
+flags :: (QAbstractItemModelValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M58.QtItemFlags
+flags arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M58.QtItemFlags
+  (flags' arg'1' arg'2')
+
+hasChildren :: (QAbstractItemModelValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasChildren arg'1 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasChildren' arg'1')
+
+hasChildrenAt :: (QAbstractItemModelValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+hasChildrenAt arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (hasChildrenAt' arg'1' arg'2')
+
+hasIndex :: (QAbstractItemModelValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+hasIndex arg'1 arg'2 arg'3 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap (/= 0)
+  (hasIndex' arg'1' arg'2' arg'3')
+
+hasIndexAt :: (QAbstractItemModelValue arg'1, M28.QModelIndexValue arg'4) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  M28.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap (/= 0)
+  (hasIndexAt' arg'1' arg'2' arg'3' arg'4')
+
+headerData :: (QAbstractItemModelValue arg'1) => arg'1 -> HoppyP.Int -> M58.QtOrientation -> HoppyP.IO M56.QVariant
+headerData arg'1 arg'2 arg'3 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (HoppyFHR.decodeAndDelete . M56.QVariantConst) =<<
+  (headerData' arg'1' arg'2' arg'3')
+
+headerDataWithRole :: (QAbstractItemModelValue arg'1) => arg'1 -> HoppyP.Int -> M58.QtOrientation -> M58.QtItemDataRole -> HoppyP.IO M56.QVariant
+headerDataWithRole arg'1 arg'2 arg'3 arg'4 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'4 in
+  (HoppyFHR.decodeAndDelete . M56.QVariantConst) =<<
+  (headerDataWithRole' arg'1' arg'2' arg'3' arg'4')
+
+index :: (QAbstractItemModelValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO M28.QModelIndex
+index arg'1 arg'2 arg'3 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (HoppyFHR.decodeAndDelete . M28.QModelIndexConst) =<<
+  (index' arg'1' arg'2' arg'3')
+
+indexAt :: (QAbstractItemModelValue arg'1, M28.QModelIndexValue arg'4) => arg'1 -> HoppyP.Int -> HoppyP.Int -> arg'4 -> HoppyP.IO M28.QModelIndex
+indexAt arg'1 arg'2 arg'3 arg'4 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  M28.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M28.QModelIndexConst) =<<
+  (indexAt' arg'1' arg'2' arg'3' arg'4')
+
+parent :: (QAbstractItemModelValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M28.QModelIndex
+parent arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M28.QModelIndexConst) =<<
+  (parent' arg'1' arg'2')
+
+rowCount :: (QAbstractItemModelValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+rowCount arg'1 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (rowCount' arg'1')
+
+rowCountAt :: (QAbstractItemModelValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+rowCountAt arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (rowCountAt' arg'1' arg'2')
+
+sibling :: (QAbstractItemModelValue arg'1, M28.QModelIndexValue arg'4) => arg'1 -> HoppyP.Int -> HoppyP.Int -> arg'4 -> HoppyP.IO M28.QModelIndex
+sibling arg'1 arg'2 arg'3 arg'4 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  M28.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M28.QModelIndexConst) =<<
+  (sibling' arg'1' arg'2' arg'3' arg'4')
+
+span :: (QAbstractItemModelValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HSize.HSize
+span arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (span' arg'1' arg'2')
+
+class (QAbstractItemModelConstPtr this, M30.QObjectPtr this) => QAbstractItemModelPtr this where
+  toQAbstractItemModel :: this -> QAbstractItemModel
+
+fetchMore :: (QAbstractItemModelPtr arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+fetchMore arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fetchMore' arg'1' arg'2')
+
+insertColumn :: (QAbstractItemModelPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+insertColumn arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap (/= 0)
+  (insertColumn' arg'1' arg'2')
+
+insertColumnAt :: (QAbstractItemModelPtr arg'1, M28.QModelIndexValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO HoppyP.Bool
+insertColumnAt arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M28.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (insertColumnAt' arg'1' arg'2' arg'3')
+
+insertColumns :: (QAbstractItemModelPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+insertColumns arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap (/= 0)
+  (insertColumns' arg'1' arg'2' arg'3')
+
+insertColumnsAt :: (QAbstractItemModelPtr arg'1, M28.QModelIndexValue arg'4) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  M28.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap (/= 0)
+  (insertColumnsAt' arg'1' arg'2' arg'3' arg'4')
+
+insertRow :: (QAbstractItemModelPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+insertRow arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap (/= 0)
+  (insertRow' arg'1' arg'2')
+
+insertRowAt :: (QAbstractItemModelPtr arg'1, M28.QModelIndexValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO HoppyP.Bool
+insertRowAt arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M28.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (insertRowAt' arg'1' arg'2' arg'3')
+
+insertRows :: (QAbstractItemModelPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+insertRows arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap (/= 0)
+  (insertRows' arg'1' arg'2' arg'3')
+
+insertRowsAt :: (QAbstractItemModelPtr arg'1, M28.QModelIndexValue arg'4) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  M28.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap (/= 0)
+  (insertRowsAt' arg'1' arg'2' arg'3' arg'4')
+
+moveColumn :: (QAbstractItemModelPtr arg'1, M28.QModelIndexValue arg'2, M28.QModelIndexValue arg'4) => arg'1 -> 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' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  M28.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  HoppyP.fmap (/= 0)
+  (moveColumn' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+moveColumns :: (QAbstractItemModelPtr arg'1, M28.QModelIndexValue arg'2, M28.QModelIndexValue arg'5) => arg'1 -> 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' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  M28.withQModelIndexPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  let arg'6' = HoppyFHR.coerceIntegral arg'6 in
+  HoppyP.fmap (/= 0)
+  (moveColumns' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+moveRow :: (QAbstractItemModelPtr arg'1, M28.QModelIndexValue arg'2, M28.QModelIndexValue arg'4) => arg'1 -> 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' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  M28.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  HoppyP.fmap (/= 0)
+  (moveRow' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+moveRows :: (QAbstractItemModelPtr arg'1, M28.QModelIndexValue arg'2, M28.QModelIndexValue arg'5) => arg'1 -> 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' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  M28.withQModelIndexPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  let arg'6' = HoppyFHR.coerceIntegral arg'6 in
+  HoppyP.fmap (/= 0)
+  (moveRows' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+removeColumn :: (QAbstractItemModelPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+removeColumn arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap (/= 0)
+  (removeColumn' arg'1' arg'2')
+
+removeColumnAt :: (QAbstractItemModelPtr arg'1, M28.QModelIndexValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO HoppyP.Bool
+removeColumnAt arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M28.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (removeColumnAt' arg'1' arg'2' arg'3')
+
+removeColumns :: (QAbstractItemModelPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+removeColumns arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap (/= 0)
+  (removeColumns' arg'1' arg'2' arg'3')
+
+removeColumnsAt :: (QAbstractItemModelPtr arg'1, M28.QModelIndexValue arg'4) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  M28.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap (/= 0)
+  (removeColumnsAt' arg'1' arg'2' arg'3' arg'4')
+
+removeRow :: (QAbstractItemModelPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+removeRow arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap (/= 0)
+  (removeRow' arg'1' arg'2')
+
+removeRowAt :: (QAbstractItemModelPtr arg'1, M28.QModelIndexValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO HoppyP.Bool
+removeRowAt arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M28.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (removeRowAt' arg'1' arg'2' arg'3')
+
+removeRows :: (QAbstractItemModelPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+removeRows arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap (/= 0)
+  (removeRows' arg'1' arg'2' arg'3')
+
+removeRowsAt :: (QAbstractItemModelPtr arg'1, M28.QModelIndexValue arg'4) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  M28.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap (/= 0)
+  (removeRowsAt' arg'1' arg'2' arg'3' arg'4')
+
+revert :: (QAbstractItemModelPtr arg'1) => arg'1 -> HoppyP.IO ()
+revert arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (revert' arg'1')
+
+setData :: (QAbstractItemModelPtr arg'1, M28.QModelIndexValue arg'2, M56.QVariantValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+setData arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M56.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (setData' arg'1' arg'2' arg'3')
+
+setDataWithRole :: (QAbstractItemModelPtr arg'1, M28.QModelIndexValue arg'2, M56.QVariantValue arg'3) => arg'1 -> arg'2 -> arg'3 -> M58.QtItemDataRole -> HoppyP.IO HoppyP.Bool
+setDataWithRole arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M56.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  let arg'4' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'4 in
+  HoppyP.fmap (/= 0)
+  (setDataWithRole' arg'1' arg'2' arg'3' arg'4')
+
+setHeaderData :: (QAbstractItemModelPtr arg'1, M56.QVariantValue arg'4) => arg'1 -> HoppyP.Int -> M58.QtOrientation -> arg'4 -> HoppyP.IO HoppyP.Bool
+setHeaderData arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  M56.withQVariantPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap (/= 0)
+  (setHeaderData' arg'1' arg'2' arg'3' arg'4')
+
+setHeaderDataWithRole :: (QAbstractItemModelPtr arg'1, M56.QVariantValue arg'4) => arg'1 -> HoppyP.Int -> M58.QtOrientation -> arg'4 -> M58.QtItemDataRole -> HoppyP.IO HoppyP.Bool
+setHeaderDataWithRole arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  M56.withQVariantPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  let arg'5' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'5 in
+  HoppyP.fmap (/= 0)
+  (setHeaderDataWithRole' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+sort :: (QAbstractItemModelPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+sort arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (sort' arg'1' arg'2')
+
+sortWithOrder :: (QAbstractItemModelPtr arg'1) => arg'1 -> HoppyP.Int -> M58.QtSortOrder -> HoppyP.IO ()
+sortWithOrder arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (sortWithOrder' arg'1' arg'2' arg'3')
+
+submit :: (QAbstractItemModelPtr arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+submit arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (submit' arg'1')
+
+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 M30.QObjectConstPtr QAbstractItemModelConst where
+  toQObjectConst (QAbstractItemModelConst ptr') = M30.QObjectConst $ castQAbstractItemModelToQObject ptr'
+  toQObjectConst (QAbstractItemModelConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr QAbstractItemModel where
+  toQObjectConst (QAbstractItemModel ptr') = M30.QObjectConst $ castQAbstractItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr QAbstractItemModelConst) ptr'
+  toQObjectConst (QAbstractItemModelGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQAbstractItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr QAbstractItemModelConst) ptr'
+
+instance M30.QObjectPtr QAbstractItemModel where
+  toQObject (QAbstractItemModel ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQAbstractItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr QAbstractItemModelConst) ptr'
+  toQObject (QAbstractItemModelGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQAbstractItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr QAbstractItemModelConst) ptr'
+
+class QAbstractItemModelSuper a where
+  downToQAbstractItemModel :: a -> QAbstractItemModel
+
+instance QAbstractItemModelSuper M30.QObject where
+  downToQAbstractItemModel = castQAbstractItemModelToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QAbstractItemModelConst $ castQObjectToQAbstractItemModel ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QAbstractItemModelConstGc fptr' $ castQObjectToQAbstractItemModel ptr'
+
+class QAbstractItemModelSuperConst a where
+  downToQAbstractItemModelConst :: a -> QAbstractItemModelConst
+
+instance QAbstractItemModelSuperConst M30.QObjectConst where
+  downToQAbstractItemModelConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QAbstractItemModelConst $ castQObjectToQAbstractItemModel ptr'
+      cast' (M30.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 QAbstractItemModelLayoutChangeHint =
+  NoLayoutChangeHint
+  | VerticalSortHint
+  | HorizontalSortHint
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QAbstractItemModelLayoutChangeHint where
+  fromEnum NoLayoutChangeHint = 0
+  fromEnum VerticalSortHint = 1
+  fromEnum HorizontalSortHint = 2
+  
+  toEnum (0) = NoLayoutChangeHint
+  toEnum (1) = VerticalSortHint
+  toEnum (2) = HorizontalSortHint
+  toEnum n' = HoppyP.error $ "Unknown QAbstractItemModelLayoutChangeHint numeric value: " ++ HoppyP.show n'
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,79 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QAbstractItemModel (
+  QAbstractItemModelValue (..),
+  QAbstractItemModelConstPtr (..),
+  QAbstractItemModelPtr (..),
+  QAbstractItemModelConst (..),
+  castQAbstractItemModelToConst,
+  QAbstractItemModel (..),
+  castQAbstractItemModelToNonconst,
+  castQAbstractItemModelToQObject,
+  QAbstractItemModelLayoutChangeHint,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Prelude as HoppyP
+
+
+class QAbstractItemModelValue a where
+  withQAbstractItemModelPtr :: a -> (QAbstractItemModelConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QAbstractItemModelConstPtr a => QAbstractItemModelValue a
+#else
+instance QAbstractItemModelConstPtr a => QAbstractItemModelValue a
+#endif
+
+class (M30.QObjectConstPtr this) => QAbstractItemModelConstPtr this where
+  toQAbstractItemModelConst :: this -> QAbstractItemModelConst
+
+class (QAbstractItemModelConstPtr this, M30.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 M30.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 M30.QObjectConstPtr QAbstractItemModel
+
+instance M30.QObjectPtr QAbstractItemModel
+castQAbstractItemModelToQObject :: HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M30.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractItemModel)) QAbstractItemModel
+
+data QAbstractItemModelLayoutChangeHint
+instance HoppyP.Bounded QAbstractItemModelLayoutChangeHint
+instance HoppyP.Enum 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QAbstractListModel.hs
@@ -0,0 +1,188 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M2
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "gencast__QAbstractListModel__QAbstractItemModel" castQAbstractListModelToQAbstractItemModel :: HoppyF.Ptr QAbstractListModelConst -> HoppyF.Ptr M2.QAbstractItemModelConst
+foreign import ccall "gencast__QAbstractItemModel__QAbstractListModel" castQAbstractItemModelToQAbstractListModel :: HoppyF.Ptr M2.QAbstractItemModelConst -> HoppyF.Ptr QAbstractListModelConst
+foreign import ccall "gencast__QAbstractListModel__QObject" castQAbstractListModelToQObject :: HoppyF.Ptr QAbstractListModelConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractListModel" castQObjectToQAbstractListModel :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QAbstractListModelConstPtr a => QAbstractListModelValue a where
+#else
+instance QAbstractListModelConstPtr a => QAbstractListModelValue a where
+#endif
+  withQAbstractListModelPtr = HoppyP.flip ($) . toQAbstractListModelConst
+
+class (M2.QAbstractItemModelConstPtr this) => QAbstractListModelConstPtr this where
+  toQAbstractListModelConst :: this -> QAbstractListModelConst
+
+class (QAbstractListModelConstPtr this, M2.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 M2.QAbstractItemModelConstPtr QAbstractListModelConst where
+  toQAbstractItemModelConst (QAbstractListModelConst ptr') = M2.QAbstractItemModelConst $ castQAbstractListModelToQAbstractItemModel ptr'
+  toQAbstractItemModelConst (QAbstractListModelConstGc fptr' ptr') = M2.QAbstractItemModelConstGc fptr' $ castQAbstractListModelToQAbstractItemModel ptr'
+
+instance M30.QObjectConstPtr QAbstractListModelConst where
+  toQObjectConst (QAbstractListModelConst ptr') = M30.QObjectConst $ castQAbstractListModelToQObject ptr'
+  toQObjectConst (QAbstractListModelConstGc fptr' ptr') = M30.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 M2.QAbstractItemModelConstPtr QAbstractListModel where
+  toQAbstractItemModelConst (QAbstractListModel ptr') = M2.QAbstractItemModelConst $ castQAbstractListModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+  toQAbstractItemModelConst (QAbstractListModelGc fptr' ptr') = M2.QAbstractItemModelConstGc fptr' $ castQAbstractListModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+
+instance M2.QAbstractItemModelPtr QAbstractListModel where
+  toQAbstractItemModel (QAbstractListModel ptr') = M2.QAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractItemModelConst -> HoppyF.Ptr M2.QAbstractItemModel) $ castQAbstractListModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+  toQAbstractItemModel (QAbstractListModelGc fptr' ptr') = M2.QAbstractItemModelGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractItemModelConst -> HoppyF.Ptr M2.QAbstractItemModel) $ castQAbstractListModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+
+instance M30.QObjectConstPtr QAbstractListModel where
+  toQObjectConst (QAbstractListModel ptr') = M30.QObjectConst $ castQAbstractListModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+  toQObjectConst (QAbstractListModelGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQAbstractListModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+
+instance M30.QObjectPtr QAbstractListModel where
+  toQObject (QAbstractListModel ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQAbstractListModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+  toQObject (QAbstractListModelGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQAbstractListModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+
+class QAbstractListModelSuper a where
+  downToQAbstractListModel :: a -> QAbstractListModel
+
+instance QAbstractListModelSuper M2.QAbstractItemModel where
+  downToQAbstractListModel = castQAbstractListModelToNonconst . cast' . M2.castQAbstractItemModelToConst
+    where
+      cast' (M2.QAbstractItemModelConst ptr') = QAbstractListModelConst $ castQAbstractItemModelToQAbstractListModel ptr'
+      cast' (M2.QAbstractItemModelConstGc fptr' ptr') = QAbstractListModelConstGc fptr' $ castQAbstractItemModelToQAbstractListModel ptr'
+instance QAbstractListModelSuper M30.QObject where
+  downToQAbstractListModel = castQAbstractListModelToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QAbstractListModelConst $ castQObjectToQAbstractListModel ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QAbstractListModelConstGc fptr' $ castQObjectToQAbstractListModel ptr'
+
+class QAbstractListModelSuperConst a where
+  downToQAbstractListModelConst :: a -> QAbstractListModelConst
+
+instance QAbstractListModelSuperConst M2.QAbstractItemModelConst where
+  downToQAbstractListModelConst = cast'
+    where
+      cast' (M2.QAbstractItemModelConst ptr') = QAbstractListModelConst $ castQAbstractItemModelToQAbstractListModel ptr'
+      cast' (M2.QAbstractItemModelConstGc fptr' ptr') = QAbstractListModelConstGc fptr' $ castQAbstractItemModelToQAbstractListModel ptr'
+instance QAbstractListModelSuperConst M30.QObjectConst where
+  downToQAbstractListModelConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QAbstractListModelConst $ castQObjectToQAbstractListModel ptr'
+      cast' (M30.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QAbstractTableModel.hs
@@ -0,0 +1,188 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M2
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "gencast__QAbstractTableModel__QAbstractItemModel" castQAbstractTableModelToQAbstractItemModel :: HoppyF.Ptr QAbstractTableModelConst -> HoppyF.Ptr M2.QAbstractItemModelConst
+foreign import ccall "gencast__QAbstractItemModel__QAbstractTableModel" castQAbstractItemModelToQAbstractTableModel :: HoppyF.Ptr M2.QAbstractItemModelConst -> HoppyF.Ptr QAbstractTableModelConst
+foreign import ccall "gencast__QAbstractTableModel__QObject" castQAbstractTableModelToQObject :: HoppyF.Ptr QAbstractTableModelConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractTableModel" castQObjectToQAbstractTableModel :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QAbstractTableModelConstPtr a => QAbstractTableModelValue a where
+#else
+instance QAbstractTableModelConstPtr a => QAbstractTableModelValue a where
+#endif
+  withQAbstractTableModelPtr = HoppyP.flip ($) . toQAbstractTableModelConst
+
+class (M2.QAbstractItemModelConstPtr this) => QAbstractTableModelConstPtr this where
+  toQAbstractTableModelConst :: this -> QAbstractTableModelConst
+
+class (QAbstractTableModelConstPtr this, M2.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 M2.QAbstractItemModelConstPtr QAbstractTableModelConst where
+  toQAbstractItemModelConst (QAbstractTableModelConst ptr') = M2.QAbstractItemModelConst $ castQAbstractTableModelToQAbstractItemModel ptr'
+  toQAbstractItemModelConst (QAbstractTableModelConstGc fptr' ptr') = M2.QAbstractItemModelConstGc fptr' $ castQAbstractTableModelToQAbstractItemModel ptr'
+
+instance M30.QObjectConstPtr QAbstractTableModelConst where
+  toQObjectConst (QAbstractTableModelConst ptr') = M30.QObjectConst $ castQAbstractTableModelToQObject ptr'
+  toQObjectConst (QAbstractTableModelConstGc fptr' ptr') = M30.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 M2.QAbstractItemModelConstPtr QAbstractTableModel where
+  toQAbstractItemModelConst (QAbstractTableModel ptr') = M2.QAbstractItemModelConst $ castQAbstractTableModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+  toQAbstractItemModelConst (QAbstractTableModelGc fptr' ptr') = M2.QAbstractItemModelConstGc fptr' $ castQAbstractTableModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+
+instance M2.QAbstractItemModelPtr QAbstractTableModel where
+  toQAbstractItemModel (QAbstractTableModel ptr') = M2.QAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractItemModelConst -> HoppyF.Ptr M2.QAbstractItemModel) $ castQAbstractTableModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+  toQAbstractItemModel (QAbstractTableModelGc fptr' ptr') = M2.QAbstractItemModelGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractItemModelConst -> HoppyF.Ptr M2.QAbstractItemModel) $ castQAbstractTableModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+
+instance M30.QObjectConstPtr QAbstractTableModel where
+  toQObjectConst (QAbstractTableModel ptr') = M30.QObjectConst $ castQAbstractTableModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+  toQObjectConst (QAbstractTableModelGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQAbstractTableModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+
+instance M30.QObjectPtr QAbstractTableModel where
+  toQObject (QAbstractTableModel ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQAbstractTableModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+  toQObject (QAbstractTableModelGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQAbstractTableModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+
+class QAbstractTableModelSuper a where
+  downToQAbstractTableModel :: a -> QAbstractTableModel
+
+instance QAbstractTableModelSuper M2.QAbstractItemModel where
+  downToQAbstractTableModel = castQAbstractTableModelToNonconst . cast' . M2.castQAbstractItemModelToConst
+    where
+      cast' (M2.QAbstractItemModelConst ptr') = QAbstractTableModelConst $ castQAbstractItemModelToQAbstractTableModel ptr'
+      cast' (M2.QAbstractItemModelConstGc fptr' ptr') = QAbstractTableModelConstGc fptr' $ castQAbstractItemModelToQAbstractTableModel ptr'
+instance QAbstractTableModelSuper M30.QObject where
+  downToQAbstractTableModel = castQAbstractTableModelToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QAbstractTableModelConst $ castQObjectToQAbstractTableModel ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QAbstractTableModelConstGc fptr' $ castQObjectToQAbstractTableModel ptr'
+
+class QAbstractTableModelSuperConst a where
+  downToQAbstractTableModelConst :: a -> QAbstractTableModelConst
+
+instance QAbstractTableModelSuperConst M2.QAbstractItemModelConst where
+  downToQAbstractTableModelConst = cast'
+    where
+      cast' (M2.QAbstractItemModelConst ptr') = QAbstractTableModelConst $ castQAbstractItemModelToQAbstractTableModel ptr'
+      cast' (M2.QAbstractItemModelConstGc fptr' ptr') = QAbstractTableModelConstGc fptr' $ castQAbstractItemModelToQAbstractTableModel ptr'
+instance QAbstractTableModelSuperConst M30.QObjectConst where
+  downToQAbstractTableModelConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QAbstractTableModelConst $ castQObjectToQAbstractTableModel ptr'
+      cast' (M30.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/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,875 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  toCaseFolded,
+  toLatin1,
+  toLower,
+  toTitleCase,
+  toUpper,
+  unicode,
+  unicodeVersion,
+  eQ,
+  nE,
+  lT,
+  lE,
+  gT,
+  gE,
+  QCharPtr (..),
+  unicodeRef,
+  aSSIGN,
+  newFromLatin1,
+  currentUnicodeVersion,
+  QCharConst (..),
+  castQCharToConst,
+  QChar (..),
+  castQCharToNonconst,
+  new,
+  newFromCellRow,
+  newFromInt,
+  newFromSpecialCharacter,
+  newCopy,
+  QCharSuper (..),
+  QCharSuperConst (..),
+  QCharCategory (..),
+  QCharDecomposition (..),
+  QCharDirection (..),
+  QCharJoiningType (..),
+  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 M46
+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_newFromLatin1" newFromLatin1' ::  HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QCharConst)
+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_currentUnicodeVersion" currentUnicodeVersion' ::  HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QChar_decomposition" decomposition' ::  HoppyF.Ptr QCharConst -> HoppyP.IO (HoppyF.Ptr M46.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 HoppyFHR.CBool
+foreign import ccall "genpop__QChar_isDigit" isDigit' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_isHighSurrogate" isHighSurrogate' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_isLetter" isLetter' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_isLetterOrNumber" isLetterOrNumber' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_isLowSurrogate" isLowSurrogate' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_isLower" isLower' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_isMark" isMark' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_isNull" isNull' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_isNumber" isNumber' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_isPrint" isPrint' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_isPunct" isPunct' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_isSpace" isSpace' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_isSymbol" isSymbol' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_isTitleCase" isTitleCase' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_isUpper" isUpper' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.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_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_EQ" eQ' ::  HoppyF.Ptr QCharConst -> HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_NE" nE' ::  HoppyF.Ptr QCharConst -> HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_LT" lT' ::  HoppyF.Ptr QCharConst -> HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_LE" lE' ::  HoppyF.Ptr QCharConst -> HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_GT" gT' ::  HoppyF.Ptr QCharConst -> HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChar_GE" gE' ::  HoppyF.Ptr QCharConst -> HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QCharConstPtr a => QCharValue a where
+#else
+instance QCharConstPtr a => QCharValue a where
+#endif
+  withQCharPtr = HoppyP.flip ($) . toQCharConst
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QCharValue (QtahP.Char) where
+#else
+instance QCharValue (QtahP.Char) where
+#endif
+  withQCharPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QCharConstPtr this where
+  toQCharConst :: this -> QCharConst
+
+category :: (QCharValue arg'1) => arg'1 -> HoppyP.IO QCharCategory
+category arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (category' arg'1')
+
+cell :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyFC.CUChar
+cell arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (cell' arg'1')
+
+combiningClass :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyFC.CUChar
+combiningClass arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (combiningClass' arg'1')
+
+decomposition :: (QCharValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+decomposition arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (decomposition' arg'1')
+
+decompositionTag :: (QCharValue arg'1) => arg'1 -> HoppyP.IO QCharDecomposition
+decompositionTag arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (decompositionTag' arg'1')
+
+digitValue :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+digitValue arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (digitValue' arg'1')
+
+direction :: (QCharValue arg'1) => arg'1 -> HoppyP.IO QCharDirection
+direction arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (direction' arg'1')
+
+hasMirrored :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasMirrored arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasMirrored' arg'1')
+
+isDigit :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isDigit arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isDigit' arg'1')
+
+isHighSurrogate :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isHighSurrogate arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isHighSurrogate' arg'1')
+
+isLetter :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isLetter arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isLetter' arg'1')
+
+isLetterOrNumber :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isLetterOrNumber arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isLetterOrNumber' arg'1')
+
+isLowSurrogate :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isLowSurrogate arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isLowSurrogate' arg'1')
+
+isLower :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isLower arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isLower' arg'1')
+
+isMark :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isMark arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isMark' arg'1')
+
+isNull :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isNull arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isNull' arg'1')
+
+isNumber :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isNumber arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isNumber' arg'1')
+
+isPrint :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isPrint arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isPrint' arg'1')
+
+isPunct :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isPunct arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isPunct' arg'1')
+
+isSpace :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isSpace arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isSpace' arg'1')
+
+isSymbol :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isSymbol arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isSymbol' arg'1')
+
+isTitleCase :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isTitleCase arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isTitleCase' arg'1')
+
+isUpper :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isUpper arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isUpper' arg'1')
+
+joiningType :: (QCharValue arg'1) => arg'1 -> HoppyP.IO QCharJoiningType
+joiningType arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (joiningType' arg'1')
+
+mirroredChar :: (QCharValue arg'1) => arg'1 -> HoppyP.IO QtahP.Char
+mirroredChar arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QCharConst) =<<
+  (mirroredChar' arg'1')
+
+row :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyFC.CUChar
+row arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (row' arg'1')
+
+toCaseFolded :: (QCharValue arg'1) => arg'1 -> HoppyP.IO QtahP.Char
+toCaseFolded arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QCharConst) =<<
+  (toCaseFolded' arg'1')
+
+toLatin1 :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyFC.CChar
+toLatin1 arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toLatin1' arg'1')
+
+toLower :: (QCharValue arg'1) => arg'1 -> HoppyP.IO QtahP.Char
+toLower arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QCharConst) =<<
+  (toLower' arg'1')
+
+toTitleCase :: (QCharValue arg'1) => arg'1 -> HoppyP.IO QtahP.Char
+toTitleCase arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QCharConst) =<<
+  (toTitleCase' arg'1')
+
+toUpper :: (QCharValue arg'1) => arg'1 -> HoppyP.IO QtahP.Char
+toUpper arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QCharConst) =<<
+  (toUpper' arg'1')
+
+unicode :: (QCharValue arg'1) => arg'1 -> HoppyP.IO HoppyFC.CUShort
+unicode arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (unicode' arg'1')
+
+unicodeVersion :: (QCharValue arg'1) => arg'1 -> HoppyP.IO QCharUnicodeVersion
+unicodeVersion arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (unicodeVersion' arg'1')
+
+eQ :: (QCharValue arg'1, QCharValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QCharValue arg'1, QCharValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+lT :: (QCharValue arg'1, QCharValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (lT' arg'1' arg'2')
+
+lE :: (QCharValue arg'1, QCharValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (lE' arg'1' arg'2')
+
+gT :: (QCharValue arg'1, QCharValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (gT' arg'1' arg'2')
+
+gE :: (QCharValue arg'1, QCharValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (gE' arg'1' arg'2')
+
+class (QCharConstPtr this) => QCharPtr this where
+  toQChar :: this -> QChar
+
+unicodeRef :: (QCharPtr arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUShort)
+unicodeRef arg'1 =
+  HoppyFHR.withCppPtr (toQChar arg'1) $ \arg'1' ->
+  (unicodeRef' arg'1')
+
+aSSIGN :: (QCharPtr arg'1, QCharValue arg'2) => arg'1 -> 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')
+
+newFromLatin1 ::  HoppyFC.CChar -> HoppyP.IO QtahP.Char
+newFromLatin1 arg'1 =
+  let arg'1' = arg'1 in
+  (HoppyFHR.decodeAndDelete . QCharConst) =<<
+  (newFromLatin1' arg'1')
+
+currentUnicodeVersion ::  HoppyP.IO QCharUnicodeVersion
+currentUnicodeVersion =
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (currentUnicodeVersion')
+
+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 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  HoppyP.fmap QChar
+  (newFromInt' arg'1')
+
+newFromSpecialCharacter ::  QCharSpecialCharacter -> HoppyP.IO QChar
+newFromSpecialCharacter arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  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
+  | NoCategory
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QCharCategory where
+  fromEnum MarkNonSpacing = 1
+  fromEnum MarkSpacingCombining = 2
+  fromEnum MarkEnclosing = 3
+  fromEnum NumberDecimalDigit = 4
+  fromEnum NumberLetter = 5
+  fromEnum NumberOther = 6
+  fromEnum SeparatorSpace = 7
+  fromEnum SeparatorLine = 8
+  fromEnum SeparatorParagraph = 9
+  fromEnum OtherControl = 10
+  fromEnum OtherFormat = 11
+  fromEnum OtherSurrogate = 12
+  fromEnum OtherPrivateUse = 13
+  fromEnum OtherNotAssigned = 14
+  fromEnum LetterUppercase = 15
+  fromEnum LetterLowercase = 16
+  fromEnum LetterTitlecase = 17
+  fromEnum LetterModifier = 18
+  fromEnum LetterOther = 19
+  fromEnum PunctuationConnector = 20
+  fromEnum PunctuationDash = 21
+  fromEnum PunctuationOpen = 22
+  fromEnum PunctuationClose = 23
+  fromEnum PunctuationInitialQuote = 24
+  fromEnum PunctuationFinalQuote = 25
+  fromEnum PunctuationOther = 26
+  fromEnum SymbolMath = 27
+  fromEnum SymbolCurrency = 28
+  fromEnum SymbolModifier = 29
+  fromEnum SymbolOther = 30
+  fromEnum NoCategory = 0
+  
+  toEnum (1) = MarkNonSpacing
+  toEnum (2) = MarkSpacingCombining
+  toEnum (3) = MarkEnclosing
+  toEnum (4) = NumberDecimalDigit
+  toEnum (5) = NumberLetter
+  toEnum (6) = NumberOther
+  toEnum (7) = SeparatorSpace
+  toEnum (8) = SeparatorLine
+  toEnum (9) = SeparatorParagraph
+  toEnum (10) = OtherControl
+  toEnum (11) = OtherFormat
+  toEnum (12) = OtherSurrogate
+  toEnum (13) = OtherPrivateUse
+  toEnum (14) = OtherNotAssigned
+  toEnum (15) = LetterUppercase
+  toEnum (16) = LetterLowercase
+  toEnum (17) = LetterTitlecase
+  toEnum (18) = LetterModifier
+  toEnum (19) = LetterOther
+  toEnum (20) = PunctuationConnector
+  toEnum (21) = PunctuationDash
+  toEnum (22) = PunctuationOpen
+  toEnum (23) = PunctuationClose
+  toEnum (24) = PunctuationInitialQuote
+  toEnum (25) = PunctuationFinalQuote
+  toEnum (26) = PunctuationOther
+  toEnum (27) = SymbolMath
+  toEnum (28) = SymbolCurrency
+  toEnum (29) = SymbolModifier
+  toEnum (30) = SymbolOther
+  toEnum (0) = NoCategory
+  toEnum n' = HoppyP.error $ "Unknown QCharCategory numeric value: " ++ HoppyP.show n'
+
+data QCharDecomposition =
+  NoDecomposition
+  | Canonical
+  | Circle
+  | Compat
+  | Final
+  | Font
+  | Fraction
+  | Initial
+  | Isolated
+  | Medial
+  | Narrow
+  | NoBreak
+  | Small
+  | Square
+  | Sub
+  | Super
+  | Vertical
+  | Wide
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QCharDecomposition where
+  fromEnum NoDecomposition = 0
+  fromEnum Canonical = 1
+  fromEnum Circle = 8
+  fromEnum Compat = 16
+  fromEnum Final = 6
+  fromEnum Font = 2
+  fromEnum Fraction = 17
+  fromEnum Initial = 4
+  fromEnum Isolated = 7
+  fromEnum Medial = 5
+  fromEnum Narrow = 13
+  fromEnum NoBreak = 3
+  fromEnum Small = 14
+  fromEnum Square = 15
+  fromEnum Sub = 10
+  fromEnum Super = 9
+  fromEnum Vertical = 11
+  fromEnum Wide = 12
+  
+  toEnum (0) = NoDecomposition
+  toEnum (1) = Canonical
+  toEnum (8) = Circle
+  toEnum (16) = Compat
+  toEnum (6) = Final
+  toEnum (2) = Font
+  toEnum (17) = Fraction
+  toEnum (4) = Initial
+  toEnum (7) = Isolated
+  toEnum (5) = Medial
+  toEnum (13) = Narrow
+  toEnum (3) = NoBreak
+  toEnum (14) = Small
+  toEnum (15) = Square
+  toEnum (10) = Sub
+  toEnum (9) = Super
+  toEnum (11) = Vertical
+  toEnum (12) = Wide
+  toEnum n' = HoppyP.error $ "Unknown QCharDecomposition numeric value: " ++ HoppyP.show n'
+
+data QCharDirection =
+  DirAl
+  | DirAn
+  | DirB
+  | DirBn
+  | DirCs
+  | DirEn
+  | DirEs
+  | DirEt
+  | DirL
+  | DirLre
+  | DirLro
+  | DirNsm
+  | DirOn
+  | DirPdf
+  | DirR
+  | DirRle
+  | DirRlo
+  | DirS
+  | DirWs
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QCharDirection where
+  fromEnum DirAl = 13
+  fromEnum DirAn = 5
+  fromEnum DirB = 7
+  fromEnum DirBn = 18
+  fromEnum DirCs = 6
+  fromEnum DirEn = 2
+  fromEnum DirEs = 3
+  fromEnum DirEt = 4
+  fromEnum DirL = 0
+  fromEnum DirLre = 11
+  fromEnum DirLro = 12
+  fromEnum DirNsm = 17
+  fromEnum DirOn = 10
+  fromEnum DirPdf = 16
+  fromEnum DirR = 1
+  fromEnum DirRle = 14
+  fromEnum DirRlo = 15
+  fromEnum DirS = 8
+  fromEnum DirWs = 9
+  
+  toEnum (13) = DirAl
+  toEnum (5) = DirAn
+  toEnum (7) = DirB
+  toEnum (18) = DirBn
+  toEnum (6) = DirCs
+  toEnum (2) = DirEn
+  toEnum (3) = DirEs
+  toEnum (4) = DirEt
+  toEnum (0) = DirL
+  toEnum (11) = DirLre
+  toEnum (12) = DirLro
+  toEnum (17) = DirNsm
+  toEnum (10) = DirOn
+  toEnum (16) = DirPdf
+  toEnum (1) = DirR
+  toEnum (14) = DirRle
+  toEnum (15) = DirRlo
+  toEnum (8) = DirS
+  toEnum (9) = DirWs
+  toEnum n' = HoppyP.error $ "Unknown QCharDirection numeric value: " ++ HoppyP.show n'
+
+data QCharJoiningType =
+  JoiningNone
+  | JoiningCausing
+  | JoiningDual
+  | JoiningRight
+  | JoiningLeft
+  | JoiningTransparent
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QCharJoiningType where
+  fromEnum JoiningNone = 0
+  fromEnum JoiningCausing = 1
+  fromEnum JoiningDual = 2
+  fromEnum JoiningRight = 3
+  fromEnum JoiningLeft = 4
+  fromEnum JoiningTransparent = 5
+  
+  toEnum (0) = JoiningNone
+  toEnum (1) = JoiningCausing
+  toEnum (2) = JoiningDual
+  toEnum (3) = JoiningRight
+  toEnum (4) = JoiningLeft
+  toEnum (5) = JoiningTransparent
+  toEnum n' = HoppyP.error $ "Unknown QCharJoiningType numeric value: " ++ HoppyP.show n'
+
+data QCharSpecialCharacter =
+  Null
+  | Nbsp
+  | LineSeparator
+  | ParagraphSeparator
+  | ObjectReplacementCharacter
+  | ReplacementCharacter
+  | ByteOrderMark
+  | ByteOrderSwapped
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QCharSpecialCharacter where
+  fromEnum Null = 0
+  fromEnum Nbsp = 160
+  fromEnum LineSeparator = 8232
+  fromEnum ParagraphSeparator = 8233
+  fromEnum ObjectReplacementCharacter = 65532
+  fromEnum ReplacementCharacter = 65533
+  fromEnum ByteOrderMark = 65279
+  fromEnum ByteOrderSwapped = 65534
+  
+  toEnum (0) = Null
+  toEnum (160) = Nbsp
+  toEnum (8232) = LineSeparator
+  toEnum (8233) = ParagraphSeparator
+  toEnum (65532) = ObjectReplacementCharacter
+  toEnum (65533) = ReplacementCharacter
+  toEnum (65279) = ByteOrderMark
+  toEnum (65534) = ByteOrderSwapped
+  toEnum n' = HoppyP.error $ "Unknown QCharSpecialCharacter numeric value: " ++ HoppyP.show n'
+
+data QCharUnicodeVersion =
+  Unicode1_1
+  | Unicode2_0
+  | Unicode2_1_2
+  | Unicode3_0
+  | Unicode3_1
+  | Unicode3_2
+  | Unicode4_0
+  | Unicode4_1
+  | Unicode5_0
+  | UnicodeUnassigned
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QCharUnicodeVersion where
+  fromEnum Unicode1_1 = 1
+  fromEnum Unicode2_0 = 2
+  fromEnum Unicode2_1_2 = 3
+  fromEnum Unicode3_0 = 4
+  fromEnum Unicode3_1 = 5
+  fromEnum Unicode3_2 = 6
+  fromEnum Unicode4_0 = 7
+  fromEnum Unicode4_1 = 8
+  fromEnum Unicode5_0 = 9
+  fromEnum UnicodeUnassigned = 0
+  
+  toEnum (1) = Unicode1_1
+  toEnum (2) = Unicode2_0
+  toEnum (3) = Unicode2_1_2
+  toEnum (4) = Unicode3_0
+  toEnum (5) = Unicode3_1
+  toEnum (6) = Unicode3_2
+  toEnum (7) = Unicode4_0
+  toEnum (8) = Unicode4_1
+  toEnum (9) = Unicode5_0
+  toEnum (0) = UnicodeUnassigned
+  toEnum n' = HoppyP.error $ "Unknown QCharUnicodeVersion numeric value: " ++ HoppyP.show n'
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,125 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QChar (
+  QCharValue (..),
+  QCharConstPtr (..),
+  QCharPtr (..),
+  QCharConst (..),
+  castQCharToConst,
+  QChar (..),
+  castQCharToNonconst,
+  QCharCategory,
+  QCharDecomposition,
+  QCharDirection,
+  QCharJoiningType,
+  QCharSpecialCharacter,
+  QCharUnicodeVersion,
+  ) where
+
+import qualified Foreign as HoppyF
+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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QCharConstPtr a => QCharValue a
+#else
+instance QCharConstPtr a => QCharValue a
+#endif
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QCharValue (QtahP.Char)
+#else
+instance QCharValue (QtahP.Char)
+#endif
+
+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 HoppyP.Bounded QCharCategory
+instance HoppyP.Enum QCharCategory
+instance HoppyP.Eq QCharCategory
+instance HoppyP.Ord QCharCategory
+instance HoppyP.Show QCharCategory
+
+data QCharDecomposition
+instance HoppyP.Bounded QCharDecomposition
+instance HoppyP.Enum QCharDecomposition
+instance HoppyP.Eq QCharDecomposition
+instance HoppyP.Ord QCharDecomposition
+instance HoppyP.Show QCharDecomposition
+
+data QCharDirection
+instance HoppyP.Bounded QCharDirection
+instance HoppyP.Enum QCharDirection
+instance HoppyP.Eq QCharDirection
+instance HoppyP.Ord QCharDirection
+instance HoppyP.Show QCharDirection
+
+data QCharJoiningType
+instance HoppyP.Bounded QCharJoiningType
+instance HoppyP.Enum QCharJoiningType
+instance HoppyP.Eq QCharJoiningType
+instance HoppyP.Ord QCharJoiningType
+instance HoppyP.Show QCharJoiningType
+
+data QCharSpecialCharacter
+instance HoppyP.Bounded QCharSpecialCharacter
+instance HoppyP.Enum QCharSpecialCharacter
+instance HoppyP.Eq QCharSpecialCharacter
+instance HoppyP.Ord QCharSpecialCharacter
+instance HoppyP.Show QCharSpecialCharacter
+
+data QCharUnicodeVersion
+instance HoppyP.Bounded QCharUnicodeVersion
+instance HoppyP.Enum 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 CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M16
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import Prelude (($), (.), (/=), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QChildEvent_new" new' ::  HoppyFC.CInt -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr QChildEvent)
+foreign import ccall "genpop__QChildEvent_added" added' ::  HoppyF.Ptr QChildEventConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChildEvent_child" child' ::  HoppyF.Ptr QChildEventConst -> HoppyP.IO (HoppyF.Ptr M30.QObject)
+foreign import ccall "genpop__QChildEvent_polished" polished' ::  HoppyF.Ptr QChildEventConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QChildEvent_removed" removed' ::  HoppyF.Ptr QChildEventConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__QChildEvent__QEvent" castQChildEventToQEvent :: HoppyF.Ptr QChildEventConst -> HoppyF.Ptr M16.QEventConst
+foreign import ccall "gencast__QEvent__QChildEvent" castQEventToQChildEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QChildEventConstPtr a => QChildEventValue a where
+#else
+instance QChildEventConstPtr a => QChildEventValue a where
+#endif
+  withQChildEventPtr = HoppyP.flip ($) . toQChildEventConst
+
+class (M16.QEventConstPtr this) => QChildEventConstPtr this where
+  toQChildEventConst :: this -> QChildEventConst
+
+added :: (QChildEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+added arg'1 =
+  withQChildEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (added' arg'1')
+
+child :: (QChildEventValue arg'1) => arg'1 -> HoppyP.IO M30.QObject
+child arg'1 =
+  withQChildEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M30.QObject
+  (child' arg'1')
+
+polished :: (QChildEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+polished arg'1 =
+  withQChildEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (polished' arg'1')
+
+removed :: (QChildEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+removed arg'1 =
+  withQChildEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (removed' arg'1')
+
+class (QChildEventConstPtr this, M16.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 M16.QEventConstPtr QChildEventConst where
+  toQEventConst (QChildEventConst ptr') = M16.QEventConst $ castQChildEventToQEvent ptr'
+  toQEventConst (QChildEventConstGc fptr' ptr') = M16.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 M16.QEventConstPtr QChildEvent where
+  toQEventConst (QChildEvent ptr') = M16.QEventConst $ castQChildEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QChildEvent -> HoppyF.Ptr QChildEventConst) ptr'
+  toQEventConst (QChildEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQChildEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QChildEvent -> HoppyF.Ptr QChildEventConst) ptr'
+
+instance M16.QEventPtr QChildEvent where
+  toQEvent (QChildEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQChildEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QChildEvent -> HoppyF.Ptr QChildEventConst) ptr'
+  toQEvent (QChildEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQChildEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QChildEvent -> HoppyF.Ptr QChildEventConst) ptr'
+
+new :: (M30.QObjectPtr arg'2) => M16.QEventType -> arg'2 -> HoppyP.IO QChildEvent
+new arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap QChildEvent
+  (new' arg'1' arg'2')
+
+class QChildEventSuper a where
+  downToQChildEvent :: a -> QChildEvent
+
+instance QChildEventSuper M16.QEvent where
+  downToQChildEvent = castQChildEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QChildEventConst $ castQEventToQChildEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QChildEventConstGc fptr' $ castQEventToQChildEvent ptr'
+
+class QChildEventSuperConst a where
+  downToQChildEventConst :: a -> QChildEventConst
+
+instance QChildEventSuperConst M16.QEventConst where
+  downToQChildEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QChildEventConst $ castQEventToQChildEvent ptr'
+      cast' (M16.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,232 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QCoreApplication (
+  castQCoreApplicationToQObject,
+  castQObjectToQCoreApplication,
+  QCoreApplicationValue (..),
+  QCoreApplicationConstPtr (..),
+  QCoreApplicationPtr (..),
+  new,
+  arguments,
+  exec,
+  exit,
+  getInstance,
+  postEvent,
+  postEventWithPriority,
+  quit,
+  sendEvent,
+  QCoreApplicationConst (..),
+  castQCoreApplicationToConst,
+  QCoreApplication (..),
+  castQCoreApplicationToNonconst,
+  QCoreApplicationSuper (..),
+  QCoreApplicationSuperConst (..),
+  ) 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 M16
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M48
+import Prelude (($), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QCoreApplication_new" new' ::  HoppyF.Ptr M48.QStringListConst -> HoppyP.IO (HoppyF.Ptr QCoreApplication)
+foreign import ccall "genpop__QCoreApplication_arguments" arguments' ::  HoppyP.IO (HoppyF.Ptr M48.QStringListConst)
+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_postEvent" postEvent' ::  HoppyF.Ptr M30.QObject -> HoppyF.Ptr M16.QEvent -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_postEventWithPriority" postEventWithPriority' ::  HoppyF.Ptr M30.QObject -> HoppyF.Ptr M16.QEvent -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_quit" quit' ::  HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_sendEvent" sendEvent' ::  HoppyF.Ptr M30.QObject -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__QCoreApplication__QObject" castQCoreApplicationToQObject :: HoppyF.Ptr QCoreApplicationConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QCoreApplication" castQObjectToQCoreApplication :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QCoreApplicationConstPtr a => QCoreApplicationValue a where
+#else
+instance QCoreApplicationConstPtr a => QCoreApplicationValue a where
+#endif
+  withQCoreApplicationPtr = HoppyP.flip ($) . toQCoreApplicationConst
+
+class (M30.QObjectConstPtr this) => QCoreApplicationConstPtr this where
+  toQCoreApplicationConst :: this -> QCoreApplicationConst
+
+class (QCoreApplicationConstPtr this, M30.QObjectPtr this) => QCoreApplicationPtr this where
+  toQCoreApplication :: this -> QCoreApplication
+
+new :: (M48.QStringListValue arg'1) => arg'1 -> HoppyP.IO QCoreApplication
+new arg'1 =
+  M48.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QCoreApplication
+  (new' arg'1')
+
+arguments ::  HoppyP.IO [QtahP.String]
+arguments =
+  (HoppyFHR.decodeAndDelete . M48.QStringListConst) =<<
+  (arguments')
+
+exec ::  HoppyP.IO ()
+exec =
+  (exec')
+
+exit ::  HoppyP.Int -> HoppyP.IO ()
+exit arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  (exit' arg'1')
+
+getInstance ::  HoppyP.IO QCoreApplication
+getInstance =
+  HoppyP.fmap QCoreApplication
+  (getInstance')
+
+postEvent :: (M30.QObjectPtr arg'1, M16.QEventPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+postEvent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M30.toQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M16.toQEvent arg'2) $ \arg'2' ->
+  (postEvent' arg'1' arg'2')
+
+postEventWithPriority :: (M30.QObjectPtr arg'1, M16.QEventPtr arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO ()
+postEventWithPriority arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M30.toQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M16.toQEvent arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (postEventWithPriority' arg'1' arg'2' arg'3')
+
+quit ::  HoppyP.IO ()
+quit =
+  (quit')
+
+sendEvent :: (M30.QObjectPtr arg'1, M16.QEventPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+sendEvent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M30.toQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M16.toQEvent arg'2) $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (sendEvent' arg'1' arg'2')
+
+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 M30.QObjectConstPtr QCoreApplicationConst where
+  toQObjectConst (QCoreApplicationConst ptr') = M30.QObjectConst $ castQCoreApplicationToQObject ptr'
+  toQObjectConst (QCoreApplicationConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr QCoreApplication where
+  toQObjectConst (QCoreApplication ptr') = M30.QObjectConst $ castQCoreApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCoreApplication -> HoppyF.Ptr QCoreApplicationConst) ptr'
+  toQObjectConst (QCoreApplicationGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQCoreApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCoreApplication -> HoppyF.Ptr QCoreApplicationConst) ptr'
+
+instance M30.QObjectPtr QCoreApplication where
+  toQObject (QCoreApplication ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQCoreApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCoreApplication -> HoppyF.Ptr QCoreApplicationConst) ptr'
+  toQObject (QCoreApplicationGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQCoreApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCoreApplication -> HoppyF.Ptr QCoreApplicationConst) ptr'
+
+class QCoreApplicationSuper a where
+  downToQCoreApplication :: a -> QCoreApplication
+
+instance QCoreApplicationSuper M30.QObject where
+  downToQCoreApplication = castQCoreApplicationToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QCoreApplicationConst $ castQObjectToQCoreApplication ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QCoreApplicationConstGc fptr' $ castQObjectToQCoreApplication ptr'
+
+class QCoreApplicationSuperConst a where
+  downToQCoreApplicationConst :: a -> QCoreApplicationConst
+
+instance QCoreApplicationSuperConst M30.QObjectConst where
+  downToQCoreApplicationConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QCoreApplicationConst $ castQObjectToQCoreApplication ptr'
+      cast' (M30.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/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,777 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 (..),
+  dirs,
+  allDirs,
+  files,
+  drives,
+  noSymLinks,
+  noDotAndDotDot,
+  noDot,
+  noDotDot,
+  allEntries,
+  readable,
+  writable,
+  executable,
+  modified,
+  hidden,
+  system,
+  caseSensitive,
+  QDirSortFlag (..),
+  QDirSortFlags (..),
+  IsQDirSortFlags (..),
+  name,
+  time,
+  size,
+  typ,
+  unsorted,
+  dirsFirst,
+  dirsLast,
+  reversed,
+  ignoreCase,
+  localeAware,
+  ) where
+
+import Control.Monad ((>=>))
+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.QChar as M8
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import Prelude (($), (++), (.), (/=), (=<<), (==), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QDir_new" new' ::  HoppyF.Ptr M46.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 M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QDir_absolutePath" absolutePath' ::  HoppyF.Ptr QDirConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QDir_addSearchPath" addSearchPath' ::  HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QDir_canonicalPath" canonicalPath' ::  HoppyF.Ptr QDirConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QDir_cd" cd' ::  HoppyF.Ptr QDir -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_cdUp" cdUp' ::  HoppyF.Ptr QDir -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_cleanPath" cleanPath' ::  HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M46.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 M46.QStringConst)
+foreign import ccall "genpop__QDir_dirName" dirName' ::  HoppyF.Ptr QDirConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QDir_exists" exists' ::  HoppyF.Ptr QDirConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_entryExists" entryExists' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_filePath" filePath' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M46.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 M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QDir_home" home' ::  HoppyP.IO (HoppyF.Ptr QDirConst)
+foreign import ccall "genpop__QDir_homePath" homePath' ::  HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QDir_isAbsolute" isAbsolute' ::  HoppyF.Ptr QDirConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_isAbsolutePath" isAbsolutePath' ::  HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_isReadable" isReadable' ::  HoppyF.Ptr QDirConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_isRelative" isRelative' ::  HoppyF.Ptr QDirConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_isRelativePath" isRelativePath' ::  HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_isRoot" isRoot' ::  HoppyF.Ptr QDirConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_makeAbsolute" makeAbsolute' ::  HoppyF.Ptr QDir -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_match" match' ::  HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_mkdir" mkdir' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_mkpath" mkpath' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_path" path' ::  HoppyF.Ptr QDirConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QDir_setPath" setPath' ::  HoppyF.Ptr QDir -> HoppyF.Ptr M46.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 M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QDir_remove" remove' ::  HoppyF.Ptr QDir -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_removeRecursively" removeRecursively' ::  HoppyF.Ptr QDir -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_rename" rename' ::  HoppyF.Ptr QDir -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_rmdir" rmdir' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_rmpath" rmpath' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_root" root' ::  HoppyP.IO (HoppyF.Ptr QDirConst)
+foreign import ccall "genpop__QDir_rootPath" rootPath' ::  HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QDir_separator" separator' ::  HoppyP.IO (HoppyF.Ptr M8.QCharConst)
+foreign import ccall "genpop__QDir_setCurrent" setCurrent' ::  HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFHR.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 M46.QStringConst)
+foreign import ccall "genpop__QDir_toNativeSeparators" toNativeSeparators' ::  HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QDir_ARRAY" aRRAY' ::  HoppyF.Ptr QDirConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QDir_EQ" eQ' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr QDirConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDir_NE" nE' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr QDirConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QDirConstPtr a => QDirValue a where
+#else
+instance QDirConstPtr a => QDirValue a where
+#endif
+  withQDirPtr = HoppyP.flip ($) . toQDirConst
+
+class (HoppyFHR.CppPtr this) => QDirConstPtr this where
+  toQDirConst :: this -> QDirConst
+
+absoluteFilePath :: (QDirValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QtahP.String
+absoluteFilePath arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (absoluteFilePath' arg'1' arg'2')
+
+absolutePath :: (QDirValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+absolutePath arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (absolutePath' arg'1')
+
+canonicalPath :: (QDirValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+canonicalPath arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (canonicalPath' arg'1')
+
+count :: (QDirValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+count arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1')
+
+dirName :: (QDirValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+dirName arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (dirName' arg'1')
+
+exists :: (QDirValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+exists arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (exists' arg'1')
+
+entryExists :: (QDirValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+entryExists arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (entryExists' arg'1' arg'2')
+
+filePath :: (QDirValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QtahP.String
+filePath arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (filePath' arg'1' arg'2')
+
+filter :: (QDirValue arg'1) => arg'1 -> HoppyP.IO QDirFilters
+filter arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QDirFilters
+  (filter' arg'1')
+
+isAbsolute :: (QDirValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isAbsolute arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isAbsolute' arg'1')
+
+isReadable :: (QDirValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isReadable arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isReadable' arg'1')
+
+isRelative :: (QDirValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isRelative arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isRelative' arg'1')
+
+isRoot :: (QDirValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isRoot arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isRoot' arg'1')
+
+mkdir :: (QDirValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+mkdir arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (mkdir' arg'1' arg'2')
+
+mkpath :: (QDirValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+mkpath arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (mkpath' arg'1' arg'2')
+
+path :: (QDirValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+path arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (path' arg'1')
+
+relativeFilePath :: (QDirValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QtahP.String
+relativeFilePath arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (relativeFilePath' arg'1' arg'2')
+
+rmdir :: (QDirValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+rmdir arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (rmdir' arg'1' arg'2')
+
+rmpath :: (QDirValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+rmpath arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (rmpath' arg'1' arg'2')
+
+sorting :: (QDirValue arg'1) => arg'1 -> HoppyP.IO QDirSortFlags
+sorting arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QDirSortFlags
+  (sorting' arg'1')
+
+aRRAY :: (QDirValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QtahP.String
+aRRAY arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (aRRAY' arg'1' arg'2')
+
+eQ :: (QDirValue arg'1, QDirValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QDirValue arg'1, QDirValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QDirConstPtr this) => QDirPtr this where
+  toQDir :: this -> QDir
+
+cd :: (QDirPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+cd arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (cd' arg'1' arg'2')
+
+cdUp :: (QDirPtr arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+cdUp arg'1 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (cdUp' arg'1')
+
+setFilter :: (QDirPtr arg'1, IsQDirFilters arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setFilter arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  let arg'2' = fromQDirFilters $ toQDirFilters arg'2 in
+  (setFilter' arg'1' arg'2')
+
+makeAbsolute :: (QDirPtr arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+makeAbsolute arg'1 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (makeAbsolute' arg'1')
+
+setPath :: (QDirPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setPath arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPath' arg'1' arg'2')
+
+refresh :: (QDirPtr arg'1) => arg'1 -> HoppyP.IO ()
+refresh arg'1 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  (refresh' arg'1')
+
+remove :: (QDirPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+remove arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (remove' arg'1' arg'2')
+
+removeRecursively :: (QDirPtr arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+removeRecursively arg'1 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (removeRecursively' arg'1')
+
+rename :: (QDirPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+rename arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (rename' arg'1' arg'2' arg'3')
+
+setSorting :: (QDirPtr arg'1, IsQDirSortFlags arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setSorting arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  let arg'2' = fromQDirSortFlags $ toQDirSortFlags arg'2 in
+  (setSorting' arg'1' arg'2')
+
+swap :: (QDirPtr arg'1, QDirPtr arg'2) => arg'1 -> 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 arg'1, QDirValue arg'2) => arg'1 -> 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 :: (M46.QStringValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+addSearchPath arg'1 arg'2 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (addSearchPath' arg'1' arg'2')
+
+cleanPath :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+cleanPath arg'1 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (cleanPath' arg'1')
+
+current ::  HoppyP.IO QDir
+current =
+  (HoppyFHR.decodeAndDelete . QDirConst) =<<
+  (current')
+
+currentPath ::  HoppyP.IO QtahP.String
+currentPath =
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (currentPath')
+
+fromNativeSeparators :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+fromNativeSeparators arg'1 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (fromNativeSeparators' arg'1')
+
+home ::  HoppyP.IO QDir
+home =
+  (HoppyFHR.decodeAndDelete . QDirConst) =<<
+  (home')
+
+homePath ::  HoppyP.IO QtahP.String
+homePath =
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (homePath')
+
+isAbsolutePath :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isAbsolutePath arg'1 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isAbsolutePath' arg'1')
+
+isRelativePath :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isRelativePath arg'1 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isRelativePath' arg'1')
+
+match :: (M46.QStringValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+match arg'1 arg'2 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (match' arg'1' arg'2')
+
+root ::  HoppyP.IO QDir
+root =
+  (HoppyFHR.decodeAndDelete . QDirConst) =<<
+  (root')
+
+rootPath ::  HoppyP.IO QtahP.String
+rootPath =
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (rootPath')
+
+separator ::  HoppyP.IO QtahP.Char
+separator =
+  (HoppyFHR.decodeAndDelete . M8.QCharConst) =<<
+  (separator')
+
+setCurrent :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+setCurrent arg'1 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (setCurrent' arg'1')
+
+temp ::  HoppyP.IO QDir
+temp =
+  (HoppyFHR.decodeAndDelete . QDirConst) =<<
+  (temp')
+
+tempPath ::  HoppyP.IO QtahP.String
+tempPath =
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (tempPath')
+
+toNativeSeparators :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+toNativeSeparators arg'1 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.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 :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO QDir
+new arg'1 =
+  M46.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QDirFilter where
+  fromEnum Dirs = 1
+  fromEnum AllDirs = 1024
+  fromEnum Files = 2
+  fromEnum Drives = 4
+  fromEnum NoSymLinks = 8
+  fromEnum NoDotAndDotDot = 24576
+  fromEnum NoDot = 8192
+  fromEnum NoDotDot = 16384
+  fromEnum AllEntries = 7
+  fromEnum Readable = 16
+  fromEnum Writable = 32
+  fromEnum Executable = 64
+  fromEnum Modified = 128
+  fromEnum Hidden = 256
+  fromEnum System = 512
+  fromEnum CaseSensitive = 2048
+  
+  toEnum (1) = Dirs
+  toEnum (1024) = AllDirs
+  toEnum (2) = Files
+  toEnum (4) = Drives
+  toEnum (8) = NoSymLinks
+  toEnum (24576) = NoDotAndDotDot
+  toEnum (8192) = NoDot
+  toEnum (16384) = NoDotDot
+  toEnum (7) = AllEntries
+  toEnum (16) = Readable
+  toEnum (32) = Writable
+  toEnum (64) = Executable
+  toEnum (128) = Modified
+  toEnum (256) = Hidden
+  toEnum (512) = System
+  toEnum (2048) = CaseSensitive
+  toEnum n' = HoppyP.error $ "Unknown QDirFilter numeric value: " ++ HoppyP.show n'
+
+newtype QDirFilters = QDirFilters { fromQDirFilters :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQDirFilters a where
+  toQDirFilters :: a -> QDirFilters
+
+instance IsQDirFilters (HoppyFC.CInt) where
+  toQDirFilters = QDirFilters
+instance IsQDirFilters (HoppyP.Int) where
+  toQDirFilters = QDirFilters . HoppyFHR.coerceIntegral
+instance IsQDirFilters QDirFilters where
+  toQDirFilters = HoppyP.id
+
+instance IsQDirFilters QDirFilter where
+  toQDirFilters = QDirFilters . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+dirs = QDirFilters 1
+allDirs = QDirFilters 1024
+files = QDirFilters 2
+drives = QDirFilters 4
+noSymLinks = QDirFilters 8
+noDotAndDotDot = QDirFilters 24576
+noDot = QDirFilters 8192
+noDotDot = QDirFilters 16384
+allEntries = QDirFilters 7
+readable = QDirFilters 16
+writable = QDirFilters 32
+executable = QDirFilters 64
+modified = QDirFilters 128
+hidden = QDirFilters 256
+system = QDirFilters 512
+caseSensitive = QDirFilters 2048
+
+data QDirSortFlag =
+  Name
+  | Time
+  | Size
+  | Typ
+  | Unsorted
+  | DirsFirst
+  | DirsLast
+  | Reversed
+  | IgnoreCase
+  | LocaleAware
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QDirSortFlag where
+  fromEnum Name = 0
+  fromEnum Time = 1
+  fromEnum Size = 2
+  fromEnum Typ = 128
+  fromEnum Unsorted = 3
+  fromEnum DirsFirst = 4
+  fromEnum DirsLast = 32
+  fromEnum Reversed = 8
+  fromEnum IgnoreCase = 16
+  fromEnum LocaleAware = 64
+  
+  toEnum (0) = Name
+  toEnum (1) = Time
+  toEnum (2) = Size
+  toEnum (128) = Typ
+  toEnum (3) = Unsorted
+  toEnum (4) = DirsFirst
+  toEnum (32) = DirsLast
+  toEnum (8) = Reversed
+  toEnum (16) = IgnoreCase
+  toEnum (64) = LocaleAware
+  toEnum n' = HoppyP.error $ "Unknown QDirSortFlag numeric value: " ++ HoppyP.show n'
+
+newtype QDirSortFlags = QDirSortFlags { fromQDirSortFlags :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQDirSortFlags a where
+  toQDirSortFlags :: a -> QDirSortFlags
+
+instance IsQDirSortFlags (HoppyFC.CInt) where
+  toQDirSortFlags = QDirSortFlags
+instance IsQDirSortFlags (HoppyP.Int) where
+  toQDirSortFlags = QDirSortFlags . HoppyFHR.coerceIntegral
+instance IsQDirSortFlags QDirSortFlags where
+  toQDirSortFlags = HoppyP.id
+
+instance IsQDirSortFlags QDirSortFlag where
+  toQDirSortFlags = QDirSortFlags . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+name = QDirSortFlags 0
+time = QDirSortFlags 1
+size = QDirSortFlags 2
+typ = QDirSortFlags 128
+unsorted = QDirSortFlags 3
+dirsFirst = QDirSortFlags 4
+dirsLast = QDirSortFlags 32
+reversed = QDirSortFlags 8
+ignoreCase = QDirSortFlags 16
+localeAware = QDirSortFlags 64
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,647 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 HoppyFHR.CBool
+foreign import ccall "genpop__QEvent_setAccepted" setAccepted' ::  HoppyF.Ptr QEvent -> HoppyFHR.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 HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QEventConstPtr a => QEventValue a where
+#else
+instance QEventConstPtr a => QEventValue a where
+#endif
+  withQEventPtr = HoppyP.flip ($) . toQEventConst
+
+class (HoppyFHR.CppPtr this) => QEventConstPtr this where
+  toQEventConst :: this -> QEventConst
+
+isAccepted :: (QEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isAccepted arg'1 =
+  withQEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isAccepted' arg'1')
+
+spontaneous :: (QEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+spontaneous arg'1 =
+  withQEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (spontaneous' arg'1')
+
+eventType :: (QEventValue arg'1) => arg'1 -> HoppyP.IO QEventType
+eventType arg'1 =
+  withQEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (eventType' arg'1')
+
+class (QEventConstPtr this) => QEventPtr this where
+  toQEvent :: this -> QEvent
+
+accept :: (QEventPtr arg'1) => arg'1 -> HoppyP.IO ()
+accept arg'1 =
+  HoppyFHR.withCppPtr (toQEvent arg'1) $ \arg'1' ->
+  (accept' arg'1')
+
+setAccepted :: (QEventPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setAccepted arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQEvent arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setAccepted' arg'1' arg'2')
+
+ignore :: (QEventPtr arg'1) => arg'1 -> HoppyP.IO ()
+ignore arg'1 =
+  HoppyFHR.withCppPtr (toQEvent arg'1) $ \arg'1' ->
+  (ignore' arg'1')
+
+registerEventType ::  HoppyP.IO HoppyP.Int
+registerEventType =
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (registerEventType')
+
+registerEventTypeWithHint ::  HoppyP.Int -> HoppyP.IO HoppyP.Int
+registerEventTypeWithHint arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  HoppyP.fmap 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 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  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
+  | ApplicationDeactivate
+  | ApplicationFontChange
+  | ApplicationLayoutDirectionChange
+  | ApplicationPaletteChange
+  | ApplicationStateChange
+  | ApplicationWindowIconChange
+  | ChildAdded
+  | ChildPolished
+  | ChildRemoved
+  | Clipboard
+  | Close
+  | CloseSoftwareInputPanel
+  | ContentsRectChange
+  | ContextMenu
+  | CursorChange
+  | DeferredDelete
+  | DragEnter
+  | DragLeave
+  | DragMove
+  | Drop
+  | DynamicPropertyChange
+  | EnabledChange
+  | Enter
+  | EnterEditFocus
+  | 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
+  | LeaveEditFocus
+  | LeaveWhatsThisMode
+  | LocaleChange
+  | NonClientAreaMouseButtonDblClick
+  | NonClientAreaMouseButtonPress
+  | NonClientAreaMouseButtonRelease
+  | NonClientAreaMouseMove
+  | MacSizeChange
+  | MetaCall
+  | ModifiedChange
+  | MouseButtonDblClick
+  | MouseButtonPress
+  | MouseButtonRelease
+  | MouseMove
+  | MouseTrackingChange
+  | Move
+  | NativeGesture
+  | OrientationChange
+  | Paint
+  | PaletteChange
+  | ParentAboutToChange
+  | ParentChange
+  | PlatformPanel
+  | 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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QEventType where
+  fromEnum None = 0
+  fromEnum ActionAdded = 114
+  fromEnum ActionChanged = 113
+  fromEnum ActionRemoved = 115
+  fromEnum ActivationChange = 99
+  fromEnum ApplicationActivate = 121
+  fromEnum ApplicationDeactivate = 122
+  fromEnum ApplicationFontChange = 36
+  fromEnum ApplicationLayoutDirectionChange = 37
+  fromEnum ApplicationPaletteChange = 38
+  fromEnum ApplicationStateChange = 214
+  fromEnum ApplicationWindowIconChange = 35
+  fromEnum ChildAdded = 68
+  fromEnum ChildPolished = 69
+  fromEnum ChildRemoved = 71
+  fromEnum Clipboard = 40
+  fromEnum Close = 19
+  fromEnum CloseSoftwareInputPanel = 200
+  fromEnum ContentsRectChange = 178
+  fromEnum ContextMenu = 82
+  fromEnum CursorChange = 183
+  fromEnum DeferredDelete = 52
+  fromEnum DragEnter = 60
+  fromEnum DragLeave = 62
+  fromEnum DragMove = 61
+  fromEnum Drop = 63
+  fromEnum DynamicPropertyChange = 170
+  fromEnum EnabledChange = 98
+  fromEnum Enter = 10
+  fromEnum EnterEditFocus = 150
+  fromEnum EnterWhatsThisMode = 124
+  fromEnum Expose = 206
+  fromEnum FileOpen = 116
+  fromEnum FocusIn = 8
+  fromEnum FocusOut = 9
+  fromEnum FocusAboutToChange = 23
+  fromEnum FontChange = 97
+  fromEnum Gesture = 198
+  fromEnum GestureOverride = 202
+  fromEnum GrabKeyboard = 188
+  fromEnum GrabMouse = 186
+  fromEnum GraphicsSceneContextMenu = 159
+  fromEnum GraphicsSceneDragEnter = 164
+  fromEnum GraphicsSceneDragLeave = 166
+  fromEnum GraphicsSceneDragMove = 165
+  fromEnum GraphicsSceneDrop = 167
+  fromEnum GraphicsSceneHelp = 163
+  fromEnum GraphicsSceneHoverEnter = 160
+  fromEnum GraphicsSceneHoverLeave = 162
+  fromEnum GraphicsSceneHoverMove = 161
+  fromEnum GraphicsSceneMouseDoubleClick = 158
+  fromEnum GraphicsSceneMouseMove = 155
+  fromEnum GraphicsSceneMousePress = 156
+  fromEnum GraphicsSceneMouseRelease = 157
+  fromEnum GraphicsSceneMove = 182
+  fromEnum GraphicsSceneResize = 181
+  fromEnum GraphicsSceneWheel = 168
+  fromEnum Hide = 18
+  fromEnum HideToParent = 27
+  fromEnum HoverEnter = 127
+  fromEnum HoverLeave = 128
+  fromEnum HoverMove = 129
+  fromEnum IconDrag = 96
+  fromEnum IconTextChange = 101
+  fromEnum InputMethod = 83
+  fromEnum InputMethodQuery = 207
+  fromEnum KeyboardLayoutChange = 169
+  fromEnum KeyPress = 6
+  fromEnum KeyRelease = 7
+  fromEnum LanguageChange = 89
+  fromEnum LayoutDirectionChange = 90
+  fromEnum LayoutRequest = 76
+  fromEnum Leave = 11
+  fromEnum LeaveEditFocus = 151
+  fromEnum LeaveWhatsThisMode = 125
+  fromEnum LocaleChange = 88
+  fromEnum NonClientAreaMouseButtonDblClick = 176
+  fromEnum NonClientAreaMouseButtonPress = 174
+  fromEnum NonClientAreaMouseButtonRelease = 175
+  fromEnum NonClientAreaMouseMove = 173
+  fromEnum MacSizeChange = 177
+  fromEnum MetaCall = 43
+  fromEnum ModifiedChange = 102
+  fromEnum MouseButtonDblClick = 4
+  fromEnum MouseButtonPress = 2
+  fromEnum MouseButtonRelease = 3
+  fromEnum MouseMove = 5
+  fromEnum MouseTrackingChange = 109
+  fromEnum Move = 13
+  fromEnum NativeGesture = 197
+  fromEnum OrientationChange = 208
+  fromEnum Paint = 12
+  fromEnum PaletteChange = 39
+  fromEnum ParentAboutToChange = 131
+  fromEnum ParentChange = 21
+  fromEnum PlatformPanel = 212
+  fromEnum Polish = 75
+  fromEnum PolishRequest = 74
+  fromEnum QueryWhatsThis = 123
+  fromEnum ReadOnlyChange = 106
+  fromEnum RequestSoftwareInputPanel = 199
+  fromEnum Resize = 14
+  fromEnum ScrollPrepare = 204
+  fromEnum Scroll = 205
+  fromEnum Shortcut = 117
+  fromEnum ShortcutOverride = 51
+  fromEnum Show = 17
+  fromEnum ShowToParent = 26
+  fromEnum SockAct = 50
+  fromEnum StateMachineSignal = 192
+  fromEnum StateMachineWrapped = 193
+  fromEnum StatusTip = 112
+  fromEnum StyleChange = 100
+  fromEnum TabletMove = 87
+  fromEnum TabletPress = 92
+  fromEnum TabletRelease = 93
+  fromEnum OkRequest = 94
+  fromEnum TabletEnterProximity = 171
+  fromEnum TabletLeaveProximity = 172
+  fromEnum ThreadChange = 22
+  fromEnum Timer = 1
+  fromEnum ToolBarChange = 120
+  fromEnum ToolTip = 110
+  fromEnum ToolTipChange = 184
+  fromEnum TouchBegin = 194
+  fromEnum TouchCancel = 209
+  fromEnum TouchEnd = 196
+  fromEnum TouchUpdate = 195
+  fromEnum UngrabKeyboard = 189
+  fromEnum UngrabMouse = 187
+  fromEnum UpdateLater = 78
+  fromEnum UpdateRequest = 77
+  fromEnum WhatsThis = 111
+  fromEnum WhatsThisClicked = 118
+  fromEnum Wheel = 31
+  fromEnum WinEventAct = 132
+  fromEnum WindowActivate = 24
+  fromEnum WindowBlocked = 103
+  fromEnum WindowDeactivate = 25
+  fromEnum WindowIconChange = 34
+  fromEnum WindowStateChange = 105
+  fromEnum WindowTitleChange = 33
+  fromEnum WindowUnblocked = 104
+  fromEnum WinIdChange = 203
+  fromEnum ZOrderChange = 126
+  
+  toEnum (0) = None
+  toEnum (114) = ActionAdded
+  toEnum (113) = ActionChanged
+  toEnum (115) = ActionRemoved
+  toEnum (99) = ActivationChange
+  toEnum (121) = ApplicationActivate
+  toEnum (122) = ApplicationDeactivate
+  toEnum (36) = ApplicationFontChange
+  toEnum (37) = ApplicationLayoutDirectionChange
+  toEnum (38) = ApplicationPaletteChange
+  toEnum (214) = ApplicationStateChange
+  toEnum (35) = ApplicationWindowIconChange
+  toEnum (68) = ChildAdded
+  toEnum (69) = ChildPolished
+  toEnum (71) = ChildRemoved
+  toEnum (40) = Clipboard
+  toEnum (19) = Close
+  toEnum (200) = CloseSoftwareInputPanel
+  toEnum (178) = ContentsRectChange
+  toEnum (82) = ContextMenu
+  toEnum (183) = CursorChange
+  toEnum (52) = DeferredDelete
+  toEnum (60) = DragEnter
+  toEnum (62) = DragLeave
+  toEnum (61) = DragMove
+  toEnum (63) = Drop
+  toEnum (170) = DynamicPropertyChange
+  toEnum (98) = EnabledChange
+  toEnum (10) = Enter
+  toEnum (150) = EnterEditFocus
+  toEnum (124) = EnterWhatsThisMode
+  toEnum (206) = Expose
+  toEnum (116) = FileOpen
+  toEnum (8) = FocusIn
+  toEnum (9) = FocusOut
+  toEnum (23) = FocusAboutToChange
+  toEnum (97) = FontChange
+  toEnum (198) = Gesture
+  toEnum (202) = GestureOverride
+  toEnum (188) = GrabKeyboard
+  toEnum (186) = GrabMouse
+  toEnum (159) = GraphicsSceneContextMenu
+  toEnum (164) = GraphicsSceneDragEnter
+  toEnum (166) = GraphicsSceneDragLeave
+  toEnum (165) = GraphicsSceneDragMove
+  toEnum (167) = GraphicsSceneDrop
+  toEnum (163) = GraphicsSceneHelp
+  toEnum (160) = GraphicsSceneHoverEnter
+  toEnum (162) = GraphicsSceneHoverLeave
+  toEnum (161) = GraphicsSceneHoverMove
+  toEnum (158) = GraphicsSceneMouseDoubleClick
+  toEnum (155) = GraphicsSceneMouseMove
+  toEnum (156) = GraphicsSceneMousePress
+  toEnum (157) = GraphicsSceneMouseRelease
+  toEnum (182) = GraphicsSceneMove
+  toEnum (181) = GraphicsSceneResize
+  toEnum (168) = GraphicsSceneWheel
+  toEnum (18) = Hide
+  toEnum (27) = HideToParent
+  toEnum (127) = HoverEnter
+  toEnum (128) = HoverLeave
+  toEnum (129) = HoverMove
+  toEnum (96) = IconDrag
+  toEnum (101) = IconTextChange
+  toEnum (83) = InputMethod
+  toEnum (207) = InputMethodQuery
+  toEnum (169) = KeyboardLayoutChange
+  toEnum (6) = KeyPress
+  toEnum (7) = KeyRelease
+  toEnum (89) = LanguageChange
+  toEnum (90) = LayoutDirectionChange
+  toEnum (76) = LayoutRequest
+  toEnum (11) = Leave
+  toEnum (151) = LeaveEditFocus
+  toEnum (125) = LeaveWhatsThisMode
+  toEnum (88) = LocaleChange
+  toEnum (176) = NonClientAreaMouseButtonDblClick
+  toEnum (174) = NonClientAreaMouseButtonPress
+  toEnum (175) = NonClientAreaMouseButtonRelease
+  toEnum (173) = NonClientAreaMouseMove
+  toEnum (177) = MacSizeChange
+  toEnum (43) = MetaCall
+  toEnum (102) = ModifiedChange
+  toEnum (4) = MouseButtonDblClick
+  toEnum (2) = MouseButtonPress
+  toEnum (3) = MouseButtonRelease
+  toEnum (5) = MouseMove
+  toEnum (109) = MouseTrackingChange
+  toEnum (13) = Move
+  toEnum (197) = NativeGesture
+  toEnum (208) = OrientationChange
+  toEnum (12) = Paint
+  toEnum (39) = PaletteChange
+  toEnum (131) = ParentAboutToChange
+  toEnum (21) = ParentChange
+  toEnum (212) = PlatformPanel
+  toEnum (75) = Polish
+  toEnum (74) = PolishRequest
+  toEnum (123) = QueryWhatsThis
+  toEnum (106) = ReadOnlyChange
+  toEnum (199) = RequestSoftwareInputPanel
+  toEnum (14) = Resize
+  toEnum (204) = ScrollPrepare
+  toEnum (205) = Scroll
+  toEnum (117) = Shortcut
+  toEnum (51) = ShortcutOverride
+  toEnum (17) = Show
+  toEnum (26) = ShowToParent
+  toEnum (50) = SockAct
+  toEnum (192) = StateMachineSignal
+  toEnum (193) = StateMachineWrapped
+  toEnum (112) = StatusTip
+  toEnum (100) = StyleChange
+  toEnum (87) = TabletMove
+  toEnum (92) = TabletPress
+  toEnum (93) = TabletRelease
+  toEnum (94) = OkRequest
+  toEnum (171) = TabletEnterProximity
+  toEnum (172) = TabletLeaveProximity
+  toEnum (22) = ThreadChange
+  toEnum (1) = Timer
+  toEnum (120) = ToolBarChange
+  toEnum (110) = ToolTip
+  toEnum (184) = ToolTipChange
+  toEnum (194) = TouchBegin
+  toEnum (209) = TouchCancel
+  toEnum (196) = TouchEnd
+  toEnum (195) = TouchUpdate
+  toEnum (189) = UngrabKeyboard
+  toEnum (187) = UngrabMouse
+  toEnum (78) = UpdateLater
+  toEnum (77) = UpdateRequest
+  toEnum (111) = WhatsThis
+  toEnum (118) = WhatsThisClicked
+  toEnum (31) = Wheel
+  toEnum (132) = WinEventAct
+  toEnum (24) = WindowActivate
+  toEnum (103) = WindowBlocked
+  toEnum (25) = WindowDeactivate
+  toEnum (34) = WindowIconChange
+  toEnum (105) = WindowStateChange
+  toEnum (33) = WindowTitleChange
+  toEnum (104) = WindowUnblocked
+  toEnum (203) = WinIdChange
+  toEnum (126) = ZOrderChange
+  toEnum n' = HoppyP.error $ "Unknown QEventType numeric value: " ++ HoppyP.show n'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QItemSelection.hs b/src/Graphics/UI/Qtah/Generated/Core/QItemSelection.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QItemSelection.hs
@@ -0,0 +1,226 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QItemSelectionModel as M20
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelectionRange as M22
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QItemSelectionRange as M64
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QModelIndex as M66
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M28
+import Prelude (($), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QItemSelection_new" new' ::  HoppyP.IO (HoppyF.Ptr QItemSelection)
+foreign import ccall "genpop__QItemSelection_newWithRange" newWithRange' ::  HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr QItemSelection)
+foreign import ccall "genpop__QItemSelection_contains" contains' ::  HoppyF.Ptr QItemSelectionConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QItemSelection_indexes" indexes' ::  HoppyF.Ptr QItemSelectionConst -> HoppyP.IO (HoppyF.Ptr M66.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 M28.QModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelection_split" split' ::  HoppyF.Ptr M22.QItemSelectionRangeConst -> HoppyF.Ptr M22.QItemSelectionRangeConst -> HoppyF.Ptr QItemSelection -> HoppyP.IO ()
+foreign import ccall "gencast__QItemSelection__QListQItemSelectionRange" castQItemSelectionToQListQItemSelectionRange :: HoppyF.Ptr QItemSelectionConst -> HoppyF.Ptr M64.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QItemSelectionConstPtr a => QItemSelectionValue a where
+#else
+instance QItemSelectionConstPtr a => QItemSelectionValue a where
+#endif
+  withQItemSelectionPtr = HoppyP.flip ($) . toQItemSelectionConst
+
+class (M64.QListQItemSelectionRangeConstPtr this) => QItemSelectionConstPtr this where
+  toQItemSelectionConst :: this -> QItemSelectionConst
+
+contains :: (QItemSelectionValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+contains arg'1 arg'2 =
+  withQItemSelectionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (contains' arg'1' arg'2')
+
+indexes :: (QItemSelectionValue arg'1) => arg'1 -> HoppyP.IO [M28.QModelIndex]
+indexes arg'1 =
+  withQItemSelectionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M66.QListQModelIndexConst) =<<
+  (indexes' arg'1')
+
+class (QItemSelectionConstPtr this, M64.QListQItemSelectionRangePtr this) => QItemSelectionPtr this where
+  toQItemSelection :: this -> QItemSelection
+
+merge :: (QItemSelectionPtr arg'1, QItemSelectionValue arg'2, M20.IsQItemSelectionModelSelectionFlags arg'3) => arg'1 -> 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' ->
+  let arg'3' = M20.fromQItemSelectionModelSelectionFlags $ M20.toQItemSelectionModelSelectionFlags arg'3 in
+  (merge' arg'1' arg'2' arg'3')
+
+select :: (QItemSelectionPtr arg'1, M28.QModelIndexValue arg'2, M28.QModelIndexValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO ()
+select arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQItemSelection arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M28.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (select' arg'1' arg'2' arg'3')
+
+split :: (M22.QItemSelectionRangeValue arg'1, M22.QItemSelectionRangeValue arg'2, QItemSelectionPtr arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO ()
+split arg'1 arg'2 arg'3 =
+  M22.withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M22.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 M64.QListQItemSelectionRangeConstPtr QItemSelectionConst where
+  toQListQItemSelectionRangeConst (QItemSelectionConst ptr') = M64.QListQItemSelectionRangeConst $ castQItemSelectionToQListQItemSelectionRange ptr'
+  toQListQItemSelectionRangeConst (QItemSelectionConstGc fptr' ptr') = M64.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 M64.QListQItemSelectionRangeConstPtr QItemSelection where
+  toQListQItemSelectionRangeConst (QItemSelection ptr') = M64.QListQItemSelectionRangeConst $ castQItemSelectionToQListQItemSelectionRange $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelection -> HoppyF.Ptr QItemSelectionConst) ptr'
+  toQListQItemSelectionRangeConst (QItemSelectionGc fptr' ptr') = M64.QListQItemSelectionRangeConstGc fptr' $ castQItemSelectionToQListQItemSelectionRange $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelection -> HoppyF.Ptr QItemSelectionConst) ptr'
+
+instance M64.QListQItemSelectionRangePtr QItemSelection where
+  toQListQItemSelectionRange (QItemSelection ptr') = M64.QListQItemSelectionRange $ (HoppyF.castPtr :: HoppyF.Ptr M64.QListQItemSelectionRangeConst -> HoppyF.Ptr M64.QListQItemSelectionRange) $ castQItemSelectionToQListQItemSelectionRange $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelection -> HoppyF.Ptr QItemSelectionConst) ptr'
+  toQListQItemSelectionRange (QItemSelectionGc fptr' ptr') = M64.QListQItemSelectionRangeGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M64.QListQItemSelectionRangeConst -> HoppyF.Ptr M64.QListQItemSelectionRange) $ castQItemSelectionToQListQItemSelectionRange $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelection -> HoppyF.Ptr QItemSelectionConst) ptr'
+
+new ::  HoppyP.IO QItemSelection
+new =
+  HoppyP.fmap QItemSelection
+  (new')
+
+newWithRange :: (M28.QModelIndexValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QItemSelection
+newWithRange arg'1 arg'2 =
+  M28.withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.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 ([M22.QItemSelectionRange]) where
+  decode = HoppyFHR.decode . toQItemSelectionConst
+
+instance HoppyFHR.Decodable QItemSelectionConst ([M22.QItemSelectionRange]) where
+  decode =
+    QtahFHR.toContents
+instance QtahFHR.HasContents QItemSelectionConst (M22.QItemSelectionRange) where
+  toContents = QtahFHR.toContents . M64.toQListQItemSelectionRangeConst
+instance QtahFHR.HasContents QItemSelection (M22.QItemSelectionRange) where
+  toContents = QtahFHR.toContents . M64.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,75 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M22
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QItemSelectionRange as M64
+import qualified Prelude as HoppyP
+
+
+class QItemSelectionValue a where
+  withQItemSelectionPtr :: a -> (QItemSelectionConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QItemSelectionConstPtr a => QItemSelectionValue a
+#else
+instance QItemSelectionConstPtr a => QItemSelectionValue a
+#endif
+
+class (M64.QListQItemSelectionRangeConstPtr this) => QItemSelectionConstPtr this where
+  toQItemSelectionConst :: this -> QItemSelectionConst
+
+class (QItemSelectionConstPtr this, M64.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 M64.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 M64.QListQItemSelectionRangeConstPtr QItemSelection
+
+instance M64.QListQItemSelectionRangePtr QItemSelection
+castQItemSelectionToQListQItemSelectionRange :: HoppyF.Ptr QItemSelectionConst -> HoppyF.Ptr M64.QListQItemSelectionRangeConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QItemSelection)) QItemSelection
+
+instance HoppyFHR.Decodable QItemSelection (([M22.QItemSelectionRange]))
+instance HoppyFHR.Decodable QItemSelectionConst (([M22.QItemSelectionRange]))
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QItemSelectionModel.hs b/src/Graphics/UI/Qtah/Generated/Core/QItemSelectionModel.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QItemSelectionModel.hs
@@ -0,0 +1,452 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  QItemSelectionModelConst (..),
+  castQItemSelectionModelToConst,
+  QItemSelectionModel (..),
+  castQItemSelectionModelToNonconst,
+  new,
+  newWithModel,
+  newWithModelAndParent,
+  QItemSelectionModelSuper (..),
+  QItemSelectionModelSuperConst (..),
+  QItemSelectionModelSelectionFlag (..),
+  QItemSelectionModelSelectionFlags (..),
+  IsQItemSelectionModelSelectionFlags (..),
+  noUpdate,
+  clearFlag,
+  select,
+  deselect,
+  toggle,
+  current,
+  rows,
+  columns,
+  selectCurrent,
+  toggleCurrent,
+  clearAndSelect,
+  ) 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.QAbstractItemModel as M2
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QItemSelection as M18
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelectionRange as M22
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QModelIndex as M66
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M28
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import Prelude (($), (++), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QItemSelectionModel_new" new' ::  HoppyP.IO (HoppyF.Ptr QItemSelectionModel)
+foreign import ccall "genpop__QItemSelectionModel_newWithModel" newWithModel' ::  HoppyF.Ptr M2.QAbstractItemModel -> HoppyP.IO (HoppyF.Ptr QItemSelectionModel)
+foreign import ccall "genpop__QItemSelectionModel_newWithModelAndParent" newWithModelAndParent' ::  HoppyF.Ptr M2.QAbstractItemModel -> HoppyF.Ptr M30.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 M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QItemSelectionModel_currentIndex" currentIndex' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyP.IO (HoppyF.Ptr M28.QModelIndexConst)
+foreign import ccall "genpop__QItemSelectionModel_hasSelection" hasSelection' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QItemSelectionModel_isColumnSelected" isColumnSelected' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QItemSelectionModel_isRowSelected" isRowSelected' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QItemSelectionModel_isSelected" isSelected' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QItemSelectionModel_model" model' ::  HoppyF.Ptr QItemSelectionModel -> HoppyP.IO (HoppyF.Ptr M2.QAbstractItemModel)
+foreign import ccall "genpop__QItemSelectionModel_modelConst" modelConst' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyP.IO (HoppyF.Ptr M2.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 M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QItemSelectionModel_selectIndex" selectIndex' ::  HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelectionModel_selectSelection" selectSelection' ::  HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr M18.QItemSelectionConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelectionModel_selectedColumns" selectedColumns' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M66.QListQModelIndexConst)
+foreign import ccall "genpop__QItemSelectionModel_selectedIndexes" selectedIndexes' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyP.IO (HoppyF.Ptr M66.QListQModelIndexConst)
+foreign import ccall "genpop__QItemSelectionModel_selectedRows" selectedRows' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M66.QListQModelIndexConst)
+foreign import ccall "genpop__QItemSelectionModel_selection" selection' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyP.IO (HoppyF.Ptr M18.QItemSelectionConst)
+foreign import ccall "genpop__QItemSelectionModel_setCurrentIndex" setCurrentIndex' ::  HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelectionModel_setModel" setModel' ::  HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr M2.QAbstractItemModel -> HoppyP.IO ()
+foreign import ccall "gencast__QItemSelectionModel__QObject" castQItemSelectionModelToQObject :: HoppyF.Ptr QItemSelectionModelConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QItemSelectionModel" castQObjectToQItemSelectionModel :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QItemSelectionModelConstPtr a => QItemSelectionModelValue a where
+#else
+instance QItemSelectionModelConstPtr a => QItemSelectionModelValue a where
+#endif
+  withQItemSelectionModelPtr = HoppyP.flip ($) . toQItemSelectionModelConst
+
+class (M30.QObjectConstPtr this) => QItemSelectionModelConstPtr this where
+  toQItemSelectionModelConst :: this -> QItemSelectionModelConst
+
+columnIntersectsSelection :: (QItemSelectionModelValue arg'1, M28.QModelIndexValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO HoppyP.Bool
+columnIntersectsSelection arg'1 arg'2 arg'3 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M28.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (columnIntersectsSelection' arg'1' arg'2' arg'3')
+
+currentIndex :: (QItemSelectionModelValue arg'1) => arg'1 -> HoppyP.IO M28.QModelIndex
+currentIndex arg'1 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M28.QModelIndexConst) =<<
+  (currentIndex' arg'1')
+
+hasSelection :: (QItemSelectionModelValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasSelection arg'1 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasSelection' arg'1')
+
+isColumnSelected :: (QItemSelectionModelValue arg'1, M28.QModelIndexValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO HoppyP.Bool
+isColumnSelected arg'1 arg'2 arg'3 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M28.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (isColumnSelected' arg'1' arg'2' arg'3')
+
+isRowSelected :: (QItemSelectionModelValue arg'1, M28.QModelIndexValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO HoppyP.Bool
+isRowSelected arg'1 arg'2 arg'3 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M28.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (isRowSelected' arg'1' arg'2' arg'3')
+
+isSelected :: (QItemSelectionModelValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+isSelected arg'1 arg'2 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (isSelected' arg'1' arg'2')
+
+modelConst :: (QItemSelectionModelValue arg'1) => arg'1 -> HoppyP.IO M2.QAbstractItemModelConst
+modelConst arg'1 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M2.QAbstractItemModelConst
+  (modelConst' arg'1')
+
+rowIntersectsSelection :: (QItemSelectionModelValue arg'1, M28.QModelIndexValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO HoppyP.Bool
+rowIntersectsSelection arg'1 arg'2 arg'3 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M28.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (rowIntersectsSelection' arg'1' arg'2' arg'3')
+
+selectedColumns :: (QItemSelectionModelValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO [M28.QModelIndex]
+selectedColumns arg'1 arg'2 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M66.QListQModelIndexConst) =<<
+  (selectedColumns' arg'1' arg'2')
+
+selectedIndexes :: (QItemSelectionModelValue arg'1) => arg'1 -> HoppyP.IO [M28.QModelIndex]
+selectedIndexes arg'1 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M66.QListQModelIndexConst) =<<
+  (selectedIndexes' arg'1')
+
+selectedRows :: (QItemSelectionModelValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO [M28.QModelIndex]
+selectedRows arg'1 arg'2 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M66.QListQModelIndexConst) =<<
+  (selectedRows' arg'1' arg'2')
+
+selection :: (QItemSelectionModelValue arg'1) => arg'1 -> HoppyP.IO [M22.QItemSelectionRange]
+selection arg'1 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M18.QItemSelectionConst) =<<
+  (selection' arg'1')
+
+class (QItemSelectionModelConstPtr this, M30.QObjectPtr this) => QItemSelectionModelPtr this where
+  toQItemSelectionModel :: this -> QItemSelectionModel
+
+clear :: (QItemSelectionModelPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+clearCurrentIndex :: (QItemSelectionModelPtr arg'1) => arg'1 -> HoppyP.IO ()
+clearCurrentIndex arg'1 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  (clearCurrentIndex' arg'1')
+
+clearSelection :: (QItemSelectionModelPtr arg'1) => arg'1 -> HoppyP.IO ()
+clearSelection arg'1 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  (clearSelection' arg'1')
+
+model :: (QItemSelectionModelPtr arg'1) => arg'1 -> HoppyP.IO M2.QAbstractItemModel
+model arg'1 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  HoppyP.fmap M2.QAbstractItemModel
+  (model' arg'1')
+
+reset :: (QItemSelectionModelPtr arg'1) => arg'1 -> HoppyP.IO ()
+reset arg'1 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  (reset' arg'1')
+
+selectIndex :: (QItemSelectionModelPtr arg'1, M28.QModelIndexValue arg'2, IsQItemSelectionModelSelectionFlags arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO ()
+selectIndex arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = fromQItemSelectionModelSelectionFlags $ toQItemSelectionModelSelectionFlags arg'3 in
+  (selectIndex' arg'1' arg'2' arg'3')
+
+selectSelection :: (QItemSelectionModelPtr arg'1, M18.QItemSelectionValue arg'2, IsQItemSelectionModelSelectionFlags arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO ()
+selectSelection arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  M18.withQItemSelectionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = fromQItemSelectionModelSelectionFlags $ toQItemSelectionModelSelectionFlags arg'3 in
+  (selectSelection' arg'1' arg'2' arg'3')
+
+setCurrentIndex :: (QItemSelectionModelPtr arg'1, M28.QModelIndexValue arg'2, IsQItemSelectionModelSelectionFlags arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO ()
+setCurrentIndex arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = fromQItemSelectionModelSelectionFlags $ toQItemSelectionModelSelectionFlags arg'3 in
+  (setCurrentIndex' arg'1' arg'2' arg'3')
+
+setModel :: (QItemSelectionModelPtr arg'1, M2.QAbstractItemModelPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setModel arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M2.toQAbstractItemModel arg'2) $ \arg'2' ->
+  (setModel' arg'1' arg'2')
+
+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 M30.QObjectConstPtr QItemSelectionModelConst where
+  toQObjectConst (QItemSelectionModelConst ptr') = M30.QObjectConst $ castQItemSelectionModelToQObject ptr'
+  toQObjectConst (QItemSelectionModelConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr QItemSelectionModel where
+  toQObjectConst (QItemSelectionModel ptr') = M30.QObjectConst $ castQItemSelectionModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr QItemSelectionModelConst) ptr'
+  toQObjectConst (QItemSelectionModelGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQItemSelectionModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr QItemSelectionModelConst) ptr'
+
+instance M30.QObjectPtr QItemSelectionModel where
+  toQObject (QItemSelectionModel ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQItemSelectionModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr QItemSelectionModelConst) ptr'
+  toQObject (QItemSelectionModelGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQItemSelectionModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr QItemSelectionModelConst) ptr'
+
+new ::  HoppyP.IO QItemSelectionModel
+new =
+  HoppyP.fmap QItemSelectionModel
+  (new')
+
+newWithModel :: (M2.QAbstractItemModelPtr arg'1) => arg'1 -> HoppyP.IO QItemSelectionModel
+newWithModel arg'1 =
+  HoppyFHR.withCppPtr (M2.toQAbstractItemModel arg'1) $ \arg'1' ->
+  HoppyP.fmap QItemSelectionModel
+  (newWithModel' arg'1')
+
+newWithModelAndParent :: (M2.QAbstractItemModelPtr arg'1, M30.QObjectPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QItemSelectionModel
+newWithModelAndParent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M2.toQAbstractItemModel arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap QItemSelectionModel
+  (newWithModelAndParent' arg'1' arg'2')
+
+class QItemSelectionModelSuper a where
+  downToQItemSelectionModel :: a -> QItemSelectionModel
+
+instance QItemSelectionModelSuper M30.QObject where
+  downToQItemSelectionModel = castQItemSelectionModelToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QItemSelectionModelConst $ castQObjectToQItemSelectionModel ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QItemSelectionModelConstGc fptr' $ castQObjectToQItemSelectionModel ptr'
+
+class QItemSelectionModelSuperConst a where
+  downToQItemSelectionModelConst :: a -> QItemSelectionModelConst
+
+instance QItemSelectionModelSuperConst M30.QObjectConst where
+  downToQItemSelectionModelConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QItemSelectionModelConst $ castQObjectToQItemSelectionModel ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QItemSelectionModelSelectionFlag where
+  fromEnum NoUpdate = 0
+  fromEnum ClearFlag = 1
+  fromEnum Select = 2
+  fromEnum Deselect = 4
+  fromEnum Toggle = 8
+  fromEnum Current = 16
+  fromEnum Rows = 32
+  fromEnum Columns = 64
+  fromEnum SelectCurrent = 18
+  fromEnum ToggleCurrent = 24
+  fromEnum ClearAndSelect = 3
+  
+  toEnum (0) = NoUpdate
+  toEnum (1) = ClearFlag
+  toEnum (2) = Select
+  toEnum (4) = Deselect
+  toEnum (8) = Toggle
+  toEnum (16) = Current
+  toEnum (32) = Rows
+  toEnum (64) = Columns
+  toEnum (18) = SelectCurrent
+  toEnum (24) = ToggleCurrent
+  toEnum (3) = ClearAndSelect
+  toEnum n' = HoppyP.error $ "Unknown QItemSelectionModelSelectionFlag numeric value: " ++ HoppyP.show n'
+
+newtype QItemSelectionModelSelectionFlags = QItemSelectionModelSelectionFlags { fromQItemSelectionModelSelectionFlags :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQItemSelectionModelSelectionFlags a where
+  toQItemSelectionModelSelectionFlags :: a -> QItemSelectionModelSelectionFlags
+
+instance IsQItemSelectionModelSelectionFlags (HoppyFC.CInt) where
+  toQItemSelectionModelSelectionFlags = QItemSelectionModelSelectionFlags
+instance IsQItemSelectionModelSelectionFlags (HoppyP.Int) where
+  toQItemSelectionModelSelectionFlags = QItemSelectionModelSelectionFlags . HoppyFHR.coerceIntegral
+instance IsQItemSelectionModelSelectionFlags QItemSelectionModelSelectionFlags where
+  toQItemSelectionModelSelectionFlags = HoppyP.id
+
+instance IsQItemSelectionModelSelectionFlags QItemSelectionModelSelectionFlag where
+  toQItemSelectionModelSelectionFlags = QItemSelectionModelSelectionFlags . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+noUpdate = QItemSelectionModelSelectionFlags 0
+clearFlag = QItemSelectionModelSelectionFlags 1
+select = QItemSelectionModelSelectionFlags 2
+deselect = QItemSelectionModelSelectionFlags 4
+toggle = QItemSelectionModelSelectionFlags 8
+current = QItemSelectionModelSelectionFlags 16
+rows = QItemSelectionModelSelectionFlags 32
+columns = QItemSelectionModelSelectionFlags 64
+selectCurrent = QItemSelectionModelSelectionFlags 18
+toggleCurrent = QItemSelectionModelSelectionFlags 24
+clearAndSelect = QItemSelectionModelSelectionFlags 3
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,99 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QItemSelectionModel (
+  QItemSelectionModelValue (..),
+  QItemSelectionModelConstPtr (..),
+  QItemSelectionModelPtr (..),
+  QItemSelectionModelConst (..),
+  castQItemSelectionModelToConst,
+  QItemSelectionModel (..),
+  castQItemSelectionModelToNonconst,
+  castQItemSelectionModelToQObject,
+  QItemSelectionModelSelectionFlag,
+  QItemSelectionModelSelectionFlags (..),
+  IsQItemSelectionModelSelectionFlags (..),
+  ) 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 M30
+import qualified Prelude as HoppyP
+
+
+class QItemSelectionModelValue a where
+  withQItemSelectionModelPtr :: a -> (QItemSelectionModelConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QItemSelectionModelConstPtr a => QItemSelectionModelValue a
+#else
+instance QItemSelectionModelConstPtr a => QItemSelectionModelValue a
+#endif
+
+class (M30.QObjectConstPtr this) => QItemSelectionModelConstPtr this where
+  toQItemSelectionModelConst :: this -> QItemSelectionModelConst
+
+class (QItemSelectionModelConstPtr this, M30.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 M30.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 M30.QObjectConstPtr QItemSelectionModel
+
+instance M30.QObjectPtr QItemSelectionModel
+castQItemSelectionModelToQObject :: HoppyF.Ptr QItemSelectionModelConst -> HoppyF.Ptr M30.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QItemSelectionModel)) QItemSelectionModel
+
+data QItemSelectionModelSelectionFlag
+instance HoppyP.Bounded QItemSelectionModelSelectionFlag
+instance HoppyP.Enum QItemSelectionModelSelectionFlag
+instance HoppyP.Eq QItemSelectionModelSelectionFlag
+instance HoppyP.Ord QItemSelectionModelSelectionFlag
+instance HoppyP.Show QItemSelectionModelSelectionFlag
+
+newtype QItemSelectionModelSelectionFlags = QItemSelectionModelSelectionFlags { fromQItemSelectionModelSelectionFlags :: HoppyFC.CInt }
+
+instance HoppyDB.Bits QItemSelectionModelSelectionFlags
+instance HoppyP.Bounded QItemSelectionModelSelectionFlags
+instance HoppyP.Eq QItemSelectionModelSelectionFlags
+instance HoppyP.Ord QItemSelectionModelSelectionFlags
+instance HoppyP.Show QItemSelectionModelSelectionFlags
+
+class IsQItemSelectionModelSelectionFlags a where
+  toQItemSelectionModelSelectionFlags :: a -> QItemSelectionModelSelectionFlags
+
+instance IsQItemSelectionModelSelectionFlags (HoppyFC.CInt)
+instance IsQItemSelectionModelSelectionFlags (HoppyP.Int)
+instance IsQItemSelectionModelSelectionFlags QItemSelectionModelSelectionFlags
+instance IsQItemSelectionModelSelectionFlags QItemSelectionModelSelectionFlag
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QItemSelectionRange.hs b/src/Graphics/UI/Qtah/Generated/Core/QItemSelectionRange.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QItemSelectionRange.hs
@@ -0,0 +1,363 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M2
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QModelIndex as M66
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M28
+import qualified Graphics.UI.Qtah.Generated.Core.QPersistentModelIndex as M32
+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 M28.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr QItemSelectionRange)
+foreign import ccall "genpop__QItemSelectionRange_newWithIndices" newWithIndices' ::  HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.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 M32.QPersistentModelIndexConst)
+foreign import ccall "genpop__QItemSelectionRange_containsIndex" containsIndex' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QItemSelectionRange_containsBelowParent" containsBelowParent' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.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 M66.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 HoppyFHR.CBool
+foreign import ccall "genpop__QItemSelectionRange_isEmpty" isEmpty' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QItemSelectionRange_isValid" isValid' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO HoppyFHR.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 M2.QAbstractItemModelConst)
+foreign import ccall "genpop__QItemSelectionRange_parent" parent' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr M28.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 M32.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 HoppyFHR.CBool
+foreign import ccall "genpop__QItemSelectionRange_NE" nE' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QItemSelectionRangeConstPtr a => QItemSelectionRangeValue a where
+#else
+instance QItemSelectionRangeConstPtr a => QItemSelectionRangeValue a where
+#endif
+  withQItemSelectionRangePtr = HoppyP.flip ($) . toQItemSelectionRangeConst
+
+class (HoppyFHR.CppPtr this) => QItemSelectionRangeConstPtr this where
+  toQItemSelectionRangeConst :: this -> QItemSelectionRangeConst
+
+bottom :: (QItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+bottom arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (bottom' arg'1')
+
+bottomRight :: (QItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.IO M32.QPersistentModelIndexConst
+bottomRight arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M32.QPersistentModelIndexConst
+  (bottomRight' arg'1')
+
+containsIndex :: (QItemSelectionRangeValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+containsIndex arg'1 arg'2 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (containsIndex' arg'1' arg'2')
+
+containsBelowParent :: (QItemSelectionRangeValue arg'1, M28.QModelIndexValue arg'4) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  M28.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap (/= 0)
+  (containsBelowParent' arg'1' arg'2' arg'3' arg'4')
+
+height :: (QItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+height arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (height' arg'1')
+
+indexes :: (QItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.IO [M28.QModelIndex]
+indexes arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M66.QListQModelIndexConst) =<<
+  (indexes' arg'1')
+
+intersected :: (QItemSelectionRangeValue arg'1, QItemSelectionRangeValue arg'2) => arg'1 -> 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 arg'1, QItemSelectionRangeValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (intersects' arg'1' arg'2')
+
+isEmpty :: (QItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+isValid :: (QItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isValid arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isValid' arg'1')
+
+left :: (QItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+left arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (left' arg'1')
+
+model :: (QItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.IO M2.QAbstractItemModelConst
+model arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M2.QAbstractItemModelConst
+  (model' arg'1')
+
+parent :: (QItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.IO M28.QModelIndex
+parent arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M28.QModelIndexConst) =<<
+  (parent' arg'1')
+
+right :: (QItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+right arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (right' arg'1')
+
+top :: (QItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+top arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (top' arg'1')
+
+topLeft :: (QItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.IO M32.QPersistentModelIndexConst
+topLeft arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M32.QPersistentModelIndexConst
+  (topLeft' arg'1')
+
+width :: (QItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+width arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (width' arg'1')
+
+eQ :: (QItemSelectionRangeValue arg'1, QItemSelectionRangeValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QItemSelectionRangeValue arg'1, QItemSelectionRangeValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QItemSelectionRangeConstPtr this) => QItemSelectionRangePtr this where
+  toQItemSelectionRange :: this -> QItemSelectionRange
+
+swap :: (QItemSelectionRangePtr arg'1, QItemSelectionRangePtr arg'2) => arg'1 -> 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 arg'1, QItemSelectionRangeValue arg'2) => arg'1 -> 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 :: (M28.QModelIndexValue arg'1) => arg'1 -> HoppyP.IO QItemSelectionRange
+newWithIndex arg'1 =
+  M28.withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QItemSelectionRange
+  (newWithIndex' arg'1')
+
+newWithIndices :: (M28.QModelIndexValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QItemSelectionRange
+newWithIndices arg'1 arg'2 =
+  M28.withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.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/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,540 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 HoppyFHR.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 HoppyFHR.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 HoppyFHR.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 HoppyFHR.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 HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QListIntConstPtr a => QListIntValue a where
+#else
+instance QListIntConstPtr a => QListIntValue a where
+#endif
+  withQListIntPtr = HoppyP.flip ($) . toQListIntConst
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QListIntValue ([HoppyP.Int]) where
+#else
+instance QListIntValue ([HoppyP.Int]) where
+#endif
+  withQListIntPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListIntConstPtr this where
+  toQListIntConst :: this -> QListIntConst
+
+atConst :: (QListIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+atConst arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (atConst' arg'1' arg'2')
+
+contains :: (QListIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+contains arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap (/= 0)
+  (contains' arg'1' arg'2')
+
+count :: (QListIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+count arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1' arg'2')
+
+endsWith :: (QListIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+endsWith arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap (/= 0)
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListIntValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+firstConst arg'1 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (firstConst' arg'1')
+
+get :: (QListIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+get arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (get' arg'1' arg'2')
+
+indexOf :: (QListIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+indexOf arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListIntValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+lastConst :: (QListIntValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+lastConst arg'1 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+lastIndexOf arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QListInt
+mid arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListInt
+  (mid' arg'1' arg'2')
+
+midLength :: (QListIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QListInt
+midLength arg'1 arg'2 arg'3 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListInt
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListIntValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+size arg'1 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (size' arg'1')
+
+startsWith :: (QListIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+startsWith arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap (/= 0)
+  (startsWith' arg'1' arg'2')
+
+value :: (QListIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+value arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (value' arg'1' arg'2')
+
+valueOr :: (QListIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+valueOr arg'1 arg'2 arg'3 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListIntValue arg'1, QListIntValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (append' arg'1' arg'2')
+
+appendList :: (QListIntPtr arg'1, QListIntValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (at' arg'1' arg'2')
+
+clear :: (QListIntPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListIntPtr arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (first' arg'1')
+
+insert :: (QListIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListIntPtr arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (last' arg'1')
+
+move :: (QListIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListIntPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListIntPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap (/= 0)
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (reserve' arg'1' arg'2')
+
+swap :: (QListIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListIntPtr arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (takeFirst' arg'1')
+
+takeLast :: (QListIntPtr arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (takeLast' arg'1')
+
+aSSIGN :: (QListIntPtr arg'1, QListIntValue arg'2) => arg'1 -> 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,541 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M162
+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 M162.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 M162.QAbstractButton))
+foreign import ccall "genpop__QListQAbstractButton_atConst" atConst' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M162.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 M162.QAbstractButton -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQAbstractButton_count" count' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQAbstractButton_endsWith" endsWith' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQAbstractButton_first" first' ::  HoppyF.Ptr QListQAbstractButton -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M162.QAbstractButton))
+foreign import ccall "genpop__QListQAbstractButton_firstConst" firstConst' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M162.QAbstractButton))
+foreign import ccall "genpop__QListQAbstractButton_get" get' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M162.QAbstractButton)
+foreign import ccall "genpop__QListQAbstractButton_indexOf" indexOf' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQAbstractButton_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyF.Ptr M162.QAbstractButton -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQAbstractButton_insert" insert' ::  HoppyF.Ptr QListQAbstractButton -> HoppyFC.CInt -> HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QListQAbstractButton_isEmpty" isEmpty' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQAbstractButton_last" last' ::  HoppyF.Ptr QListQAbstractButton -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M162.QAbstractButton))
+foreign import ccall "genpop__QListQAbstractButton_lastConst" lastConst' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M162.QAbstractButton))
+foreign import ccall "genpop__QListQAbstractButton_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQAbstractButton_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyF.Ptr M162.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 M162.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QListQAbstractButton_removeAll" removeAll' ::  HoppyF.Ptr QListQAbstractButton -> HoppyF.Ptr M162.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 M162.QAbstractButton -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQAbstractButton_replace" replace' ::  HoppyF.Ptr QListQAbstractButton -> HoppyFC.CInt -> HoppyF.Ptr M162.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 M162.QAbstractButton -> HoppyP.IO HoppyFHR.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 M162.QAbstractButton)
+foreign import ccall "genpop__QListQAbstractButton_takeFirst" takeFirst' ::  HoppyF.Ptr QListQAbstractButton -> HoppyP.IO (HoppyF.Ptr M162.QAbstractButton)
+foreign import ccall "genpop__QListQAbstractButton_takeLast" takeLast' ::  HoppyF.Ptr QListQAbstractButton -> HoppyP.IO (HoppyF.Ptr M162.QAbstractButton)
+foreign import ccall "genpop__QListQAbstractButton_value" value' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M162.QAbstractButton)
+foreign import ccall "genpop__QListQAbstractButton_valueOr" valueOr' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyFC.CInt -> HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO (HoppyF.Ptr M162.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QListQAbstractButtonConstPtr a => QListQAbstractButtonValue a where
+#else
+instance QListQAbstractButtonConstPtr a => QListQAbstractButtonValue a where
+#endif
+  withQListQAbstractButtonPtr = HoppyP.flip ($) . toQListQAbstractButtonConst
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QListQAbstractButtonValue ([M162.QAbstractButton]) where
+#else
+instance QListQAbstractButtonValue ([M162.QAbstractButton]) where
+#endif
+  withQListQAbstractButtonPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQAbstractButtonConstPtr this where
+  toQListQAbstractButtonConst :: this -> QListQAbstractButtonConst
+
+atConst :: (QListQAbstractButtonValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M162.QAbstractButton))
+atConst arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQAbstractButtonValue arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+contains arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (contains' arg'1' arg'2')
+
+count :: (QListQAbstractButtonValue arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+count arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQAbstractButtonValue arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+endsWith arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQAbstractButtonValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M162.QAbstractButton))
+firstConst arg'1 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (firstConst' arg'1')
+
+get :: (QListQAbstractButtonValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M162.QAbstractButton
+get arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M162.QAbstractButton
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQAbstractButtonValue arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+indexOf arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQAbstractButtonValue arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> 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 (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQAbstractButtonValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+lastConst :: (QListQAbstractButtonValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M162.QAbstractButton))
+lastConst arg'1 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQAbstractButtonValue arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+lastIndexOf arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQAbstractButtonValue arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> 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 (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQAbstractButtonValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QListQAbstractButton
+mid arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQAbstractButton
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQAbstractButtonValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QListQAbstractButton
+midLength arg'1 arg'2 arg'3 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQAbstractButton
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQAbstractButtonValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+size arg'1 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (size' arg'1')
+
+startsWith :: (QListQAbstractButtonValue arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+startsWith arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQAbstractButtonValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M162.QAbstractButton
+value arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M162.QAbstractButton
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQAbstractButtonValue arg'1, M162.QAbstractButtonPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO M162.QAbstractButton
+valueOr arg'1 arg'2 arg'3 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'3) $ \arg'3' ->
+  HoppyP.fmap M162.QAbstractButton
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQAbstractButtonValue arg'1, QListQAbstractButtonValue arg'2) => arg'1 -> 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 arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQAbstractButtonPtr arg'1, QListQAbstractButtonValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M162.QAbstractButton))
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (at' arg'1' arg'2')
+
+clear :: (QListQAbstractButtonPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQAbstractButtonPtr arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M162.QAbstractButton))
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (first' arg'1')
+
+insert :: (QListQAbstractButtonPtr arg'1, M162.QAbstractButtonPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'3) $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQAbstractButtonPtr arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M162.QAbstractButton))
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (last' arg'1')
+
+move :: (QListQAbstractButtonPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQAbstractButtonPtr arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQAbstractButtonPtr arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQAbstractButtonPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQAbstractButtonPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQAbstractButtonPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQAbstractButtonPtr arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQAbstractButtonPtr arg'1, M162.QAbstractButtonPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'3) $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQAbstractButtonPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQAbstractButtonPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQAbstractButtonPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M162.QAbstractButton
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M162.QAbstractButton
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQAbstractButtonPtr arg'1) => arg'1 -> HoppyP.IO M162.QAbstractButton
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  HoppyP.fmap M162.QAbstractButton
+  (takeFirst' arg'1')
+
+takeLast :: (QListQAbstractButtonPtr arg'1) => arg'1 -> HoppyP.IO M162.QAbstractButton
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  HoppyP.fmap M162.QAbstractButton
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQAbstractButtonPtr arg'1, QListQAbstractButtonValue arg'2) => arg'1 -> 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 ([M162.QAbstractButton]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListQAbstractButtonConst ([M162.QAbstractButton]) where
+  encode = HoppyP.fmap (toQListQAbstractButtonConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListQAbstractButton)
+
+instance HoppyFHR.Decodable QListQAbstractButton ([M162.QAbstractButton]) where
+  decode = HoppyFHR.decode . toQListQAbstractButtonConst
+
+instance HoppyFHR.Decodable QListQAbstractButtonConst ([M162.QAbstractButton]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListQAbstractButtonConst (M162.QAbstractButton) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListQAbstractButton (M162.QAbstractButton) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListQAbstractButton (M162.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/QItemSelectionRange.hs b/src/Graphics/UI/Qtah/Generated/Core/QList/QItemSelectionRange.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QItemSelectionRange.hs
@@ -0,0 +1,547 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M22
+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 M22.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 M22.QItemSelectionRange)
+foreign import ccall "genpop__QListQItemSelectionRange_atConst" atConst' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M22.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 M22.QItemSelectionRangeConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQItemSelectionRange_count" count' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyF.Ptr M22.QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQItemSelectionRange_endsWith" endsWith' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyF.Ptr M22.QItemSelectionRangeConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQItemSelectionRange_first" first' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyP.IO (HoppyF.Ptr M22.QItemSelectionRange)
+foreign import ccall "genpop__QListQItemSelectionRange_firstConst" firstConst' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr M22.QItemSelectionRangeConst)
+foreign import ccall "genpop__QListQItemSelectionRange_get" get' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M22.QItemSelectionRangeConst)
+foreign import ccall "genpop__QListQItemSelectionRange_indexOf" indexOf' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyF.Ptr M22.QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQItemSelectionRange_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyF.Ptr M22.QItemSelectionRangeConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQItemSelectionRange_insert" insert' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyFC.CInt -> HoppyF.Ptr M22.QItemSelectionRangeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQItemSelectionRange_isEmpty" isEmpty' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQItemSelectionRange_last" last' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyP.IO (HoppyF.Ptr M22.QItemSelectionRange)
+foreign import ccall "genpop__QListQItemSelectionRange_lastConst" lastConst' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr M22.QItemSelectionRangeConst)
+foreign import ccall "genpop__QListQItemSelectionRange_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyF.Ptr M22.QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQItemSelectionRange_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyF.Ptr M22.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 M22.QItemSelectionRangeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQItemSelectionRange_removeAll" removeAll' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyF.Ptr M22.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 M22.QItemSelectionRangeConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQItemSelectionRange_replace" replace' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyFC.CInt -> HoppyF.Ptr M22.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 M22.QItemSelectionRangeConst -> HoppyP.IO HoppyFHR.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 M22.QItemSelectionRangeConst)
+foreign import ccall "genpop__QListQItemSelectionRange_takeFirst" takeFirst' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyP.IO (HoppyF.Ptr M22.QItemSelectionRangeConst)
+foreign import ccall "genpop__QListQItemSelectionRange_takeLast" takeLast' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyP.IO (HoppyF.Ptr M22.QItemSelectionRangeConst)
+foreign import ccall "genpop__QListQItemSelectionRange_value" value' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M22.QItemSelectionRangeConst)
+foreign import ccall "genpop__QListQItemSelectionRange_valueOr" valueOr' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyFC.CInt -> HoppyF.Ptr M22.QItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr M22.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QListQItemSelectionRangeConstPtr a => QListQItemSelectionRangeValue a where
+#else
+instance QListQItemSelectionRangeConstPtr a => QListQItemSelectionRangeValue a where
+#endif
+  withQListQItemSelectionRangePtr = HoppyP.flip ($) . toQListQItemSelectionRangeConst
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QListQItemSelectionRangeValue ([M22.QItemSelectionRange]) where
+#else
+instance QListQItemSelectionRangeValue ([M22.QItemSelectionRange]) where
+#endif
+  withQListQItemSelectionRangePtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQItemSelectionRangeConstPtr this where
+  toQListQItemSelectionRangeConst :: this -> QListQItemSelectionRangeConst
+
+atConst :: (QListQItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M22.QItemSelectionRangeConst
+atConst arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M22.QItemSelectionRangeConst
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQItemSelectionRangeValue arg'1, M22.QItemSelectionRangeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+contains arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M22.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (contains' arg'1' arg'2')
+
+count :: (QListQItemSelectionRangeValue arg'1, M22.QItemSelectionRangeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+count arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M22.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQItemSelectionRangeValue arg'1, M22.QItemSelectionRangeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+endsWith arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M22.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.IO M22.QItemSelectionRangeConst
+firstConst arg'1 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M22.QItemSelectionRangeConst
+  (firstConst' arg'1')
+
+get :: (QListQItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M22.QItemSelectionRange
+get arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M22.QItemSelectionRangeConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQItemSelectionRangeValue arg'1, M22.QItemSelectionRangeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+indexOf arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M22.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQItemSelectionRangeValue arg'1, M22.QItemSelectionRangeValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M22.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+lastConst :: (QListQItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.IO M22.QItemSelectionRangeConst
+lastConst arg'1 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M22.QItemSelectionRangeConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQItemSelectionRangeValue arg'1, M22.QItemSelectionRangeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+lastIndexOf arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M22.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQItemSelectionRangeValue arg'1, M22.QItemSelectionRangeValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M22.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QListQItemSelectionRange
+mid arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQItemSelectionRange
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QListQItemSelectionRange
+midLength arg'1 arg'2 arg'3 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQItemSelectionRange
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+size arg'1 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (size' arg'1')
+
+startsWith :: (QListQItemSelectionRangeValue arg'1, M22.QItemSelectionRangeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+startsWith arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M22.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQItemSelectionRangeValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M22.QItemSelectionRange
+value arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M22.QItemSelectionRangeConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQItemSelectionRangeValue arg'1, M22.QItemSelectionRangeValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO M22.QItemSelectionRange
+valueOr arg'1 arg'2 arg'3 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M22.withQItemSelectionRangePtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M22.QItemSelectionRangeConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQItemSelectionRangeValue arg'1, QListQItemSelectionRangeValue arg'2) => arg'1 -> 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 arg'1, M22.QItemSelectionRangeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  M22.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQItemSelectionRangePtr arg'1, QListQItemSelectionRangeValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M22.QItemSelectionRange
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M22.QItemSelectionRange
+  (at' arg'1' arg'2')
+
+clear :: (QListQItemSelectionRangePtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQItemSelectionRangePtr arg'1) => arg'1 -> HoppyP.IO M22.QItemSelectionRange
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  HoppyP.fmap M22.QItemSelectionRange
+  (first' arg'1')
+
+insert :: (QListQItemSelectionRangePtr arg'1, M22.QItemSelectionRangeValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M22.withQItemSelectionRangePtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQItemSelectionRangePtr arg'1) => arg'1 -> HoppyP.IO M22.QItemSelectionRange
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  HoppyP.fmap M22.QItemSelectionRange
+  (last' arg'1')
+
+move :: (QListQItemSelectionRangePtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQItemSelectionRangePtr arg'1, M22.QItemSelectionRangeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  M22.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQItemSelectionRangePtr arg'1, M22.QItemSelectionRangeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  M22.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQItemSelectionRangePtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQItemSelectionRangePtr arg'1) => arg'1 -> HoppyP.IO ()
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQItemSelectionRangePtr arg'1) => arg'1 -> HoppyP.IO ()
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQItemSelectionRangePtr arg'1, M22.QItemSelectionRangeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  M22.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQItemSelectionRangePtr arg'1, M22.QItemSelectionRangeValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M22.withQItemSelectionRangePtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQItemSelectionRangePtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQItemSelectionRangePtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQItemSelectionRangePtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M22.QItemSelectionRange
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M22.QItemSelectionRangeConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQItemSelectionRangePtr arg'1) => arg'1 -> HoppyP.IO M22.QItemSelectionRange
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M22.QItemSelectionRangeConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QListQItemSelectionRangePtr arg'1) => arg'1 -> HoppyP.IO M22.QItemSelectionRange
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M22.QItemSelectionRangeConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQItemSelectionRangePtr arg'1, QListQItemSelectionRangeValue arg'2) => arg'1 -> 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 ([M22.QItemSelectionRange]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListQItemSelectionRangeConst ([M22.QItemSelectionRange]) where
+  encode = HoppyP.fmap (toQListQItemSelectionRangeConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListQItemSelectionRange)
+
+instance HoppyFHR.Decodable QListQItemSelectionRange ([M22.QItemSelectionRange]) where
+  decode = HoppyFHR.decode . toQListQItemSelectionRangeConst
+
+instance HoppyFHR.Decodable QListQItemSelectionRangeConst ([M22.QItemSelectionRange]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListQItemSelectionRangeConst (M22.QItemSelectionRange) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListQItemSelectionRange (M22.QItemSelectionRange) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListQItemSelectionRange (M22.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QModelIndex.hs
@@ -0,0 +1,547 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M28
+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 M28.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 M28.QModelIndex)
+foreign import ccall "genpop__QListQModelIndex_atConst" atConst' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M28.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 M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQModelIndex_count" count' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQModelIndex_endsWith" endsWith' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQModelIndex_first" first' ::  HoppyF.Ptr QListQModelIndex -> HoppyP.IO (HoppyF.Ptr M28.QModelIndex)
+foreign import ccall "genpop__QListQModelIndex_firstConst" firstConst' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyP.IO (HoppyF.Ptr M28.QModelIndexConst)
+foreign import ccall "genpop__QListQModelIndex_get" get' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M28.QModelIndexConst)
+foreign import ccall "genpop__QListQModelIndex_indexOf" indexOf' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQModelIndex_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQModelIndex_insert" insert' ::  HoppyF.Ptr QListQModelIndex -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQModelIndex_isEmpty" isEmpty' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQModelIndex_last" last' ::  HoppyF.Ptr QListQModelIndex -> HoppyP.IO (HoppyF.Ptr M28.QModelIndex)
+foreign import ccall "genpop__QListQModelIndex_lastConst" lastConst' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyP.IO (HoppyF.Ptr M28.QModelIndexConst)
+foreign import ccall "genpop__QListQModelIndex_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQModelIndex_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyF.Ptr M28.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 M28.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQModelIndex_removeAll" removeAll' ::  HoppyF.Ptr QListQModelIndex -> HoppyF.Ptr M28.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 M28.QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQModelIndex_replace" replace' ::  HoppyF.Ptr QListQModelIndex -> HoppyFC.CInt -> HoppyF.Ptr M28.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 M28.QModelIndexConst -> HoppyP.IO HoppyFHR.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 M28.QModelIndexConst)
+foreign import ccall "genpop__QListQModelIndex_takeFirst" takeFirst' ::  HoppyF.Ptr QListQModelIndex -> HoppyP.IO (HoppyF.Ptr M28.QModelIndexConst)
+foreign import ccall "genpop__QListQModelIndex_takeLast" takeLast' ::  HoppyF.Ptr QListQModelIndex -> HoppyP.IO (HoppyF.Ptr M28.QModelIndexConst)
+foreign import ccall "genpop__QListQModelIndex_value" value' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M28.QModelIndexConst)
+foreign import ccall "genpop__QListQModelIndex_valueOr" valueOr' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M28.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QListQModelIndexConstPtr a => QListQModelIndexValue a where
+#else
+instance QListQModelIndexConstPtr a => QListQModelIndexValue a where
+#endif
+  withQListQModelIndexPtr = HoppyP.flip ($) . toQListQModelIndexConst
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QListQModelIndexValue ([M28.QModelIndex]) where
+#else
+instance QListQModelIndexValue ([M28.QModelIndex]) where
+#endif
+  withQListQModelIndexPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQModelIndexConstPtr this where
+  toQListQModelIndexConst :: this -> QListQModelIndexConst
+
+atConst :: (QListQModelIndexValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M28.QModelIndexConst
+atConst arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M28.QModelIndexConst
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQModelIndexValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+contains arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (contains' arg'1' arg'2')
+
+count :: (QListQModelIndexValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+count arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQModelIndexValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+endsWith arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQModelIndexValue arg'1) => arg'1 -> HoppyP.IO M28.QModelIndexConst
+firstConst arg'1 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M28.QModelIndexConst
+  (firstConst' arg'1')
+
+get :: (QListQModelIndexValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M28.QModelIndex
+get arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M28.QModelIndexConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQModelIndexValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+indexOf arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQModelIndexValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQModelIndexValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+lastConst :: (QListQModelIndexValue arg'1) => arg'1 -> HoppyP.IO M28.QModelIndexConst
+lastConst arg'1 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M28.QModelIndexConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQModelIndexValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+lastIndexOf arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQModelIndexValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQModelIndexValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QListQModelIndex
+mid arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQModelIndex
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQModelIndexValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QListQModelIndex
+midLength arg'1 arg'2 arg'3 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQModelIndex
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQModelIndexValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+size arg'1 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (size' arg'1')
+
+startsWith :: (QListQModelIndexValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+startsWith arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQModelIndexValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M28.QModelIndex
+value arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M28.QModelIndexConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQModelIndexValue arg'1, M28.QModelIndexValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO M28.QModelIndex
+valueOr arg'1 arg'2 arg'3 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M28.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M28.QModelIndexConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQModelIndexValue arg'1, QListQModelIndexValue arg'2) => arg'1 -> 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 arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQModelIndexPtr arg'1, QListQModelIndexValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M28.QModelIndex
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M28.QModelIndex
+  (at' arg'1' arg'2')
+
+clear :: (QListQModelIndexPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQModelIndexPtr arg'1) => arg'1 -> HoppyP.IO M28.QModelIndex
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  HoppyP.fmap M28.QModelIndex
+  (first' arg'1')
+
+insert :: (QListQModelIndexPtr arg'1, M28.QModelIndexValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M28.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQModelIndexPtr arg'1) => arg'1 -> HoppyP.IO M28.QModelIndex
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  HoppyP.fmap M28.QModelIndex
+  (last' arg'1')
+
+move :: (QListQModelIndexPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQModelIndexPtr arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQModelIndexPtr arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQModelIndexPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQModelIndexPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQModelIndexPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQModelIndexPtr arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQModelIndexPtr arg'1, M28.QModelIndexValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M28.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQModelIndexPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQModelIndexPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQModelIndexPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M28.QModelIndex
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M28.QModelIndexConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQModelIndexPtr arg'1) => arg'1 -> HoppyP.IO M28.QModelIndex
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M28.QModelIndexConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QListQModelIndexPtr arg'1) => arg'1 -> HoppyP.IO M28.QModelIndex
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M28.QModelIndexConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQModelIndexPtr arg'1, QListQModelIndexValue arg'2) => arg'1 -> 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 ([M28.QModelIndex]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListQModelIndexConst ([M28.QModelIndex]) where
+  encode = HoppyP.fmap (toQListQModelIndexConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListQModelIndex)
+
+instance HoppyFHR.Decodable QListQModelIndex ([M28.QModelIndex]) where
+  decode = HoppyFHR.decode . toQListQModelIndexConst
+
+instance HoppyFHR.Decodable QListQModelIndexConst ([M28.QModelIndex]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListQModelIndexConst (M28.QModelIndex) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListQModelIndex (M28.QModelIndex) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListQModelIndex (M28.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,541 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+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 M30.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 M30.QObject))
+foreign import ccall "genpop__QListQObject_atConst" atConst' ::  HoppyF.Ptr QListQObjectConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M30.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 M30.QObject -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQObject_count" count' ::  HoppyF.Ptr QListQObjectConst -> HoppyF.Ptr M30.QObject -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQObject_endsWith" endsWith' ::  HoppyF.Ptr QListQObjectConst -> HoppyF.Ptr M30.QObject -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQObject_first" first' ::  HoppyF.Ptr QListQObject -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M30.QObject))
+foreign import ccall "genpop__QListQObject_firstConst" firstConst' ::  HoppyF.Ptr QListQObjectConst -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M30.QObject))
+foreign import ccall "genpop__QListQObject_get" get' ::  HoppyF.Ptr QListQObjectConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M30.QObject)
+foreign import ccall "genpop__QListQObject_indexOf" indexOf' ::  HoppyF.Ptr QListQObjectConst -> HoppyF.Ptr M30.QObject -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQObject_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQObjectConst -> HoppyF.Ptr M30.QObject -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQObject_insert" insert' ::  HoppyF.Ptr QListQObject -> HoppyFC.CInt -> HoppyF.Ptr M30.QObject -> HoppyP.IO ()
+foreign import ccall "genpop__QListQObject_isEmpty" isEmpty' ::  HoppyF.Ptr QListQObjectConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQObject_last" last' ::  HoppyF.Ptr QListQObject -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M30.QObject))
+foreign import ccall "genpop__QListQObject_lastConst" lastConst' ::  HoppyF.Ptr QListQObjectConst -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M30.QObject))
+foreign import ccall "genpop__QListQObject_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQObjectConst -> HoppyF.Ptr M30.QObject -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQObject_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQObjectConst -> HoppyF.Ptr M30.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 M30.QObject -> HoppyP.IO ()
+foreign import ccall "genpop__QListQObject_removeAll" removeAll' ::  HoppyF.Ptr QListQObject -> HoppyF.Ptr M30.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 M30.QObject -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQObject_replace" replace' ::  HoppyF.Ptr QListQObject -> HoppyFC.CInt -> HoppyF.Ptr M30.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 M30.QObject -> HoppyP.IO HoppyFHR.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 M30.QObject)
+foreign import ccall "genpop__QListQObject_takeFirst" takeFirst' ::  HoppyF.Ptr QListQObject -> HoppyP.IO (HoppyF.Ptr M30.QObject)
+foreign import ccall "genpop__QListQObject_takeLast" takeLast' ::  HoppyF.Ptr QListQObject -> HoppyP.IO (HoppyF.Ptr M30.QObject)
+foreign import ccall "genpop__QListQObject_value" value' ::  HoppyF.Ptr QListQObjectConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M30.QObject)
+foreign import ccall "genpop__QListQObject_valueOr" valueOr' ::  HoppyF.Ptr QListQObjectConst -> HoppyFC.CInt -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QListQObjectConstPtr a => QListQObjectValue a where
+#else
+instance QListQObjectConstPtr a => QListQObjectValue a where
+#endif
+  withQListQObjectPtr = HoppyP.flip ($) . toQListQObjectConst
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QListQObjectValue ([M30.QObject]) where
+#else
+instance QListQObjectValue ([M30.QObject]) where
+#endif
+  withQListQObjectPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQObjectConstPtr this where
+  toQListQObjectConst :: this -> QListQObjectConst
+
+atConst :: (QListQObjectValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M30.QObject))
+atConst arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQObjectValue arg'1, M30.QObjectPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+contains arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (contains' arg'1' arg'2')
+
+count :: (QListQObjectValue arg'1, M30.QObjectPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+count arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQObjectValue arg'1, M30.QObjectPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+endsWith arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQObjectValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M30.QObject))
+firstConst arg'1 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (firstConst' arg'1')
+
+get :: (QListQObjectValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M30.QObject
+get arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M30.QObject
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQObjectValue arg'1, M30.QObjectPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+indexOf arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQObjectValue arg'1, M30.QObjectPtr arg'2) => arg'1 -> 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 (M30.toQObject arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQObjectValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+lastConst :: (QListQObjectValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M30.QObject))
+lastConst arg'1 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQObjectValue arg'1, M30.QObjectPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+lastIndexOf arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQObjectValue arg'1, M30.QObjectPtr arg'2) => arg'1 -> 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 (M30.toQObject arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQObjectValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QListQObject
+mid arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQObject
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQObjectValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QListQObject
+midLength arg'1 arg'2 arg'3 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQObject
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQObjectValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+size arg'1 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (size' arg'1')
+
+startsWith :: (QListQObjectValue arg'1, M30.QObjectPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+startsWith arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQObjectValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M30.QObject
+value arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M30.QObject
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQObjectValue arg'1, M30.QObjectPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO M30.QObject
+valueOr arg'1 arg'2 arg'3 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M30.toQObject arg'3) $ \arg'3' ->
+  HoppyP.fmap M30.QObject
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQObjectValue arg'1, QListQObjectValue arg'2) => arg'1 -> 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 arg'1, M30.QObjectPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQObjectPtr arg'1, QListQObjectValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M30.QObject))
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (at' arg'1' arg'2')
+
+clear :: (QListQObjectPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQObjectPtr arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M30.QObject))
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (first' arg'1')
+
+insert :: (QListQObjectPtr arg'1, M30.QObjectPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M30.toQObject arg'3) $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQObjectPtr arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M30.QObject))
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (last' arg'1')
+
+move :: (QListQObjectPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQObjectPtr arg'1, M30.QObjectPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQObjectPtr arg'1, M30.QObjectPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQObjectPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQObjectPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQObjectPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQObjectPtr arg'1, M30.QObjectPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQObjectPtr arg'1, M30.QObjectPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M30.toQObject arg'3) $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQObjectPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQObjectPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQObjectPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M30.QObject
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M30.QObject
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQObjectPtr arg'1) => arg'1 -> HoppyP.IO M30.QObject
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap M30.QObject
+  (takeFirst' arg'1')
+
+takeLast :: (QListQObjectPtr arg'1) => arg'1 -> HoppyP.IO M30.QObject
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap M30.QObject
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQObjectPtr arg'1, QListQObjectValue arg'2) => arg'1 -> 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 ([M30.QObject]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListQObjectConst ([M30.QObject]) where
+  encode = HoppyP.fmap (toQListQObjectConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListQObject)
+
+instance HoppyFHR.Decodable QListQObject ([M30.QObject]) where
+  decode = HoppyFHR.decode . toQListQObjectConst
+
+instance HoppyFHR.Decodable QListQObjectConst ([M30.QObject]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListQObjectConst (M30.QObject) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListQObject (M30.QObject) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListQObject (M30.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,77 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Prelude as HoppyP
+
+
+class QListQObjectValue a where
+  withQListQObjectPtr :: a -> (QListQObjectConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QListQObjectConstPtr a => QListQObjectValue a
+#else
+instance QListQObjectConstPtr a => QListQObjectValue a
+#endif
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QListQObjectValue ([M30.QObject])
+#else
+instance QListQObjectValue ([M30.QObject])
+#endif
+
+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 (([M30.QObject]))
+instance HoppyFHR.Encodable QListQObjectConst (([M30.QObject]))
+
+instance HoppyFHR.Decodable QListQObject (([M30.QObject]))
+instance HoppyFHR.Decodable QListQObjectConst (([M30.QObject]))
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,547 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M46
+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 M46.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 M46.QString)
+foreign import ccall "genpop__QListQString_atConst" atConst' ::  HoppyF.Ptr QListQStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.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 M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQString_count" count' ::  HoppyF.Ptr QListQStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQString_endsWith" endsWith' ::  HoppyF.Ptr QListQStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQString_first" first' ::  HoppyF.Ptr QListQString -> HoppyP.IO (HoppyF.Ptr M46.QString)
+foreign import ccall "genpop__QListQString_firstConst" firstConst' ::  HoppyF.Ptr QListQStringConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QListQString_get" get' ::  HoppyF.Ptr QListQStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QListQString_indexOf" indexOf' ::  HoppyF.Ptr QListQStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQString_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQString_insert" insert' ::  HoppyF.Ptr QListQString -> HoppyFC.CInt -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQString_isEmpty" isEmpty' ::  HoppyF.Ptr QListQStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQString_last" last' ::  HoppyF.Ptr QListQString -> HoppyP.IO (HoppyF.Ptr M46.QString)
+foreign import ccall "genpop__QListQString_lastConst" lastConst' ::  HoppyF.Ptr QListQStringConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QListQString_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQString_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQStringConst -> HoppyF.Ptr M46.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 M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQString_removeAll" removeAll' ::  HoppyF.Ptr QListQString -> HoppyF.Ptr M46.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 M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQString_replace" replace' ::  HoppyF.Ptr QListQString -> HoppyFC.CInt -> HoppyF.Ptr M46.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 M46.QStringConst -> HoppyP.IO HoppyFHR.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 M46.QStringConst)
+foreign import ccall "genpop__QListQString_takeFirst" takeFirst' ::  HoppyF.Ptr QListQString -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QListQString_takeLast" takeLast' ::  HoppyF.Ptr QListQString -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QListQString_value" value' ::  HoppyF.Ptr QListQStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QListQString_valueOr" valueOr' ::  HoppyF.Ptr QListQStringConst -> HoppyFC.CInt -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M46.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QListQStringConstPtr a => QListQStringValue a where
+#else
+instance QListQStringConstPtr a => QListQStringValue a where
+#endif
+  withQListQStringPtr = HoppyP.flip ($) . toQListQStringConst
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QListQStringValue ([QtahP.String]) where
+#else
+instance QListQStringValue ([QtahP.String]) where
+#endif
+  withQListQStringPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQStringConstPtr this where
+  toQListQStringConst :: this -> QListQStringConst
+
+atConst :: (QListQStringValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M46.QStringConst
+atConst arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M46.QStringConst
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQStringValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+contains arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (contains' arg'1' arg'2')
+
+count :: (QListQStringValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+count arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQStringValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+endsWith arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQStringValue arg'1) => arg'1 -> HoppyP.IO M46.QStringConst
+firstConst arg'1 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M46.QStringConst
+  (firstConst' arg'1')
+
+get :: (QListQStringValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QtahP.String
+get arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQStringValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+indexOf arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQStringValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQStringValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+lastConst :: (QListQStringValue arg'1) => arg'1 -> HoppyP.IO M46.QStringConst
+lastConst arg'1 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M46.QStringConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQStringValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+lastIndexOf arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQStringValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQStringValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QListQString
+mid arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQString
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQStringValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QListQString
+midLength arg'1 arg'2 arg'3 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQString
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQStringValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+size arg'1 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (size' arg'1')
+
+startsWith :: (QListQStringValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+startsWith arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQStringValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QtahP.String
+value arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQStringValue arg'1, M46.QStringValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO QtahP.String
+valueOr arg'1 arg'2 arg'3 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQStringValue arg'1, QListQStringValue arg'2) => arg'1 -> 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 arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQStringPtr arg'1, QListQStringValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M46.QString
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M46.QString
+  (at' arg'1' arg'2')
+
+clear :: (QListQStringPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQStringPtr arg'1) => arg'1 -> HoppyP.IO M46.QString
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  HoppyP.fmap M46.QString
+  (first' arg'1')
+
+insert :: (QListQStringPtr arg'1, M46.QStringValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQStringPtr arg'1) => arg'1 -> HoppyP.IO M46.QString
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  HoppyP.fmap M46.QString
+  (last' arg'1')
+
+move :: (QListQStringPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQStringPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQStringPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQStringPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQStringPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQStringPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQStringPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQStringPtr arg'1, M46.QStringValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQStringPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQStringPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQStringPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QtahP.String
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQStringPtr arg'1) => arg'1 -> HoppyP.IO QtahP.String
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QListQStringPtr arg'1) => arg'1 -> HoppyP.IO QtahP.String
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQStringPtr arg'1, QListQStringValue arg'2) => arg'1 -> 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/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,547 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M56
+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 M56.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 M56.QVariant)
+foreign import ccall "genpop__QListQVariant_atConst" atConst' ::  HoppyF.Ptr QListQVariantConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M56.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 M56.QVariantConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQVariant_count" count' ::  HoppyF.Ptr QListQVariantConst -> HoppyF.Ptr M56.QVariantConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQVariant_endsWith" endsWith' ::  HoppyF.Ptr QListQVariantConst -> HoppyF.Ptr M56.QVariantConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQVariant_first" first' ::  HoppyF.Ptr QListQVariant -> HoppyP.IO (HoppyF.Ptr M56.QVariant)
+foreign import ccall "genpop__QListQVariant_firstConst" firstConst' ::  HoppyF.Ptr QListQVariantConst -> HoppyP.IO (HoppyF.Ptr M56.QVariantConst)
+foreign import ccall "genpop__QListQVariant_get" get' ::  HoppyF.Ptr QListQVariantConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M56.QVariantConst)
+foreign import ccall "genpop__QListQVariant_indexOf" indexOf' ::  HoppyF.Ptr QListQVariantConst -> HoppyF.Ptr M56.QVariantConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQVariant_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQVariantConst -> HoppyF.Ptr M56.QVariantConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQVariant_insert" insert' ::  HoppyF.Ptr QListQVariant -> HoppyFC.CInt -> HoppyF.Ptr M56.QVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQVariant_isEmpty" isEmpty' ::  HoppyF.Ptr QListQVariantConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQVariant_last" last' ::  HoppyF.Ptr QListQVariant -> HoppyP.IO (HoppyF.Ptr M56.QVariant)
+foreign import ccall "genpop__QListQVariant_lastConst" lastConst' ::  HoppyF.Ptr QListQVariantConst -> HoppyP.IO (HoppyF.Ptr M56.QVariantConst)
+foreign import ccall "genpop__QListQVariant_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQVariantConst -> HoppyF.Ptr M56.QVariantConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQVariant_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQVariantConst -> HoppyF.Ptr M56.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 M56.QVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQVariant_removeAll" removeAll' ::  HoppyF.Ptr QListQVariant -> HoppyF.Ptr M56.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 M56.QVariantConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQVariant_replace" replace' ::  HoppyF.Ptr QListQVariant -> HoppyFC.CInt -> HoppyF.Ptr M56.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 M56.QVariantConst -> HoppyP.IO HoppyFHR.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 M56.QVariantConst)
+foreign import ccall "genpop__QListQVariant_takeFirst" takeFirst' ::  HoppyF.Ptr QListQVariant -> HoppyP.IO (HoppyF.Ptr M56.QVariantConst)
+foreign import ccall "genpop__QListQVariant_takeLast" takeLast' ::  HoppyF.Ptr QListQVariant -> HoppyP.IO (HoppyF.Ptr M56.QVariantConst)
+foreign import ccall "genpop__QListQVariant_value" value' ::  HoppyF.Ptr QListQVariantConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M56.QVariantConst)
+foreign import ccall "genpop__QListQVariant_valueOr" valueOr' ::  HoppyF.Ptr QListQVariantConst -> HoppyFC.CInt -> HoppyF.Ptr M56.QVariantConst -> HoppyP.IO (HoppyF.Ptr M56.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QListQVariantConstPtr a => QListQVariantValue a where
+#else
+instance QListQVariantConstPtr a => QListQVariantValue a where
+#endif
+  withQListQVariantPtr = HoppyP.flip ($) . toQListQVariantConst
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QListQVariantValue ([M56.QVariant]) where
+#else
+instance QListQVariantValue ([M56.QVariant]) where
+#endif
+  withQListQVariantPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQVariantConstPtr this where
+  toQListQVariantConst :: this -> QListQVariantConst
+
+atConst :: (QListQVariantValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M56.QVariantConst
+atConst arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M56.QVariantConst
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQVariantValue arg'1, M56.QVariantValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+contains arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M56.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (contains' arg'1' arg'2')
+
+count :: (QListQVariantValue arg'1, M56.QVariantValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+count arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M56.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQVariantValue arg'1, M56.QVariantValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+endsWith arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M56.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQVariantValue arg'1) => arg'1 -> HoppyP.IO M56.QVariantConst
+firstConst arg'1 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M56.QVariantConst
+  (firstConst' arg'1')
+
+get :: (QListQVariantValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M56.QVariant
+get arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M56.QVariantConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQVariantValue arg'1, M56.QVariantValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+indexOf arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M56.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQVariantValue arg'1, M56.QVariantValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M56.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQVariantValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+lastConst :: (QListQVariantValue arg'1) => arg'1 -> HoppyP.IO M56.QVariantConst
+lastConst arg'1 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M56.QVariantConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQVariantValue arg'1, M56.QVariantValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+lastIndexOf arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M56.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQVariantValue arg'1, M56.QVariantValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M56.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQVariantValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QListQVariant
+mid arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQVariant
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQVariantValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QListQVariant
+midLength arg'1 arg'2 arg'3 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQVariant
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQVariantValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+size arg'1 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (size' arg'1')
+
+startsWith :: (QListQVariantValue arg'1, M56.QVariantValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+startsWith arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M56.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQVariantValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M56.QVariant
+value arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M56.QVariantConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQVariantValue arg'1, M56.QVariantValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO M56.QVariant
+valueOr arg'1 arg'2 arg'3 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M56.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M56.QVariantConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQVariantValue arg'1, QListQVariantValue arg'2) => arg'1 -> 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 arg'1, M56.QVariantValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  M56.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQVariantPtr arg'1, QListQVariantValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M56.QVariant
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M56.QVariant
+  (at' arg'1' arg'2')
+
+clear :: (QListQVariantPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQVariantPtr arg'1) => arg'1 -> HoppyP.IO M56.QVariant
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  HoppyP.fmap M56.QVariant
+  (first' arg'1')
+
+insert :: (QListQVariantPtr arg'1, M56.QVariantValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M56.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQVariantPtr arg'1) => arg'1 -> HoppyP.IO M56.QVariant
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  HoppyP.fmap M56.QVariant
+  (last' arg'1')
+
+move :: (QListQVariantPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQVariantPtr arg'1, M56.QVariantValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  M56.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQVariantPtr arg'1, M56.QVariantValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  M56.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQVariantPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQVariantPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQVariantPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQVariantPtr arg'1, M56.QVariantValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  M56.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQVariantPtr arg'1, M56.QVariantValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M56.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQVariantPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQVariantPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQVariantPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M56.QVariant
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M56.QVariantConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQVariantPtr arg'1) => arg'1 -> HoppyP.IO M56.QVariant
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M56.QVariantConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QListQVariantPtr arg'1) => arg'1 -> HoppyP.IO M56.QVariant
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M56.QVariantConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQVariantPtr arg'1, QListQVariantValue arg'2) => arg'1 -> 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 ([M56.QVariant]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListQVariantConst ([M56.QVariant]) where
+  encode = HoppyP.fmap (toQListQVariantConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListQVariant)
+
+instance HoppyFHR.Decodable QListQVariant ([M56.QVariant]) where
+  decode = HoppyFHR.decode . toQListQVariantConst
+
+instance HoppyFHR.Decodable QListQVariantConst ([M56.QVariant]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListQVariantConst (M56.QVariant) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListQVariant (M56.QVariant) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListQVariant (M56.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,77 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M56
+import qualified Prelude as HoppyP
+
+
+class QListQVariantValue a where
+  withQListQVariantPtr :: a -> (QListQVariantConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QListQVariantConstPtr a => QListQVariantValue a
+#else
+instance QListQVariantConstPtr a => QListQVariantValue a
+#endif
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QListQVariantValue ([M56.QVariant])
+#else
+instance QListQVariantValue ([M56.QVariant])
+#endif
+
+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 (([M56.QVariant]))
+instance HoppyFHR.Encodable QListQVariantConst (([M56.QVariant]))
+
+instance HoppyFHR.Decodable QListQVariant (([M56.QVariant]))
+instance HoppyFHR.Decodable QListQVariantConst (([M56.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,541 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M280
+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 M280.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 M280.QWidget))
+foreign import ccall "genpop__QListQWidget_atConst" atConst' ::  HoppyF.Ptr QListQWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M280.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 M280.QWidget -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQWidget_count" count' ::  HoppyF.Ptr QListQWidgetConst -> HoppyF.Ptr M280.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQWidget_endsWith" endsWith' ::  HoppyF.Ptr QListQWidgetConst -> HoppyF.Ptr M280.QWidget -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQWidget_first" first' ::  HoppyF.Ptr QListQWidget -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M280.QWidget))
+foreign import ccall "genpop__QListQWidget_firstConst" firstConst' ::  HoppyF.Ptr QListQWidgetConst -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M280.QWidget))
+foreign import ccall "genpop__QListQWidget_get" get' ::  HoppyF.Ptr QListQWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "genpop__QListQWidget_indexOf" indexOf' ::  HoppyF.Ptr QListQWidgetConst -> HoppyF.Ptr M280.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQWidget_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQWidgetConst -> HoppyF.Ptr M280.QWidget -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQWidget_insert" insert' ::  HoppyF.Ptr QListQWidget -> HoppyFC.CInt -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QListQWidget_isEmpty" isEmpty' ::  HoppyF.Ptr QListQWidgetConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQWidget_last" last' ::  HoppyF.Ptr QListQWidget -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M280.QWidget))
+foreign import ccall "genpop__QListQWidget_lastConst" lastConst' ::  HoppyF.Ptr QListQWidgetConst -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M280.QWidget))
+foreign import ccall "genpop__QListQWidget_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQWidgetConst -> HoppyF.Ptr M280.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQWidget_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQWidgetConst -> HoppyF.Ptr M280.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 M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QListQWidget_removeAll" removeAll' ::  HoppyF.Ptr QListQWidget -> HoppyF.Ptr M280.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 M280.QWidget -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QListQWidget_replace" replace' ::  HoppyF.Ptr QListQWidget -> HoppyFC.CInt -> HoppyF.Ptr M280.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 M280.QWidget -> HoppyP.IO HoppyFHR.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 M280.QWidget)
+foreign import ccall "genpop__QListQWidget_takeFirst" takeFirst' ::  HoppyF.Ptr QListQWidget -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "genpop__QListQWidget_takeLast" takeLast' ::  HoppyF.Ptr QListQWidget -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "genpop__QListQWidget_value" value' ::  HoppyF.Ptr QListQWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "genpop__QListQWidget_valueOr" valueOr' ::  HoppyF.Ptr QListQWidgetConst -> HoppyFC.CInt -> HoppyF.Ptr M280.QWidget -> HoppyP.IO (HoppyF.Ptr M280.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QListQWidgetConstPtr a => QListQWidgetValue a where
+#else
+instance QListQWidgetConstPtr a => QListQWidgetValue a where
+#endif
+  withQListQWidgetPtr = HoppyP.flip ($) . toQListQWidgetConst
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QListQWidgetValue ([M280.QWidget]) where
+#else
+instance QListQWidgetValue ([M280.QWidget]) where
+#endif
+  withQListQWidgetPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQWidgetConstPtr this where
+  toQListQWidgetConst :: this -> QListQWidgetConst
+
+atConst :: (QListQWidgetValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M280.QWidget))
+atConst arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQWidgetValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+contains arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (contains' arg'1' arg'2')
+
+count :: (QListQWidgetValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+count arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQWidgetValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+endsWith arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQWidgetValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M280.QWidget))
+firstConst arg'1 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (firstConst' arg'1')
+
+get :: (QListQWidgetValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M280.QWidget
+get arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M280.QWidget
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQWidgetValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+indexOf arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQWidgetValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> 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 (M280.toQWidget arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+lastConst :: (QListQWidgetValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M280.QWidget))
+lastConst arg'1 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQWidgetValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+lastIndexOf arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQWidgetValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> 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 (M280.toQWidget arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQWidgetValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QListQWidget
+mid arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQWidget
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQWidgetValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QListQWidget
+midLength arg'1 arg'2 arg'3 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQWidget
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+size arg'1 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (size' arg'1')
+
+startsWith :: (QListQWidgetValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+startsWith arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQWidgetValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M280.QWidget
+value arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M280.QWidget
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQWidgetValue arg'1, M280.QWidgetPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO M280.QWidget
+valueOr arg'1 arg'2 arg'3 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  HoppyP.fmap M280.QWidget
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQWidgetValue arg'1, QListQWidgetValue arg'2) => arg'1 -> 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 arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQWidgetPtr arg'1, QListQWidgetValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M280.QWidget))
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (at' arg'1' arg'2')
+
+clear :: (QListQWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQWidgetPtr arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M280.QWidget))
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (first' arg'1')
+
+insert :: (QListQWidgetPtr arg'1, M280.QWidgetPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQWidgetPtr arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M280.QWidget))
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (last' arg'1')
+
+move :: (QListQWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQWidgetPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQWidgetPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQWidgetPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQWidgetPtr arg'1, M280.QWidgetPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M280.QWidget
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M280.QWidget
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQWidgetPtr arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (takeFirst' arg'1')
+
+takeLast :: (QListQWidgetPtr arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQWidgetPtr arg'1, QListQWidgetValue arg'2) => arg'1 -> 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 ([M280.QWidget]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListQWidgetConst ([M280.QWidget]) where
+  encode = HoppyP.fmap (toQListQWidgetConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListQWidget)
+
+instance HoppyFHR.Decodable QListQWidget ([M280.QWidget]) where
+  decode = HoppyFHR.decode . toQListQWidgetConst
+
+instance HoppyFHR.Decodable QListQWidgetConst ([M280.QWidget]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListQWidgetConst (M280.QWidget) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListQWidget (M280.QWidget) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListQWidget (M280.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/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,362 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QMargins_NE" nE' ::  HoppyF.Ptr QMarginsConst -> HoppyF.Ptr QMarginsConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QMarginsConstPtr a => QMarginsValue a where
+#else
+instance QMarginsConstPtr a => QMarginsValue a where
+#endif
+  withQMarginsPtr = HoppyP.flip ($) . toQMarginsConst
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QMarginsValue (HMargins.HMargins) where
+#else
+instance QMarginsValue (HMargins.HMargins) where
+#endif
+  withQMarginsPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QMarginsConstPtr this where
+  toQMarginsConst :: this -> QMarginsConst
+
+bottom :: (QMarginsValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+bottom arg'1 =
+  withQMarginsPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (bottom' arg'1')
+
+isNull :: (QMarginsValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isNull arg'1 =
+  withQMarginsPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isNull' arg'1')
+
+left :: (QMarginsValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+left arg'1 =
+  withQMarginsPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (left' arg'1')
+
+right :: (QMarginsValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+right arg'1 =
+  withQMarginsPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (right' arg'1')
+
+top :: (QMarginsValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+top arg'1 =
+  withQMarginsPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (top' arg'1')
+
+eQ :: (QMarginsValue arg'1, QMarginsValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QMarginsValue arg'1, QMarginsValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QMarginsConstPtr this) => QMarginsPtr this where
+  toQMargins :: this -> QMargins
+
+setBottom :: (QMarginsPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setBottom arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setBottom' arg'1' arg'2')
+
+setLeft :: (QMarginsPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setLeft' arg'1' arg'2')
+
+setRight :: (QMarginsPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setRight' arg'1' arg'2')
+
+setTop :: (QMarginsPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setTop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setTop' arg'1' arg'2')
+
+aDDA :: (QMarginsPtr arg'1, QMarginsValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QMargins
+aDDAInt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap QMargins
+  (aDDAInt' arg'1' arg'2')
+
+sUBA :: (QMarginsPtr arg'1, QMarginsValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QMargins
+sUBAInt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap QMargins
+  (sUBAInt' arg'1' arg'2')
+
+mULA :: (QMarginsPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QMargins
+mULA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap QMargins
+  (mULA' arg'1' arg'2')
+
+mULAReal :: (QMarginsPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO QMargins
+mULAReal arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  HoppyP.fmap QMargins
+  (mULAReal' arg'1' arg'2')
+
+dIVA :: (QMarginsPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QMargins
+dIVA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap QMargins
+  (dIVA' arg'1' arg'2')
+
+dIVAReal :: (QMarginsPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO QMargins
+dIVAReal arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  HoppyP.fmap QMargins
+  (dIVAReal' arg'1' arg'2')
+
+aSSIGN :: (QMarginsPtr arg'1, QMarginsValue arg'2) => arg'1 -> 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 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  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,330 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M24
+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 M24.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 HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QMarginsF_NE" nE' ::  HoppyF.Ptr QMarginsFConst -> HoppyF.Ptr QMarginsFConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QMarginsFConstPtr a => QMarginsFValue a where
+#else
+instance QMarginsFConstPtr a => QMarginsFValue a where
+#endif
+  withQMarginsFPtr = HoppyP.flip ($) . toQMarginsFConst
+
+class (HoppyFHR.CppPtr this) => QMarginsFConstPtr this where
+  toQMarginsFConst :: this -> QMarginsFConst
+
+bottom :: (QMarginsFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+bottom arg'1 =
+  withQMarginsFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (bottom' arg'1')
+
+isNull :: (QMarginsFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isNull arg'1 =
+  withQMarginsFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isNull' arg'1')
+
+left :: (QMarginsFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+left arg'1 =
+  withQMarginsFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (left' arg'1')
+
+right :: (QMarginsFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+right arg'1 =
+  withQMarginsFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (right' arg'1')
+
+top :: (QMarginsFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+top arg'1 =
+  withQMarginsFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (top' arg'1')
+
+eQ :: (QMarginsFValue arg'1, QMarginsFValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QMarginsFValue arg'1, QMarginsFValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QMarginsFConstPtr this) => QMarginsFPtr this where
+  toQMarginsF :: this -> QMarginsF
+
+setBottom :: (QMarginsFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setBottom arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setBottom' arg'1' arg'2')
+
+setLeft :: (QMarginsFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setLeft' arg'1' arg'2')
+
+setRight :: (QMarginsFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setRight' arg'1' arg'2')
+
+setTop :: (QMarginsFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setTop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setTop' arg'1' arg'2')
+
+aDDA :: (QMarginsFPtr arg'1, QMarginsFValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO QMarginsF
+aDDAReal arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  HoppyP.fmap QMarginsF
+  (aDDAReal' arg'1' arg'2')
+
+sUBA :: (QMarginsFPtr arg'1, QMarginsFValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO QMarginsF
+sUBAReal arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  HoppyP.fmap QMarginsF
+  (sUBAReal' arg'1' arg'2')
+
+mULA :: (QMarginsFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO QMarginsF
+mULA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  HoppyP.fmap QMarginsF
+  (mULA' arg'1' arg'2')
+
+dIVA :: (QMarginsFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO QMarginsF
+dIVA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  HoppyP.fmap QMarginsF
+  (dIVA' arg'1' arg'2')
+
+aSSIGN :: (QMarginsFPtr arg'1, QMarginsFValue arg'2) => arg'1 -> 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 =
+  let arg'1' = HoppyP.realToFrac arg'1 in
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  HoppyP.fmap QMarginsF
+  (new' arg'1' arg'2' arg'3' arg'4')
+
+newWithMargins :: (M24.QMarginsValue arg'1) => arg'1 -> HoppyP.IO QMarginsF
+newWithMargins arg'1 =
+  M24.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/QModelIndex.hs b/src/Graphics/UI/Qtah/Generated/Core/QModelIndex.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QModelIndex.hs
@@ -0,0 +1,280 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M2
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M56
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import Prelude (($), (.), (/=), (=<<), (==), (>>))
+import qualified Prelude as HoppyP
+
+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 M56.QVariantConst)
+foreign import ccall "genpop__QModelIndex_getDataWithRole" getDataWithRole' ::  HoppyF.Ptr QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M56.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 HoppyFHR.CBool
+foreign import ccall "genpop__QModelIndex_model" model' ::  HoppyF.Ptr QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M2.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 HoppyFHR.CBool
+foreign import ccall "genpop__QModelIndex_NE" nE' ::  HoppyF.Ptr QModelIndexConst -> HoppyF.Ptr QModelIndexConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QModelIndexConstPtr a => QModelIndexValue a where
+#else
+instance QModelIndexConstPtr a => QModelIndexValue a where
+#endif
+  withQModelIndexPtr = HoppyP.flip ($) . toQModelIndexConst
+
+class (HoppyFHR.CppPtr this) => QModelIndexConstPtr this where
+  toQModelIndexConst :: this -> QModelIndexConst
+
+child :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QModelIndex
+child arg'1 arg'2 arg'3 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (HoppyFHR.decodeAndDelete . QModelIndexConst) =<<
+  (child' arg'1' arg'2' arg'3')
+
+column :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+column arg'1 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (column' arg'1')
+
+getData :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.IO M56.QVariant
+getData arg'1 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M56.QVariantConst) =<<
+  (getData' arg'1')
+
+getDataWithRole :: (QModelIndexValue arg'1) => arg'1 -> M58.QtItemDataRole -> HoppyP.IO M56.QVariant
+getDataWithRole arg'1 arg'2 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (HoppyFHR.decodeAndDelete . M56.QVariantConst) =<<
+  (getDataWithRole' arg'1' arg'2')
+
+flags :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.IO M58.QtItemFlags
+flags arg'1 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtItemFlags
+  (flags' arg'1')
+
+isValid :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isValid arg'1 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isValid' arg'1')
+
+model :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.IO M2.QAbstractItemModelConst
+model arg'1 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M2.QAbstractItemModelConst
+  (model' arg'1')
+
+parent :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.IO QModelIndex
+parent arg'1 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QModelIndexConst) =<<
+  (parent' arg'1')
+
+row :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+row arg'1 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (row' arg'1')
+
+sibling :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QModelIndex
+sibling arg'1 arg'2 arg'3 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (HoppyFHR.decodeAndDelete . QModelIndexConst) =<<
+  (sibling' arg'1' arg'2' arg'3')
+
+eQ :: (QModelIndexValue arg'1, QModelIndexValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QModelIndexValue arg'1, QModelIndexValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QModelIndexConstPtr this) => QModelIndexPtr this where
+  toQModelIndex :: this -> QModelIndex
+
+aSSIGN :: (QModelIndexPtr arg'1, QModelIndexValue arg'2) => arg'1 -> 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,67 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QModelIndexConstPtr a => QModelIndexValue a
+#else
+instance QModelIndexConstPtr a => QModelIndexValue a
+#endif
+
+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,300 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QObject (
+  QObjectValue (..),
+  QObjectConstPtr (..),
+  isWidgetType,
+  isWindowType,
+  objectName,
+  parent,
+  signalsBlocked,
+  QObjectPtr (..),
+  blockSignals,
+  children,
+  deleteLater,
+  dumpObjectInfo,
+  dumpObjectTree,
+  event,
+  eventFilter,
+  installEventFilter,
+  killTimer,
+  setObjectName,
+  setParent,
+  removeEventFilter,
+  startTimer,
+  QObjectConst (..),
+  castQObjectToConst,
+  QObject (..),
+  castQObjectToNonconst,
+  new,
+  newWithParent,
+  QObjectSuper (..),
+  QObjectSuperConst (..),
+  ) 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 M16
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QList.QObject as M68
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+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 -> HoppyFHR.CBool -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QObject_children" children' ::  HoppyF.Ptr QObject -> HoppyP.IO (HoppyF.Ptr M68.QListQObjectConst)
+foreign import ccall "genpop__QObject_deleteLater" deleteLater' ::  HoppyF.Ptr QObject -> HoppyP.IO ()
+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_event" event' ::  HoppyF.Ptr QObject -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QObject_eventFilter" eventFilter' ::  HoppyF.Ptr QObject -> HoppyF.Ptr QObject -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QObject_isWindowType" isWindowType' ::  HoppyF.Ptr QObjectConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QObject_killTimer" killTimer' ::  HoppyF.Ptr QObject -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QObject_objectName" objectName' ::  HoppyF.Ptr QObjectConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QObject_setObjectName" setObjectName' ::  HoppyF.Ptr QObject -> HoppyF.Ptr M46.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_removeEventFilter" removeEventFilter' ::  HoppyF.Ptr QObject -> HoppyF.Ptr QObject -> HoppyP.IO ()
+foreign import ccall "genpop__QObject_signalsBlocked" signalsBlocked' ::  HoppyF.Ptr QObjectConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QObject_startTimer" startTimer' ::  HoppyF.Ptr QObject -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QObjectConstPtr a => QObjectValue a where
+#else
+instance QObjectConstPtr a => QObjectValue a where
+#endif
+  withQObjectPtr = HoppyP.flip ($) . toQObjectConst
+
+class (HoppyFHR.CppPtr this) => QObjectConstPtr this where
+  toQObjectConst :: this -> QObjectConst
+
+isWidgetType :: (QObjectValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isWidgetType arg'1 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isWidgetType' arg'1')
+
+isWindowType :: (QObjectValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isWindowType arg'1 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isWindowType' arg'1')
+
+objectName :: (QObjectValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+objectName arg'1 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (objectName' arg'1')
+
+parent :: (QObjectValue arg'1) => arg'1 -> HoppyP.IO QObject
+parent arg'1 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QObject
+  (parent' arg'1')
+
+signalsBlocked :: (QObjectValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+signalsBlocked arg'1 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (signalsBlocked' arg'1')
+
+class (QObjectConstPtr this) => QObjectPtr this where
+  toQObject :: this -> QObject
+
+blockSignals :: (QObjectPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO HoppyP.Bool
+blockSignals arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  HoppyP.fmap (/= 0)
+  (blockSignals' arg'1' arg'2')
+
+children :: (QObjectPtr arg'1) => arg'1 -> HoppyP.IO [QObject]
+children arg'1 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M68.QListQObjectConst) =<<
+  (children' arg'1')
+
+deleteLater :: (QObjectPtr arg'1) => arg'1 -> HoppyP.IO ()
+deleteLater arg'1 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  (deleteLater' arg'1')
+
+dumpObjectInfo :: (QObjectPtr arg'1) => arg'1 -> HoppyP.IO ()
+dumpObjectInfo arg'1 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  (dumpObjectInfo' arg'1')
+
+dumpObjectTree :: (QObjectPtr arg'1) => arg'1 -> HoppyP.IO ()
+dumpObjectTree arg'1 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  (dumpObjectTree' arg'1')
+
+event :: (QObjectPtr arg'1, M16.QEventPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+event arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M16.toQEvent arg'2) $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (event' arg'1' arg'2')
+
+eventFilter :: (QObjectPtr arg'1, QObjectPtr arg'2, M16.QEventPtr arg'3) => arg'1 -> arg'2 -> arg'3 -> 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 (M16.toQEvent arg'3) $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (eventFilter' arg'1' arg'2' arg'3')
+
+installEventFilter :: (QObjectPtr arg'1, QObjectPtr arg'2) => arg'1 -> arg'2 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+killTimer arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (killTimer' arg'1' arg'2')
+
+setObjectName :: (QObjectPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setObjectName arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setObjectName' arg'1' arg'2')
+
+setParent :: (QObjectPtr arg'1, QObjectPtr arg'2) => arg'1 -> 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 arg'1, QObjectPtr arg'2) => arg'1 -> arg'2 -> 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')
+
+startTimer :: (QObjectPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+startTimer arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (startTimer' arg'1' arg'2')
+
+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 arg'1) => arg'1 -> 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,62 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QObjectConstPtr a => QObjectValue a
+#else
+instance QObjectConstPtr a => QObjectValue a
+#endif
+
+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/QPersistentModelIndex.hs b/src/Graphics/UI/Qtah/Generated/Core/QPersistentModelIndex.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QPersistentModelIndex.hs
@@ -0,0 +1,297 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Generated.Core.QAbstractItemModel as M2
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M28
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M56
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import Prelude (($), (.), (/=), (=<<), (==), (>>))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QPersistentModelIndex_new" new' ::  HoppyP.IO (HoppyF.Ptr QPersistentModelIndex)
+foreign import ccall "genpop__QPersistentModelIndex_newFromIndex" newFromIndex' ::  HoppyF.Ptr M28.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 M56.QVariantConst)
+foreign import ccall "genpop__QPersistentModelIndex_getDataWithRole" getDataWithRole' ::  HoppyF.Ptr QPersistentModelIndexConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M56.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 HoppyFHR.CBool
+foreign import ccall "genpop__QPersistentModelIndex_model" model' ::  HoppyF.Ptr QPersistentModelIndexConst -> HoppyP.IO (HoppyF.Ptr M2.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 HoppyFHR.CBool
+foreign import ccall "genpop__QPersistentModelIndex_NE" nE' ::  HoppyF.Ptr QPersistentModelIndexConst -> HoppyF.Ptr QPersistentModelIndexConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QPersistentModelIndexConstPtr a => QPersistentModelIndexValue a where
+#else
+instance QPersistentModelIndexConstPtr a => QPersistentModelIndexValue a where
+#endif
+  withQPersistentModelIndexPtr = HoppyP.flip ($) . toQPersistentModelIndexConst
+
+class (HoppyFHR.CppPtr this) => QPersistentModelIndexConstPtr this where
+  toQPersistentModelIndexConst :: this -> QPersistentModelIndexConst
+
+child :: (QPersistentModelIndexValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QPersistentModelIndex
+child arg'1 arg'2 arg'3 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (HoppyFHR.decodeAndDelete . QPersistentModelIndexConst) =<<
+  (child' arg'1' arg'2' arg'3')
+
+column :: (QPersistentModelIndexValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+column arg'1 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (column' arg'1')
+
+getData :: (QPersistentModelIndexValue arg'1) => arg'1 -> HoppyP.IO M56.QVariant
+getData arg'1 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M56.QVariantConst) =<<
+  (getData' arg'1')
+
+getDataWithRole :: (QPersistentModelIndexValue arg'1) => arg'1 -> M58.QtItemDataRole -> HoppyP.IO M56.QVariant
+getDataWithRole arg'1 arg'2 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (HoppyFHR.decodeAndDelete . M56.QVariantConst) =<<
+  (getDataWithRole' arg'1' arg'2')
+
+flags :: (QPersistentModelIndexValue arg'1) => arg'1 -> HoppyP.IO M58.QtItemFlags
+flags arg'1 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtItemFlags
+  (flags' arg'1')
+
+isValid :: (QPersistentModelIndexValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isValid arg'1 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isValid' arg'1')
+
+model :: (QPersistentModelIndexValue arg'1) => arg'1 -> HoppyP.IO M2.QAbstractItemModelConst
+model arg'1 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M2.QAbstractItemModelConst
+  (model' arg'1')
+
+parent :: (QPersistentModelIndexValue arg'1) => arg'1 -> HoppyP.IO QPersistentModelIndex
+parent arg'1 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QPersistentModelIndexConst) =<<
+  (parent' arg'1')
+
+row :: (QPersistentModelIndexValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+row arg'1 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (row' arg'1')
+
+sibling :: (QPersistentModelIndexValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QPersistentModelIndex
+sibling arg'1 arg'2 arg'3 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (HoppyFHR.decodeAndDelete . QPersistentModelIndexConst) =<<
+  (sibling' arg'1' arg'2' arg'3')
+
+eQ :: (QPersistentModelIndexValue arg'1, QPersistentModelIndexValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QPersistentModelIndexValue arg'1, QPersistentModelIndexValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QPersistentModelIndexConstPtr this) => QPersistentModelIndexPtr this where
+  toQPersistentModelIndex :: this -> QPersistentModelIndex
+
+swap :: (QPersistentModelIndexPtr arg'1, QPersistentModelIndexPtr arg'2) => arg'1 -> 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 arg'1, QPersistentModelIndexValue arg'2) => arg'1 -> 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 :: (M28.QModelIndexValue arg'1) => arg'1 -> HoppyP.IO QPersistentModelIndex
+newFromIndex arg'1 =
+  M28.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/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,318 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QPoint_NE" nE' ::  HoppyF.Ptr QPointConst -> HoppyF.Ptr QPointConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QPointConstPtr a => QPointValue a where
+#else
+instance QPointConstPtr a => QPointValue a where
+#endif
+  withQPointPtr = HoppyP.flip ($) . toQPointConst
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QPointValue (HPoint.HPoint) where
+#else
+instance QPointValue (HPoint.HPoint) where
+#endif
+  withQPointPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QPointConstPtr this where
+  toQPointConst :: this -> QPointConst
+
+isNull :: (QPointValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isNull arg'1 =
+  withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isNull' arg'1')
+
+manhattanLength :: (QPointValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+manhattanLength arg'1 =
+  withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (manhattanLength' arg'1')
+
+x :: (QPointValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+x arg'1 =
+  withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (x' arg'1')
+
+y :: (QPointValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+y arg'1 =
+  withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (y' arg'1')
+
+eQ :: (QPointValue arg'1, QPointValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QPointValue arg'1, QPointValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QPointConstPtr this) => QPointPtr this where
+  toQPoint :: this -> QPoint
+
+setX :: (QPointPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setX arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPoint arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setX' arg'1' arg'2')
+
+setY :: (QPointPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setY arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPoint arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setY' arg'1' arg'2')
+
+aDDA :: (QPointPtr arg'1, QPointValue arg'2) => arg'1 -> 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 arg'1, QPointValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QPoint
+mULA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPoint arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap QPoint
+  (mULA' arg'1' arg'2')
+
+mULAReal :: (QPointPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO QPoint
+mULAReal arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPoint arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  HoppyP.fmap QPoint
+  (mULAReal' arg'1' arg'2')
+
+dIVA :: (QPointPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO QPoint
+dIVA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPoint arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  HoppyP.fmap QPoint
+  (dIVA' arg'1' arg'2')
+
+aSSIGN :: (QPointPtr arg'1, QPointValue arg'2) => arg'1 -> 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.fmap 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 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  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,327 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M34
+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 M34.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 HoppyFHR.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 M34.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 HoppyFHR.CBool
+foreign import ccall "genpop__QPointF_NE" nE' ::  HoppyF.Ptr QPointFConst -> HoppyF.Ptr QPointFConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QPointFConstPtr a => QPointFValue a where
+#else
+instance QPointFConstPtr a => QPointFValue a where
+#endif
+  withQPointFPtr = HoppyP.flip ($) . toQPointFConst
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QPointFValue (HPointF.HPointF) where
+#else
+instance QPointFValue (HPointF.HPointF) where
+#endif
+  withQPointFPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QPointFConstPtr this where
+  toQPointFConst :: this -> QPointFConst
+
+isNull :: (QPointFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isNull arg'1 =
+  withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isNull' arg'1')
+
+manhattanLength :: (QPointFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+manhattanLength arg'1 =
+  withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (manhattanLength' arg'1')
+
+toPoint :: (QPointFValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+toPoint arg'1 =
+  withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (toPoint' arg'1')
+
+x :: (QPointFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+x arg'1 =
+  withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (x' arg'1')
+
+y :: (QPointFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+y arg'1 =
+  withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (y' arg'1')
+
+eQ :: (QPointFValue arg'1, QPointFValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QPointFValue arg'1, QPointFValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QPointFConstPtr this) => QPointFPtr this where
+  toQPointF :: this -> QPointF
+
+setX :: (QPointFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setX arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPointF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setX' arg'1' arg'2')
+
+setY :: (QPointFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setY arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPointF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setY' arg'1' arg'2')
+
+aDDA :: (QPointFPtr arg'1, QPointFValue arg'2) => arg'1 -> 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 arg'1, QPointFValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO QPointF
+mULA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPointF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  HoppyP.fmap QPointF
+  (mULA' arg'1' arg'2')
+
+dIVA :: (QPointFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO QPointF
+dIVA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPointF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  HoppyP.fmap QPointF
+  (dIVA' arg'1' arg'2')
+
+aSSIGN :: (QPointFPtr arg'1, QPointFValue arg'2) => arg'1 -> 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.fmap 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 =
+  let arg'1' = HoppyP.realToFrac arg'1 in
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  HoppyP.fmap QPointF
+  (new' arg'1' arg'2')
+
+newFromPoint :: (M34.QPointValue arg'1) => arg'1 -> HoppyP.IO QPointF
+newFromPoint arg'1 =
+  M34.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/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,696 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M24
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M42
+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 M34.QPointConst -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO (HoppyF.Ptr QRect)
+foreign import ccall "genpop__QRect_newWithPointAndSize" newWithPointAndSize' ::  HoppyF.Ptr M34.QPointConst -> HoppyF.Ptr M42.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 M34.QPointConst)
+foreign import ccall "genpop__QRect_setBottomLeft" setBottomLeft' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_bottomRight" bottomRight' ::  HoppyF.Ptr QRectConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QRect_setBottomRight" setBottomRight' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_center" center' ::  HoppyF.Ptr QRectConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QRect_containsPoint" containsPoint' ::  HoppyF.Ptr QRectConst -> HoppyF.Ptr M34.QPointConst -> HoppyFHR.CBool -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QRect_containsRect" containsRect' ::  HoppyF.Ptr QRectConst -> HoppyF.Ptr QRectConst -> HoppyFHR.CBool -> HoppyP.IO HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QRect_isEmpty" isEmpty' ::  HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QRect_isNull" isNull' ::  HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QRect_isValid" isValid' ::  HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFHR.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 M24.QMarginsConst -> HoppyP.IO (HoppyF.Ptr QRectConst)
+foreign import ccall "genpop__QRect_marginsRemoved" marginsRemoved' ::  HoppyF.Ptr QRectConst -> HoppyF.Ptr M24.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 M34.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_moveBottomRight" moveBottomRight' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_moveCenter" moveCenter' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M34.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 M34.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 M34.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_moveTopRight" moveTopRight' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M34.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 M42.QSizeConst)
+foreign import ccall "genpop__QRect_setSize" setSize' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M42.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 M34.QPointConst)
+foreign import ccall "genpop__QRect_setTopLeft" setTopLeft' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_topRight" topRight' ::  HoppyF.Ptr QRectConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QRect_setTopRight" setTopRight' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_translate" translate' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_translated" translated' ::  HoppyF.Ptr QRectConst -> HoppyF.Ptr M34.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 HoppyFHR.CBool
+foreign import ccall "genpop__QRect_NE" nE' ::  HoppyF.Ptr QRectConst -> HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QRectConstPtr a => QRectValue a where
+#else
+instance QRectConstPtr a => QRectValue a where
+#endif
+  withQRectPtr = HoppyP.flip ($) . toQRectConst
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QRectValue (HRect.HRect) where
+#else
+instance QRectValue (HRect.HRect) where
+#endif
+  withQRectPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QRectConstPtr this where
+  toQRectConst :: this -> QRectConst
+
+adjusted :: (QRectValue arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (HoppyFHR.decodeAndDelete . QRectConst) =<<
+  (adjusted' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+bottom :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+bottom arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (bottom' arg'1')
+
+bottomLeft :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+bottomLeft arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (bottomLeft' arg'1')
+
+bottomRight :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+bottomRight arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (bottomRight' arg'1')
+
+center :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+center arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (center' arg'1')
+
+containsPoint :: (QRectValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.Bool -> HoppyP.IO HoppyP.Bool
+containsPoint arg'1 arg'2 arg'3 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = if arg'3 then 1 else 0 in
+  HoppyP.fmap (/= 0)
+  (containsPoint' arg'1' arg'2' arg'3')
+
+containsRect :: (QRectValue arg'1, QRectValue arg'2) => arg'1 -> 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' ->
+  let arg'3' = if arg'3 then 1 else 0 in
+  HoppyP.fmap (/= 0)
+  (containsRect' arg'1' arg'2' arg'3')
+
+height :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+height arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (height' arg'1')
+
+intersected :: (QRectValue arg'1, QRectValue arg'2) => arg'1 -> 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 arg'1, QRectValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (intersects' arg'1' arg'2')
+
+isEmpty :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+isNull :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isNull arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isNull' arg'1')
+
+isValid :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isValid arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isValid' arg'1')
+
+left :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+left arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (left' arg'1')
+
+marginsAdded :: (QRectValue arg'1, M24.QMarginsValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HRect.HRect
+marginsAdded arg'1 arg'2 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M24.withQMarginsPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRectConst) =<<
+  (marginsAdded' arg'1' arg'2')
+
+marginsRemoved :: (QRectValue arg'1, M24.QMarginsValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HRect.HRect
+marginsRemoved arg'1 arg'2 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M24.withQMarginsPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRectConst) =<<
+  (marginsRemoved' arg'1' arg'2')
+
+normalized :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+normalized arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QRectConst) =<<
+  (normalized' arg'1')
+
+right :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+right arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (right' arg'1')
+
+size :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+size arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (size' arg'1')
+
+top :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+top arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (top' arg'1')
+
+topLeft :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+topLeft arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (topLeft' arg'1')
+
+topRight :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+topRight arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (topRight' arg'1')
+
+translated :: (QRectValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HRect.HRect
+translated arg'1 arg'2 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRectConst) =<<
+  (translated' arg'1' arg'2')
+
+width :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+width arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (width' arg'1')
+
+x :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+x arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (x' arg'1')
+
+y :: (QRectValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+y arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (y' arg'1')
+
+eQ :: (QRectValue arg'1, QRectValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QRectValue arg'1, QRectValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QRectConstPtr this) => QRectPtr this where
+  toQRect :: this -> QRect
+
+adjust :: (QRectPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (adjust' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setBottom :: (QRectPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setBottom arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setBottom' arg'1' arg'2')
+
+setBottomLeft :: (QRectPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setBottomLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBottomLeft' arg'1' arg'2')
+
+setBottomRight :: (QRectPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setBottomRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBottomRight' arg'1' arg'2')
+
+setHeight :: (QRectPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setHeight' arg'1' arg'2')
+
+setLeft :: (QRectPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setLeft' arg'1' arg'2')
+
+moveBottom :: (QRectPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+moveBottom arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (moveBottom' arg'1' arg'2')
+
+moveBottomLeft :: (QRectPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+moveBottomLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveBottomLeft' arg'1' arg'2')
+
+moveBottomRight :: (QRectPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+moveBottomRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveBottomRight' arg'1' arg'2')
+
+moveCenter :: (QRectPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+moveCenter arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveCenter' arg'1' arg'2')
+
+moveLeft :: (QRectPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+moveLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (moveLeft' arg'1' arg'2')
+
+moveRight :: (QRectPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+moveRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (moveRight' arg'1' arg'2')
+
+moveTo :: (QRectPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+moveTo arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveTo' arg'1' arg'2')
+
+moveTop :: (QRectPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+moveTop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (moveTop' arg'1' arg'2')
+
+moveTopLeft :: (QRectPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+moveTopLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveTopLeft' arg'1' arg'2')
+
+moveTopRight :: (QRectPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+moveTopRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveTopRight' arg'1' arg'2')
+
+setRight :: (QRectPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setRight' arg'1' arg'2')
+
+setCoords :: (QRectPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (setCoords' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setRect :: (QRectPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (setRect' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setSize :: (QRectPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSize' arg'1' arg'2')
+
+setTop :: (QRectPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setTop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setTop' arg'1' arg'2')
+
+setTopLeft :: (QRectPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setTopLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTopLeft' arg'1' arg'2')
+
+setTopRight :: (QRectPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setTopRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTopRight' arg'1' arg'2')
+
+translate :: (QRectPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+translate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (translate' arg'1' arg'2')
+
+united :: (QRectPtr arg'1, QRectValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setWidth' arg'1' arg'2')
+
+setX :: (QRectPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setX arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setX' arg'1' arg'2')
+
+setY :: (QRectPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setY arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setY' arg'1' arg'2')
+
+aSSIGN :: (QRectPtr arg'1, QRectValue arg'2) => arg'1 -> 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 :: (M34.QPointValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QRect
+newWithPoints arg'1 arg'2 =
+  M34.withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QRect
+  (newWithPoints' arg'1' arg'2')
+
+newWithPointAndSize :: (M34.QPointValue arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QRect
+newWithPointAndSize arg'1 arg'2 =
+  M34.withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M42.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 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  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,696 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M26
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M36
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Core.QSizeF as M44
+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 M36.QPointFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO (HoppyF.Ptr QRectF)
+foreign import ccall "genpop__QRectF_newWithPointAndSize" newWithPointAndSize' ::  HoppyF.Ptr M36.QPointFConst -> HoppyF.Ptr M44.QSizeFConst -> HoppyP.IO (HoppyF.Ptr QRectF)
+foreign import ccall "genpop__QRectF_newWithRect" newWithRect' ::  HoppyF.Ptr M38.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 M36.QPointFConst)
+foreign import ccall "genpop__QRectF_setBottomLeft" setBottomLeft' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_bottomRight" bottomRight' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QRectF_setBottomRight" setBottomRight' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_center" center' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QRectF_containsPoint" containsPoint' ::  HoppyF.Ptr QRectFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QRectF_containsRect" containsRect' ::  HoppyF.Ptr QRectFConst -> HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QRectF_isEmpty" isEmpty' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QRectF_isNull" isNull' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QRectF_isValid" isValid' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFHR.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 M26.QMarginsFConst -> HoppyP.IO (HoppyF.Ptr QRectFConst)
+foreign import ccall "genpop__QRectF_marginsRemoved" marginsRemoved' ::  HoppyF.Ptr QRectFConst -> HoppyF.Ptr M26.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 M36.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_moveBottomRight" moveBottomRight' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_moveCenter" moveCenter' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M36.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 M36.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 M36.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_moveTopRight" moveTopRight' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M36.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 M44.QSizeFConst)
+foreign import ccall "genpop__QRectF_setSize" setSize' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M44.QSizeFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_toAlignedRect" toAlignedRect' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO (HoppyF.Ptr M38.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 M36.QPointFConst)
+foreign import ccall "genpop__QRectF_setTopLeft" setTopLeft' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_topRight" topRight' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QRectF_setTopRight" setTopRight' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_translate" translate' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_translated" translated' ::  HoppyF.Ptr QRectFConst -> HoppyF.Ptr M36.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 HoppyFHR.CBool
+foreign import ccall "genpop__QRectF_NE" nE' ::  HoppyF.Ptr QRectFConst -> HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QRectFConstPtr a => QRectFValue a where
+#else
+instance QRectFConstPtr a => QRectFValue a where
+#endif
+  withQRectFPtr = HoppyP.flip ($) . toQRectFConst
+
+class (HoppyFHR.CppPtr this) => QRectFConstPtr this where
+  toQRectFConst :: this -> QRectFConst
+
+adjusted :: (QRectFValue arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (HoppyFHR.decodeAndDelete . QRectFConst) =<<
+  (adjusted' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+bottom :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+bottom arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (bottom' arg'1')
+
+bottomLeft :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+bottomLeft arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (bottomLeft' arg'1')
+
+bottomRight :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+bottomRight arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (bottomRight' arg'1')
+
+center :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+center arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (center' arg'1')
+
+containsPoint :: (QRectFValue arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+containsPoint arg'1 arg'2 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (containsPoint' arg'1' arg'2')
+
+containsRect :: (QRectFValue arg'1, QRectFValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (containsRect' arg'1' arg'2')
+
+height :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+height arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (height' arg'1')
+
+intersected :: (QRectFValue arg'1, QRectFValue arg'2) => arg'1 -> 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 arg'1, QRectFValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (intersects' arg'1' arg'2')
+
+isEmpty :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+isNull :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isNull arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isNull' arg'1')
+
+isValid :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isValid arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isValid' arg'1')
+
+left :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+left arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (left' arg'1')
+
+marginsAdded :: (QRectFValue arg'1, M26.QMarginsFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QRectF
+marginsAdded arg'1 arg'2 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M26.withQMarginsFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRectFConst) =<<
+  (marginsAdded' arg'1' arg'2')
+
+marginsRemoved :: (QRectFValue arg'1, M26.QMarginsFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QRectF
+marginsRemoved arg'1 arg'2 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M26.withQMarginsFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRectFConst) =<<
+  (marginsRemoved' arg'1' arg'2')
+
+normalized :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO QRectF
+normalized arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QRectFConst) =<<
+  (normalized' arg'1')
+
+right :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+right arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (right' arg'1')
+
+size :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO M44.QSizeF
+size arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M44.QSizeFConst) =<<
+  (size' arg'1')
+
+toAlignedRect :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+toAlignedRect arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (toAlignedRect' arg'1')
+
+top :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+top arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (top' arg'1')
+
+topLeft :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+topLeft arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (topLeft' arg'1')
+
+topRight :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+topRight arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (topRight' arg'1')
+
+translated :: (QRectFValue arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QRectF
+translated arg'1 arg'2 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRectFConst) =<<
+  (translated' arg'1' arg'2')
+
+width :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+width arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (width' arg'1')
+
+x :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+x arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (x' arg'1')
+
+y :: (QRectFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+y arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (y' arg'1')
+
+eQ :: (QRectFValue arg'1, QRectFValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QRectFValue arg'1, QRectFValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QRectFConstPtr this) => QRectFPtr this where
+  toQRectF :: this -> QRectF
+
+adjust :: (QRectFPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (adjust' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setBottom :: (QRectFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setBottom arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setBottom' arg'1' arg'2')
+
+setBottomLeft :: (QRectFPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setBottomLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBottomLeft' arg'1' arg'2')
+
+setBottomRight :: (QRectFPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setBottomRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBottomRight' arg'1' arg'2')
+
+setHeight :: (QRectFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setHeight' arg'1' arg'2')
+
+setLeft :: (QRectFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setLeft' arg'1' arg'2')
+
+moveBottom :: (QRectFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+moveBottom arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (moveBottom' arg'1' arg'2')
+
+moveBottomLeft :: (QRectFPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+moveBottomLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveBottomLeft' arg'1' arg'2')
+
+moveBottomRight :: (QRectFPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+moveBottomRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveBottomRight' arg'1' arg'2')
+
+moveCenter :: (QRectFPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+moveCenter arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveCenter' arg'1' arg'2')
+
+moveLeft :: (QRectFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+moveLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (moveLeft' arg'1' arg'2')
+
+moveRight :: (QRectFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+moveRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (moveRight' arg'1' arg'2')
+
+moveTo :: (QRectFPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+moveTo arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveTo' arg'1' arg'2')
+
+moveTop :: (QRectFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+moveTop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (moveTop' arg'1' arg'2')
+
+moveTopLeft :: (QRectFPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+moveTopLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveTopLeft' arg'1' arg'2')
+
+moveTopRight :: (QRectFPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+moveTopRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveTopRight' arg'1' arg'2')
+
+setRight :: (QRectFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setRight' arg'1' arg'2')
+
+setCoords :: (QRectFPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (setCoords' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setRect :: (QRectFPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (setRect' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setSize :: (QRectFPtr arg'1, M44.QSizeFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M44.withQSizeFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSize' arg'1' arg'2')
+
+setTop :: (QRectFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setTop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setTop' arg'1' arg'2')
+
+setTopLeft :: (QRectFPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setTopLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTopLeft' arg'1' arg'2')
+
+setTopRight :: (QRectFPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setTopRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTopRight' arg'1' arg'2')
+
+translate :: (QRectFPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+translate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (translate' arg'1' arg'2')
+
+united :: (QRectFPtr arg'1, QRectFValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setWidth' arg'1' arg'2')
+
+setX :: (QRectFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setX arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setX' arg'1' arg'2')
+
+setY :: (QRectFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setY arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setY' arg'1' arg'2')
+
+aSSIGN :: (QRectFPtr arg'1, QRectFValue arg'2) => arg'1 -> 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 :: (M36.QPointFValue arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QRectF
+newFromPoints arg'1 arg'2 =
+  M36.withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QRectF
+  (newFromPoints' arg'1' arg'2')
+
+newWithPointAndSize :: (M36.QPointFValue arg'1, M44.QSizeFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QRectF
+newWithPointAndSize arg'1 arg'2 =
+  M36.withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M44.withQSizeFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QRectF
+  (newWithPointAndSize' arg'1' arg'2')
+
+newWithRect :: (M38.QRectValue arg'1) => arg'1 -> HoppyP.IO QRectF
+newWithRect arg'1 =
+  M38.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 =
+  let arg'1' = HoppyP.realToFrac arg'1 in
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  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/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,361 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M58
+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 HoppyFHR.CBool
+foreign import ccall "genpop__QSize_isNull" isNull' ::  HoppyF.Ptr QSizeConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QSize_isValid" isValid' ::  HoppyF.Ptr QSizeConst -> HoppyP.IO HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QSize_NE" nE' ::  HoppyF.Ptr QSizeConst -> HoppyF.Ptr QSizeConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QSizeConstPtr a => QSizeValue a where
+#else
+instance QSizeConstPtr a => QSizeValue a where
+#endif
+  withQSizePtr = HoppyP.flip ($) . toQSizeConst
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QSizeValue (HSize.HSize) where
+#else
+instance QSizeValue (HSize.HSize) where
+#endif
+  withQSizePtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QSizeConstPtr this where
+  toQSizeConst :: this -> QSizeConst
+
+boundedTo :: (QSizeValue arg'1, QSizeValue arg'2) => arg'1 -> 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 arg'1, QSizeValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+height arg'1 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (height' arg'1')
+
+isEmpty :: (QSizeValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+isNull :: (QSizeValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isNull arg'1 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isNull' arg'1')
+
+isValid :: (QSizeValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isValid arg'1 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isValid' arg'1')
+
+scaled :: (QSizeValue arg'1, QSizeValue arg'2) => arg'1 -> arg'2 -> M58.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' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (HoppyFHR.decodeAndDelete . QSizeConst) =<<
+  (scaled' arg'1' arg'2' arg'3')
+
+transposed :: (QSizeValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+transposed arg'1 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QSizeConst) =<<
+  (transposed' arg'1')
+
+width :: (QSizeValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+width arg'1 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (width' arg'1')
+
+eQ :: (QSizeValue arg'1, QSizeValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QSizeValue arg'1, QSizeValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QSizeConstPtr this) => QSizePtr this where
+  toQSize :: this -> QSize
+
+setHeight :: (QSizePtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSize arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setHeight' arg'1' arg'2')
+
+scale :: (QSizePtr arg'1, QSizeValue arg'2) => arg'1 -> arg'2 -> M58.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' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (scale' arg'1' arg'2' arg'3')
+
+transpose :: (QSizePtr arg'1) => arg'1 -> HoppyP.IO ()
+transpose arg'1 =
+  HoppyFHR.withCppPtr (toQSize arg'1) $ \arg'1' ->
+  (transpose' arg'1')
+
+setWidth :: (QSizePtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSize arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setWidth' arg'1' arg'2')
+
+aDDA :: (QSizePtr arg'1, QSizeValue arg'2) => arg'1 -> 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 arg'1, QSizeValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO QSize
+mULA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSize arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  HoppyP.fmap QSize
+  (mULA' arg'1' arg'2')
+
+dIVA :: (QSizePtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO QSize
+dIVA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSize arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  HoppyP.fmap QSize
+  (dIVA' arg'1' arg'2')
+
+aSSIGN :: (QSizePtr arg'1, QSizeValue arg'2) => arg'1 -> 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 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  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,364 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M42
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+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 M42.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 HoppyFHR.CBool
+foreign import ccall "genpop__QSizeF_isNull" isNull' ::  HoppyF.Ptr QSizeFConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QSizeF_isValid" isValid' ::  HoppyF.Ptr QSizeFConst -> HoppyP.IO HoppyFHR.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 M42.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 HoppyFHR.CBool
+foreign import ccall "genpop__QSizeF_NE" nE' ::  HoppyF.Ptr QSizeFConst -> HoppyF.Ptr QSizeFConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QSizeFConstPtr a => QSizeFValue a where
+#else
+instance QSizeFConstPtr a => QSizeFValue a where
+#endif
+  withQSizeFPtr = HoppyP.flip ($) . toQSizeFConst
+
+class (HoppyFHR.CppPtr this) => QSizeFConstPtr this where
+  toQSizeFConst :: this -> QSizeFConst
+
+boundedTo :: (QSizeFValue arg'1, QSizeFValue arg'2) => arg'1 -> 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 arg'1, QSizeFValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+height arg'1 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (height' arg'1')
+
+isEmpty :: (QSizeFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+isNull :: (QSizeFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isNull arg'1 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isNull' arg'1')
+
+isValid :: (QSizeFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isValid arg'1 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isValid' arg'1')
+
+scaled :: (QSizeFValue arg'1, QSizeFValue arg'2) => arg'1 -> arg'2 -> M58.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' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (HoppyFHR.decodeAndDelete . QSizeFConst) =<<
+  (scaled' arg'1' arg'2' arg'3')
+
+toSize :: (QSizeFValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+toSize arg'1 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (toSize' arg'1')
+
+transposed :: (QSizeFValue arg'1) => arg'1 -> HoppyP.IO QSizeF
+transposed arg'1 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QSizeFConst) =<<
+  (transposed' arg'1')
+
+width :: (QSizeFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+width arg'1 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (width' arg'1')
+
+eQ :: (QSizeFValue arg'1, QSizeFValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QSizeFValue arg'1, QSizeFValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QSizeFConstPtr this) => QSizeFPtr this where
+  toQSizeF :: this -> QSizeF
+
+setHeight :: (QSizeFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizeF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setHeight' arg'1' arg'2')
+
+scale :: (QSizeFPtr arg'1, QSizeFValue arg'2) => arg'1 -> arg'2 -> M58.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' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (scale' arg'1' arg'2' arg'3')
+
+transpose :: (QSizeFPtr arg'1) => arg'1 -> HoppyP.IO ()
+transpose arg'1 =
+  HoppyFHR.withCppPtr (toQSizeF arg'1) $ \arg'1' ->
+  (transpose' arg'1')
+
+setWidth :: (QSizeFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizeF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setWidth' arg'1' arg'2')
+
+aDDA :: (QSizeFPtr arg'1, QSizeFValue arg'2) => arg'1 -> 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 arg'1, QSizeFValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO QSizeF
+mULA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizeF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  HoppyP.fmap QSizeF
+  (mULA' arg'1' arg'2')
+
+dIVA :: (QSizeFPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO QSizeF
+dIVA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizeF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  HoppyP.fmap QSizeF
+  (dIVA' arg'1' arg'2')
+
+aSSIGN :: (QSizeFPtr arg'1, QSizeFValue arg'2) => arg'1 -> 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 =
+  let arg'1' = HoppyP.realToFrac arg'1 in
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  HoppyP.fmap QSizeF
+  (new' arg'1' arg'2')
+
+newWithSize :: (M42.QSizeValue arg'1) => arg'1 -> HoppyP.IO QSizeF
+newWithSize arg'1 =
+  M42.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/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,280 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QString (
+  QStringValue (..),
+  QStringConstPtr (..),
+  at,
+  toHtmlEscaped,
+  toStdString,
+  eQ,
+  nE,
+  lT,
+  lE,
+  gT,
+  gE,
+  QStringPtr (..),
+  set,
+  aSSIGN,
+  QStringConst (..),
+  castQStringToConst,
+  QString (..),
+  castQStringToNonconst,
+  newFromCString,
+  newCopy,
+  QStringSuper (..),
+  QStringSuperConst (..),
+  ) where
+
+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 {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QChar as M8
+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_newFromCString" newFromCString' ::  HoppyF.Ptr HoppyFC.CChar -> 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_at" at' ::  HoppyF.Ptr QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M8.QCharConst)
+foreign import ccall "genpop__QString_set" set' ::  HoppyF.Ptr QString -> HoppyFC.CInt -> HoppyF.Ptr M8.QCharConst -> HoppyP.IO ()
+foreign import ccall "genpop__QString_toHtmlEscaped" toHtmlEscaped' ::  HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_toStdString" toStdString' ::  HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr M1.StdStringConst)
+foreign import ccall "genpop__QString_EQ" eQ' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QString_NE" nE' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QString_LT" lT' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QString_LE" lE' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QString_GT" gT' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QString_GE" gE' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QStringConstPtr a => QStringValue a where
+#else
+instance QStringConstPtr a => QStringValue a where
+#endif
+  withQStringPtr = HoppyP.flip ($) . toQStringConst
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QStringValue (QtahP.String) where
+#else
+instance QStringValue (QtahP.String) where
+#endif
+  withQStringPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QStringConstPtr this where
+  toQStringConst :: this -> QStringConst
+
+at :: (QStringValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QtahP.Char
+at arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M8.QCharConst) =<<
+  (at' arg'1' arg'2')
+
+toHtmlEscaped :: (QStringValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+toHtmlEscaped arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (toHtmlEscaped' arg'1')
+
+toStdString :: (QStringValue arg'1) => arg'1 -> HoppyP.IO HoppyP.String
+toStdString arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M1.StdStringConst) =<<
+  (toStdString' arg'1')
+
+eQ :: (QStringValue arg'1, QStringValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QStringValue arg'1, QStringValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+lT :: (QStringValue arg'1, QStringValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (lT' arg'1' arg'2')
+
+lE :: (QStringValue arg'1, QStringValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (lE' arg'1' arg'2')
+
+gT :: (QStringValue arg'1, QStringValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (gT' arg'1' arg'2')
+
+gE :: (QStringValue arg'1, QStringValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (gE' arg'1' arg'2')
+
+class (QStringConstPtr this) => QStringPtr this where
+  toQString :: this -> QString
+
+set :: (QStringPtr arg'1, M8.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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M8.withQCharPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (set' arg'1' arg'2' arg'3')
+
+aSSIGN :: (QStringPtr arg'1, QStringValue arg'2) => arg'1 -> 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
+
+newFromCString ::  HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO QString
+newFromCString arg'1 =
+  let arg'1' = arg'1 in
+  HoppyP.fmap QString
+  (newFromCString' 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
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,77 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QString (
+  QStringValue (..),
+  QStringConstPtr (..),
+  QStringPtr (..),
+  QStringConst (..),
+  castQStringToConst,
+  QString (..),
+  castQStringToNonconst,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+class QStringValue a where
+  withQStringPtr :: a -> (QStringConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QStringConstPtr a => QStringValue a
+#else
+instance QStringConstPtr a => QStringValue a
+#endif
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QStringValue (QtahP.String)
+#else
+instance QStringValue (QtahP.String)
+#endif
+
+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))
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,307 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M8
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QString as M70
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+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 M46.QStringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QStringList_filter" filter' ::  HoppyF.Ptr QStringListConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr QStringListConst)
+foreign import ccall "genpop__QStringList_filterCase" filterCase' ::  HoppyF.Ptr QStringListConst -> HoppyF.Ptr M46.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringListConst)
+foreign import ccall "genpop__QStringList_joinString" joinString' ::  HoppyF.Ptr QStringListConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QStringList_joinChar" joinChar' ::  HoppyF.Ptr QStringListConst -> HoppyF.Ptr M8.QCharConst -> HoppyP.IO (HoppyF.Ptr M46.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 HoppyFHR.CBool
+foreign import ccall "genpop__QStringList_NE" nE' ::  HoppyF.Ptr QStringListConst -> HoppyF.Ptr QStringListConst -> HoppyP.IO HoppyFHR.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 M70.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QStringListConstPtr a => QStringListValue a where
+#else
+instance QStringListConstPtr a => QStringListValue a where
+#endif
+  withQStringListPtr = HoppyP.flip ($) . toQStringListConst
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QStringListValue ([QtahP.String]) where
+#else
+instance QStringListValue ([QtahP.String]) where
+#endif
+  withQStringListPtr = HoppyFHR.withCppObj
+
+class (M70.QListQStringConstPtr this) => QStringListConstPtr this where
+  toQStringListConst :: this -> QStringListConst
+
+containsCase :: (QStringListValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> M58.QtCaseSensitivity -> HoppyP.IO HoppyP.Bool
+containsCase arg'1 arg'2 arg'3 =
+  withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  HoppyP.fmap (/= 0)
+  (containsCase' arg'1' arg'2' arg'3')
+
+filter :: (QStringListValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO [QtahP.String]
+filter arg'1 arg'2 =
+  withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QStringListConst) =<<
+  (filter' arg'1' arg'2')
+
+filterCase :: (QStringListValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> M58.QtCaseSensitivity -> HoppyP.IO [QtahP.String]
+filterCase arg'1 arg'2 arg'3 =
+  withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (HoppyFHR.decodeAndDelete . QStringListConst) =<<
+  (filterCase' arg'1' arg'2' arg'3')
+
+joinString :: (QStringListValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QtahP.String
+joinString arg'1 arg'2 =
+  withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (joinString' arg'1' arg'2')
+
+joinChar :: (QStringListValue arg'1, M8.QCharValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QtahP.String
+joinChar arg'1 arg'2 =
+  withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M8.withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (joinChar' arg'1' arg'2')
+
+eQ :: (QStringListValue arg'1, QStringListValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QStringListValue arg'1, QStringListValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QStringListConstPtr this, M70.QListQStringPtr this) => QStringListPtr this where
+  toQStringList :: this -> QStringList
+
+removeDuplicates :: (QStringListPtr arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+removeDuplicates arg'1 =
+  HoppyFHR.withCppPtr (toQStringList arg'1) $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (removeDuplicates' arg'1')
+
+sort :: (QStringListPtr arg'1) => arg'1 -> HoppyP.IO ()
+sort arg'1 =
+  HoppyFHR.withCppPtr (toQStringList arg'1) $ \arg'1' ->
+  (sort' arg'1')
+
+sortCase :: (QStringListPtr arg'1) => arg'1 -> M58.QtCaseSensitivity -> HoppyP.IO ()
+sortCase arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStringList arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (sortCase' arg'1' arg'2')
+
+aSSIGN :: (QStringListPtr arg'1, QStringListValue arg'2) => arg'1 -> 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 M70.QListQStringConstPtr QStringListConst where
+  toQListQStringConst (QStringListConst ptr') = M70.QListQStringConst $ castQStringListToQListQString ptr'
+  toQListQStringConst (QStringListConstGc fptr' ptr') = M70.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 M70.QListQStringConstPtr QStringList where
+  toQListQStringConst (QStringList ptr') = M70.QListQStringConst $ castQStringListToQListQString $ (HoppyF.castPtr :: HoppyF.Ptr QStringList -> HoppyF.Ptr QStringListConst) ptr'
+  toQListQStringConst (QStringListGc fptr' ptr') = M70.QListQStringConstGc fptr' $ castQStringListToQListQString $ (HoppyF.castPtr :: HoppyF.Ptr QStringList -> HoppyF.Ptr QStringListConst) ptr'
+
+instance M70.QListQStringPtr QStringList where
+  toQListQString (QStringList ptr') = M70.QListQString $ (HoppyF.castPtr :: HoppyF.Ptr M70.QListQStringConst -> HoppyF.Ptr M70.QListQString) $ castQStringListToQListQString $ (HoppyF.castPtr :: HoppyF.Ptr QStringList -> HoppyF.Ptr QStringListConst) ptr'
+  toQListQString (QStringListGc fptr' ptr') = M70.QListQStringGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M70.QListQStringConst -> HoppyF.Ptr M70.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 . M70.toQListQStringConst
+
+instance QtahFHR.HasContents QStringList QtahP.String where
+  toContents = QtahFHR.toContents . M70.toQListQStringConst
+
+instance QtahFHR.FromContents QStringList QtahP.String where
+  fromContents strs' = do
+    l' <- new
+    QtahP.mapM_ (M70.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QStringListModel.hs
@@ -0,0 +1,265 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M2
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractListModel as M4
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M48
+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 M30.QObject -> HoppyP.IO (HoppyF.Ptr QStringListModel)
+foreign import ccall "genpop__QStringListModel_newWithContents" newWithContents' ::  HoppyF.Ptr M48.QStringListConst -> HoppyP.IO (HoppyF.Ptr QStringListModel)
+foreign import ccall "genpop__QStringListModel_newWithContentsAndParent" newWithContentsAndParent' ::  HoppyF.Ptr M48.QStringListConst -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr QStringListModel)
+foreign import ccall "genpop__QStringListModel_stringList" stringList' ::  HoppyF.Ptr QStringListModelConst -> HoppyP.IO (HoppyF.Ptr M48.QStringListConst)
+foreign import ccall "genpop__QStringListModel_setStringList" setStringList' ::  HoppyF.Ptr QStringListModel -> HoppyF.Ptr M48.QStringListConst -> HoppyP.IO ()
+foreign import ccall "gencast__QStringListModel__QAbstractListModel" castQStringListModelToQAbstractListModel :: HoppyF.Ptr QStringListModelConst -> HoppyF.Ptr M4.QAbstractListModelConst
+foreign import ccall "gencast__QAbstractListModel__QStringListModel" castQAbstractListModelToQStringListModel :: HoppyF.Ptr M4.QAbstractListModelConst -> HoppyF.Ptr QStringListModelConst
+foreign import ccall "gencast__QStringListModel__QAbstractItemModel" castQStringListModelToQAbstractItemModel :: HoppyF.Ptr QStringListModelConst -> HoppyF.Ptr M2.QAbstractItemModelConst
+foreign import ccall "gencast__QAbstractItemModel__QStringListModel" castQAbstractItemModelToQStringListModel :: HoppyF.Ptr M2.QAbstractItemModelConst -> HoppyF.Ptr QStringListModelConst
+foreign import ccall "gencast__QStringListModel__QObject" castQStringListModelToQObject :: HoppyF.Ptr QStringListModelConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QStringListModel" castQObjectToQStringListModel :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QStringListModelConstPtr a => QStringListModelValue a where
+#else
+instance QStringListModelConstPtr a => QStringListModelValue a where
+#endif
+  withQStringListModelPtr = HoppyP.flip ($) . toQStringListModelConst
+
+class (M4.QAbstractListModelConstPtr this) => QStringListModelConstPtr this where
+  toQStringListModelConst :: this -> QStringListModelConst
+
+stringList :: (QStringListModelValue arg'1) => arg'1 -> HoppyP.IO [QtahP.String]
+stringList arg'1 =
+  withQStringListModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M48.QStringListConst) =<<
+  (stringList' arg'1')
+
+class (QStringListModelConstPtr this, M4.QAbstractListModelPtr this) => QStringListModelPtr this where
+  toQStringListModel :: this -> QStringListModel
+
+setStringList :: (QStringListModelPtr arg'1, M48.QStringListValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setStringList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStringListModel arg'1) $ \arg'1' ->
+  M48.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 M4.QAbstractListModelConstPtr QStringListModelConst where
+  toQAbstractListModelConst (QStringListModelConst ptr') = M4.QAbstractListModelConst $ castQStringListModelToQAbstractListModel ptr'
+  toQAbstractListModelConst (QStringListModelConstGc fptr' ptr') = M4.QAbstractListModelConstGc fptr' $ castQStringListModelToQAbstractListModel ptr'
+
+instance M2.QAbstractItemModelConstPtr QStringListModelConst where
+  toQAbstractItemModelConst (QStringListModelConst ptr') = M2.QAbstractItemModelConst $ castQStringListModelToQAbstractItemModel ptr'
+  toQAbstractItemModelConst (QStringListModelConstGc fptr' ptr') = M2.QAbstractItemModelConstGc fptr' $ castQStringListModelToQAbstractItemModel ptr'
+
+instance M30.QObjectConstPtr QStringListModelConst where
+  toQObjectConst (QStringListModelConst ptr') = M30.QObjectConst $ castQStringListModelToQObject ptr'
+  toQObjectConst (QStringListModelConstGc fptr' ptr') = M30.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 M4.QAbstractListModelConstPtr QStringListModel where
+  toQAbstractListModelConst (QStringListModel ptr') = M4.QAbstractListModelConst $ castQStringListModelToQAbstractListModel $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+  toQAbstractListModelConst (QStringListModelGc fptr' ptr') = M4.QAbstractListModelConstGc fptr' $ castQStringListModelToQAbstractListModel $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+
+instance M4.QAbstractListModelPtr QStringListModel where
+  toQAbstractListModel (QStringListModel ptr') = M4.QAbstractListModel $ (HoppyF.castPtr :: HoppyF.Ptr M4.QAbstractListModelConst -> HoppyF.Ptr M4.QAbstractListModel) $ castQStringListModelToQAbstractListModel $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+  toQAbstractListModel (QStringListModelGc fptr' ptr') = M4.QAbstractListModelGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M4.QAbstractListModelConst -> HoppyF.Ptr M4.QAbstractListModel) $ castQStringListModelToQAbstractListModel $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+
+instance M2.QAbstractItemModelConstPtr QStringListModel where
+  toQAbstractItemModelConst (QStringListModel ptr') = M2.QAbstractItemModelConst $ castQStringListModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+  toQAbstractItemModelConst (QStringListModelGc fptr' ptr') = M2.QAbstractItemModelConstGc fptr' $ castQStringListModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+
+instance M2.QAbstractItemModelPtr QStringListModel where
+  toQAbstractItemModel (QStringListModel ptr') = M2.QAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractItemModelConst -> HoppyF.Ptr M2.QAbstractItemModel) $ castQStringListModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+  toQAbstractItemModel (QStringListModelGc fptr' ptr') = M2.QAbstractItemModelGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractItemModelConst -> HoppyF.Ptr M2.QAbstractItemModel) $ castQStringListModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+
+instance M30.QObjectConstPtr QStringListModel where
+  toQObjectConst (QStringListModel ptr') = M30.QObjectConst $ castQStringListModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+  toQObjectConst (QStringListModelGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQStringListModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+
+instance M30.QObjectPtr QStringListModel where
+  toQObject (QStringListModel ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQStringListModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+  toQObject (QStringListModelGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQStringListModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+
+new ::  HoppyP.IO QStringListModel
+new =
+  HoppyP.fmap QStringListModel
+  (new')
+
+newWithParent :: (M30.QObjectPtr arg'1) => arg'1 -> HoppyP.IO QStringListModel
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M30.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QStringListModel
+  (newWithParent' arg'1')
+
+newWithContents :: (M48.QStringListValue arg'1) => arg'1 -> HoppyP.IO QStringListModel
+newWithContents arg'1 =
+  M48.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QStringListModel
+  (newWithContents' arg'1')
+
+newWithContentsAndParent :: (M48.QStringListValue arg'1, M30.QObjectPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QStringListModel
+newWithContentsAndParent arg'1 arg'2 =
+  M48.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap QStringListModel
+  (newWithContentsAndParent' arg'1' arg'2')
+
+class QStringListModelSuper a where
+  downToQStringListModel :: a -> QStringListModel
+
+instance QStringListModelSuper M4.QAbstractListModel where
+  downToQStringListModel = castQStringListModelToNonconst . cast' . M4.castQAbstractListModelToConst
+    where
+      cast' (M4.QAbstractListModelConst ptr') = QStringListModelConst $ castQAbstractListModelToQStringListModel ptr'
+      cast' (M4.QAbstractListModelConstGc fptr' ptr') = QStringListModelConstGc fptr' $ castQAbstractListModelToQStringListModel ptr'
+instance QStringListModelSuper M2.QAbstractItemModel where
+  downToQStringListModel = castQStringListModelToNonconst . cast' . M2.castQAbstractItemModelToConst
+    where
+      cast' (M2.QAbstractItemModelConst ptr') = QStringListModelConst $ castQAbstractItemModelToQStringListModel ptr'
+      cast' (M2.QAbstractItemModelConstGc fptr' ptr') = QStringListModelConstGc fptr' $ castQAbstractItemModelToQStringListModel ptr'
+instance QStringListModelSuper M30.QObject where
+  downToQStringListModel = castQStringListModelToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QStringListModelConst $ castQObjectToQStringListModel ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QStringListModelConstGc fptr' $ castQObjectToQStringListModel ptr'
+
+class QStringListModelSuperConst a where
+  downToQStringListModelConst :: a -> QStringListModelConst
+
+instance QStringListModelSuperConst M4.QAbstractListModelConst where
+  downToQStringListModelConst = cast'
+    where
+      cast' (M4.QAbstractListModelConst ptr') = QStringListModelConst $ castQAbstractListModelToQStringListModel ptr'
+      cast' (M4.QAbstractListModelConstGc fptr' ptr') = QStringListModelConstGc fptr' $ castQAbstractListModelToQStringListModel ptr'
+instance QStringListModelSuperConst M2.QAbstractItemModelConst where
+  downToQStringListModelConst = cast'
+    where
+      cast' (M2.QAbstractItemModelConst ptr') = QStringListModelConst $ castQAbstractItemModelToQStringListModel ptr'
+      cast' (M2.QAbstractItemModelConstGc fptr' ptr') = QStringListModelConstGc fptr' $ castQAbstractItemModelToQStringListModel ptr'
+instance QStringListModelSuperConst M30.QObjectConst where
+  downToQStringListModelConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QStringListModelConst $ castQObjectToQStringListModel ptr'
+      cast' (M30.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/QTimer.hs b/src/Graphics/UI/Qtah/Generated/Core/QTimer.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QTimer.hs
@@ -0,0 +1,233 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+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 HoppyFHR.CBool
+foreign import ccall "genpop__QTimer_isSingleShot" isSingleShot' ::  HoppyF.Ptr QTimerConst -> HoppyP.IO HoppyFHR.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 -> HoppyFHR.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 M30.QObjectConst
+foreign import ccall "gencast__QObject__QTimer" castQObjectToQTimer :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QTimerConstPtr a => QTimerValue a where
+#else
+instance QTimerConstPtr a => QTimerValue a where
+#endif
+  withQTimerPtr = HoppyP.flip ($) . toQTimerConst
+
+class (M30.QObjectConstPtr this) => QTimerConstPtr this where
+  toQTimerConst :: this -> QTimerConst
+
+interval :: (QTimerValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+interval arg'1 =
+  withQTimerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (interval' arg'1')
+
+isActive :: (QTimerValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isActive arg'1 =
+  withQTimerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isActive' arg'1')
+
+isSingleShot :: (QTimerValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isSingleShot arg'1 =
+  withQTimerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isSingleShot' arg'1')
+
+remainingTime :: (QTimerValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+remainingTime arg'1 =
+  withQTimerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (remainingTime' arg'1')
+
+timerId :: (QTimerValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+timerId arg'1 =
+  withQTimerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (timerId' arg'1')
+
+class (QTimerConstPtr this, M30.QObjectPtr this) => QTimerPtr this where
+  toQTimer :: this -> QTimer
+
+setInterval :: (QTimerPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setInterval arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTimer arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setInterval' arg'1' arg'2')
+
+setSingleShot :: (QTimerPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setSingleShot arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTimer arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setSingleShot' arg'1' arg'2')
+
+start :: (QTimerPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+start arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTimer arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (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 M30.QObjectConstPtr QTimerConst where
+  toQObjectConst (QTimerConst ptr') = M30.QObjectConst $ castQTimerToQObject ptr'
+  toQObjectConst (QTimerConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr QTimer where
+  toQObjectConst (QTimer ptr') = M30.QObjectConst $ castQTimerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTimer -> HoppyF.Ptr QTimerConst) ptr'
+  toQObjectConst (QTimerGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQTimerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTimer -> HoppyF.Ptr QTimerConst) ptr'
+
+instance M30.QObjectPtr QTimer where
+  toQObject (QTimer ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQTimerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTimer -> HoppyF.Ptr QTimerConst) ptr'
+  toQObject (QTimerGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.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 M30.QObject where
+  downToQTimer = castQTimerToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QTimerConst $ castQObjectToQTimer ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QTimerConstGc fptr' $ castQObjectToQTimer ptr'
+
+class QTimerSuperConst a where
+  downToQTimerConst :: a -> QTimerConst
+
+instance QTimerSuperConst M30.QObjectConst where
+  downToQTimerConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QTimerConst $ castQObjectToQTimer ptr'
+      cast' (M30.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,178 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M16
+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 M16.QEventConst
+foreign import ccall "gencast__QEvent__QTimerEvent" castQEventToQTimerEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QTimerEventConstPtr a => QTimerEventValue a where
+#else
+instance QTimerEventConstPtr a => QTimerEventValue a where
+#endif
+  withQTimerEventPtr = HoppyP.flip ($) . toQTimerEventConst
+
+class (M16.QEventConstPtr this) => QTimerEventConstPtr this where
+  toQTimerEventConst :: this -> QTimerEventConst
+
+timerId :: (QTimerEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+timerId arg'1 =
+  withQTimerEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (timerId' arg'1')
+
+class (QTimerEventConstPtr this, M16.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 M16.QEventConstPtr QTimerEventConst where
+  toQEventConst (QTimerEventConst ptr') = M16.QEventConst $ castQTimerEventToQEvent ptr'
+  toQEventConst (QTimerEventConstGc fptr' ptr') = M16.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 M16.QEventConstPtr QTimerEvent where
+  toQEventConst (QTimerEvent ptr') = M16.QEventConst $ castQTimerEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QTimerEvent -> HoppyF.Ptr QTimerEventConst) ptr'
+  toQEventConst (QTimerEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQTimerEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QTimerEvent -> HoppyF.Ptr QTimerEventConst) ptr'
+
+instance M16.QEventPtr QTimerEvent where
+  toQEvent (QTimerEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQTimerEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QTimerEvent -> HoppyF.Ptr QTimerEventConst) ptr'
+  toQEvent (QTimerEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQTimerEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QTimerEvent -> HoppyF.Ptr QTimerEventConst) ptr'
+
+new ::  HoppyP.Int -> HoppyP.IO QTimerEvent
+new arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  HoppyP.fmap QTimerEvent
+  (new' arg'1')
+
+class QTimerEventSuper a where
+  downToQTimerEvent :: a -> QTimerEvent
+
+instance QTimerEventSuper M16.QEvent where
+  downToQTimerEvent = castQTimerEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QTimerEventConst $ castQEventToQTimerEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QTimerEventConstGc fptr' $ castQEventToQTimerEvent ptr'
+
+class QTimerEventSuperConst a where
+  downToQTimerEventConst :: a -> QTimerEventConst
+
+instance QTimerEventSuperConst M16.QEventConst where
+  downToQTimerEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QTimerEventConst $ castQEventToQTimerEvent ptr'
+      cast' (M16.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/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,883 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QVariant (
+  QVariantValue (..),
+  QVariantConstPtr (..),
+  canConvert,
+  isNull,
+  isValid,
+  toBool,
+  toChar,
+  toDouble,
+  toFloat,
+  toInt,
+  toLongLong,
+  toPoint,
+  toPointF,
+  toRect,
+  toRectF,
+  toSize,
+  toSizeF,
+  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,
+  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 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.QChar as M8
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QList.QVariant as M72
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M36
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Core.QRectF as M40
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M42
+import qualified Graphics.UI.Qtah.Generated.Core.QSizeF as M44
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M48
+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' ::  HoppyFHR.CBool -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithChar" newWithChar' ::  HoppyF.Ptr M8.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 M72.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 M36.QPointFConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithPoint" newWithPoint' ::  HoppyF.Ptr M34.QPointConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithRectF" newWithRectF' ::  HoppyF.Ptr M40.QRectFConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithRect" newWithRect' ::  HoppyF.Ptr M38.QRectConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithSizeF" newWithSizeF' ::  HoppyF.Ptr M44.QSizeFConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithSize" newWithSize' ::  HoppyF.Ptr M42.QSizeConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithString" newWithString' ::  HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithStringList" newWithStringList' ::  HoppyF.Ptr M48.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 HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QVariant_isNull" isNull' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QVariant_isValid" isValid' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QVariant_setToBool" setToBool' ::  HoppyF.Ptr QVariant -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToChar" setToChar' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M8.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 M72.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 M34.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToPointF" setToPointF' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToRect" setToRect' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M38.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToRectF" setToRectF' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M40.QRectFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToSize" setToSize' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M42.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToSizeF" setToSizeF' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M44.QSizeFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToStringList" setToStringList' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M48.QStringListConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToString" setToString' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M46.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 HoppyFHR.CBool
+foreign import ccall "genpop__QVariant_toChar" toChar' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M8.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 M34.QPointConst)
+foreign import ccall "genpop__QVariant_toPointF" toPointF' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QVariant_toRect" toRect' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M38.QRectConst)
+foreign import ccall "genpop__QVariant_toRectF" toRectF' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M40.QRectFConst)
+foreign import ccall "genpop__QVariant_toSize" toSize' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M42.QSizeConst)
+foreign import ccall "genpop__QVariant_toSizeF" toSizeF' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M44.QSizeFConst)
+foreign import ccall "genpop__QVariant_toStringList" toStringList' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M48.QStringListConst)
+foreign import ccall "genpop__QVariant_toString" toString' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M46.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 HoppyFHR.CBool
+foreign import ccall "genpop__QVariant_NE" nE' ::  HoppyF.Ptr QVariantConst -> HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QVariant_LT" lT' ::  HoppyF.Ptr QVariantConst -> HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QVariant_LE" lE' ::  HoppyF.Ptr QVariantConst -> HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QVariant_GT" gT' ::  HoppyF.Ptr QVariantConst -> HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QVariant_GE" gE' ::  HoppyF.Ptr QVariantConst -> HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QVariantConstPtr a => QVariantValue a where
+#else
+instance QVariantConstPtr a => QVariantValue a where
+#endif
+  withQVariantPtr = HoppyP.flip ($) . toQVariantConst
+
+class (HoppyFHR.CppPtr this) => QVariantConstPtr this where
+  toQVariantConst :: this -> QVariantConst
+
+canConvert :: (QVariantValue arg'1) => arg'1 -> QVariantType -> HoppyP.IO HoppyP.Bool
+canConvert arg'1 arg'2 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  HoppyP.fmap (/= 0)
+  (canConvert' arg'1' arg'2')
+
+isNull :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isNull arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isNull' arg'1')
+
+isValid :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isValid arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isValid' arg'1')
+
+toBool :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+toBool arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (toBool' arg'1')
+
+toChar :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO QtahP.Char
+toChar arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M8.QCharConst) =<<
+  (toChar' arg'1')
+
+toDouble :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+toDouble arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (toDouble' arg'1')
+
+toFloat :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Float
+toFloat arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (toFloat' arg'1')
+
+toInt :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+toInt arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (toInt' arg'1')
+
+toLongLong :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO HoppyFC.CLLong
+toLongLong arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toLongLong' arg'1')
+
+toPoint :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+toPoint arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (toPoint' arg'1')
+
+toPointF :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+toPointF arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (toPointF' arg'1')
+
+toRect :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+toRect arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (toRect' arg'1')
+
+toRectF :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO M40.QRectF
+toRectF arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M40.QRectFConst) =<<
+  (toRectF' arg'1')
+
+toSize :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+toSize arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (toSize' arg'1')
+
+toSizeF :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO M44.QSizeF
+toSizeF arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M44.QSizeFConst) =<<
+  (toSizeF' arg'1')
+
+toStringList :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO [QtahP.String]
+toStringList arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M48.QStringListConst) =<<
+  (toStringList' arg'1')
+
+toString :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+toString arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (toString' arg'1')
+
+toUInt :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO HoppyFC.CUInt
+toUInt arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toUInt' arg'1')
+
+toULongLong :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO HoppyFC.CULLong
+toULongLong arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toULongLong' arg'1')
+
+getType :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO QVariantType
+getType arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (getType' arg'1')
+
+userType :: (QVariantValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+userType arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (userType' arg'1')
+
+eQ :: (QVariantValue arg'1, QVariantValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QVariantValue arg'1, QVariantValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+lT :: (QVariantValue arg'1, QVariantValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (lT' arg'1' arg'2')
+
+lE :: (QVariantValue arg'1, QVariantValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (lE' arg'1' arg'2')
+
+gT :: (QVariantValue arg'1, QVariantValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (gT' arg'1' arg'2')
+
+gE :: (QVariantValue arg'1, QVariantValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (gE' arg'1' arg'2')
+
+class (QVariantConstPtr this) => QVariantPtr this where
+  toQVariant :: this -> QVariant
+
+clear :: (QVariantPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+convert :: (QVariantPtr arg'1) => arg'1 -> QVariantType -> HoppyP.IO HoppyP.Bool
+convert arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  HoppyP.fmap (/= 0)
+  (convert' arg'1' arg'2')
+
+setToBool :: (QVariantPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setToBool arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setToBool' arg'1' arg'2')
+
+setToChar :: (QVariantPtr arg'1, M8.QCharValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setToChar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M8.withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToChar' arg'1' arg'2')
+
+setToDouble :: (QVariantPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setToDouble arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setToDouble' arg'1' arg'2')
+
+setToFloat :: (QVariantPtr arg'1) => arg'1 -> HoppyP.Float -> HoppyP.IO ()
+setToFloat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setToFloat' arg'1' arg'2')
+
+setToInt :: (QVariantPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setToInt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setToInt' arg'1' arg'2')
+
+setToList :: (QVariantPtr arg'1, M72.QListQVariantValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setToList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M72.withQListQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToList' arg'1' arg'2')
+
+setToLongLong :: (QVariantPtr arg'1) => arg'1 -> 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 arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setToPoint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToPoint' arg'1' arg'2')
+
+setToPointF :: (QVariantPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setToPointF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToPointF' arg'1' arg'2')
+
+setToRect :: (QVariantPtr arg'1, M38.QRectValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setToRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M38.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToRect' arg'1' arg'2')
+
+setToRectF :: (QVariantPtr arg'1, M40.QRectFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setToRectF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M40.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToRectF' arg'1' arg'2')
+
+setToSize :: (QVariantPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setToSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToSize' arg'1' arg'2')
+
+setToSizeF :: (QVariantPtr arg'1, M44.QSizeFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setToSizeF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M44.withQSizeFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToSizeF' arg'1' arg'2')
+
+setToStringList :: (QVariantPtr arg'1, M48.QStringListValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setToStringList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M48.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToStringList' arg'1' arg'2')
+
+setToString :: (QVariantPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setToString arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToString' arg'1' arg'2')
+
+setToUInt :: (QVariantPtr arg'1) => arg'1 -> 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 arg'1) => arg'1 -> 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 arg'1, QVariantPtr arg'2) => arg'1 -> 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 arg'1, QVariantValue arg'2) => arg'1 -> 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 =
+  let arg'1' = if arg'1 then 1 else 0 in
+  HoppyP.fmap QVariant
+  (newWithBool' arg'1')
+
+newWithChar :: (M8.QCharValue arg'1) => arg'1 -> HoppyP.IO QVariant
+newWithChar arg'1 =
+  M8.withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithChar' arg'1')
+
+newWithDouble ::  HoppyP.Double -> HoppyP.IO QVariant
+newWithDouble arg'1 =
+  let arg'1' = HoppyP.realToFrac arg'1 in
+  HoppyP.fmap QVariant
+  (newWithDouble' arg'1')
+
+newWithFloat ::  HoppyP.Float -> HoppyP.IO QVariant
+newWithFloat arg'1 =
+  let arg'1' = HoppyP.realToFrac arg'1 in
+  HoppyP.fmap QVariant
+  (newWithFloat' arg'1')
+
+newWithInt ::  HoppyP.Int -> HoppyP.IO QVariant
+newWithInt arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  HoppyP.fmap QVariant
+  (newWithInt' arg'1')
+
+newWithList :: (M72.QListQVariantValue arg'1) => arg'1 -> HoppyP.IO QVariant
+newWithList arg'1 =
+  M72.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 :: (M36.QPointFValue arg'1) => arg'1 -> HoppyP.IO QVariant
+newWithPointF arg'1 =
+  M36.withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithPointF' arg'1')
+
+newWithPoint :: (M34.QPointValue arg'1) => arg'1 -> HoppyP.IO QVariant
+newWithPoint arg'1 =
+  M34.withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithPoint' arg'1')
+
+newWithRectF :: (M40.QRectFValue arg'1) => arg'1 -> HoppyP.IO QVariant
+newWithRectF arg'1 =
+  M40.withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithRectF' arg'1')
+
+newWithRect :: (M38.QRectValue arg'1) => arg'1 -> HoppyP.IO QVariant
+newWithRect arg'1 =
+  M38.withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithRect' arg'1')
+
+newWithSizeF :: (M44.QSizeFValue arg'1) => arg'1 -> HoppyP.IO QVariant
+newWithSizeF arg'1 =
+  M44.withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithSizeF' arg'1')
+
+newWithSize :: (M42.QSizeValue arg'1) => arg'1 -> HoppyP.IO QVariant
+newWithSize arg'1 =
+  M42.withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithSize' arg'1')
+
+newWithString :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO QVariant
+newWithString arg'1 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithString' arg'1')
+
+newWithStringList :: (M48.QStringListValue arg'1) => arg'1 -> HoppyP.IO QVariant
+newWithStringList arg'1 =
+  M48.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithStringList' arg'1')
+
+newWithType ::  QVariantType -> HoppyP.IO QVariant
+newWithType arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QVariantType where
+  fromEnum Invalid = 0
+  fromEnum BitArray = 13
+  fromEnum Bitmap = 73
+  fromEnum Bool = 1
+  fromEnum Brush = 66
+  fromEnum ByteArray = 12
+  fromEnum Char = 7
+  fromEnum Color = 67
+  fromEnum Cursor = 74
+  fromEnum Date = 14
+  fromEnum DateTime = 16
+  fromEnum Double = 6
+  fromEnum EasingCurve = 29
+  fromEnum Font = 64
+  fromEnum Hash = 28
+  fromEnum Icon = 69
+  fromEnum Image = 70
+  fromEnum Int = 2
+  fromEnum KeySequence = 76
+  fromEnum Line = 23
+  fromEnum LineF = 24
+  fromEnum List = 9
+  fromEnum Locale = 18
+  fromEnum LongLong = 4
+  fromEnum Map = 8
+  fromEnum Matrix = 80
+  fromEnum Transform = 81
+  fromEnum Matrix4x4 = 82
+  fromEnum Palette = 68
+  fromEnum Pen = 77
+  fromEnum Pixmap = 65
+  fromEnum Point = 25
+  fromEnum PointF = 26
+  fromEnum Polygon = 71
+  fromEnum Quaternion = 86
+  fromEnum Rect = 19
+  fromEnum RectF = 20
+  fromEnum RegExp = 27
+  fromEnum Region = 72
+  fromEnum Size = 21
+  fromEnum SizeF = 22
+  fromEnum SizePolicy = 75
+  fromEnum String = 10
+  fromEnum StringList = 11
+  fromEnum TextFormat = 79
+  fromEnum TextLength = 78
+  fromEnum Time = 15
+  fromEnum UInt = 3
+  fromEnum ULongLong = 5
+  fromEnum Url = 17
+  fromEnum Vector2d = 83
+  fromEnum Vector3d = 84
+  fromEnum Vector4d = 85
+  fromEnum UserType = 127
+  
+  toEnum (0) = Invalid
+  toEnum (13) = BitArray
+  toEnum (73) = Bitmap
+  toEnum (1) = Bool
+  toEnum (66) = Brush
+  toEnum (12) = ByteArray
+  toEnum (7) = Char
+  toEnum (67) = Color
+  toEnum (74) = Cursor
+  toEnum (14) = Date
+  toEnum (16) = DateTime
+  toEnum (6) = Double
+  toEnum (29) = EasingCurve
+  toEnum (64) = Font
+  toEnum (28) = Hash
+  toEnum (69) = Icon
+  toEnum (70) = Image
+  toEnum (2) = Int
+  toEnum (76) = KeySequence
+  toEnum (23) = Line
+  toEnum (24) = LineF
+  toEnum (9) = List
+  toEnum (18) = Locale
+  toEnum (4) = LongLong
+  toEnum (8) = Map
+  toEnum (80) = Matrix
+  toEnum (81) = Transform
+  toEnum (82) = Matrix4x4
+  toEnum (68) = Palette
+  toEnum (77) = Pen
+  toEnum (65) = Pixmap
+  toEnum (25) = Point
+  toEnum (26) = PointF
+  toEnum (71) = Polygon
+  toEnum (86) = Quaternion
+  toEnum (19) = Rect
+  toEnum (20) = RectF
+  toEnum (27) = RegExp
+  toEnum (72) = Region
+  toEnum (21) = Size
+  toEnum (22) = SizeF
+  toEnum (75) = SizePolicy
+  toEnum (10) = String
+  toEnum (11) = StringList
+  toEnum (79) = TextFormat
+  toEnum (78) = TextLength
+  toEnum (15) = Time
+  toEnum (3) = UInt
+  toEnum (5) = ULongLong
+  toEnum (17) = Url
+  toEnum (83) = Vector2d
+  toEnum (84) = Vector3d
+  toEnum (85) = Vector4d
+  toEnum (127) = UserType
+  toEnum n' = HoppyP.error $ "Unknown QVariantType numeric value: " ++ HoppyP.show n'
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,75 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Hoppy.Runtime as HoppyFHR
+import qualified Prelude as HoppyP
+
+
+class QVariantValue a where
+  withQVariantPtr :: a -> (QVariantConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QVariantConstPtr a => QVariantValue a
+#else
+instance QVariantConstPtr a => QVariantValue a
+#endif
+
+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 HoppyP.Bounded QVariantType
+instance HoppyP.Enum QVariantType
+instance HoppyP.Eq QVariantType
+instance HoppyP.Ord QVariantType
+instance HoppyP.Show QVariantType
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QVector/Int.hs b/src/Graphics/UI/Qtah/Generated/Core/QVector/Int.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QVector/Int.hs
@@ -0,0 +1,599 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 HoppyFHR.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 HoppyFHR.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 HoppyFHR.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 HoppyFHR.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 HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QVectorIntConstPtr a => QVectorIntValue a where
+#else
+instance QVectorIntConstPtr a => QVectorIntValue a where
+#endif
+  withQVectorIntPtr = HoppyP.flip ($) . toQVectorIntConst
+
+class (HoppyFHR.CppPtr this) => QVectorIntConstPtr this where
+  toQVectorIntConst :: this -> QVectorIntConst
+
+atConst :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+atConst arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (atConst' arg'1' arg'2')
+
+capacity :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+capacity arg'1 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (capacity' arg'1')
+
+contains :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+contains arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap (/= 0)
+  (contains' arg'1' arg'2')
+
+count :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+count arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1' arg'2')
+
+arrayConst :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+arrayConst arg'1 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (arrayConst' arg'1')
+
+endsWith :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+endsWith arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap (/= 0)
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+firstConst arg'1 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (firstConst' arg'1')
+
+get :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+get arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (get' arg'1' arg'2')
+
+indexOf :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+indexOf arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+lastConst :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+lastConst arg'1 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (lastConst' arg'1')
+
+lastIndexOf :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+lastIndexOf arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QVectorInt
+mid arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorInt
+  (mid' arg'1' arg'2')
+
+midLength :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QVectorInt
+midLength arg'1 arg'2 arg'3 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorInt
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+size arg'1 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (size' arg'1')
+
+startsWith :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+startsWith arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap (/= 0)
+  (startsWith' arg'1' arg'2')
+
+value :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+value arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (value' arg'1' arg'2')
+
+valueOr :: (QVectorIntValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+valueOr arg'1 arg'2 arg'3 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QVectorIntValue arg'1, QVectorIntValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (append' arg'1' arg'2')
+
+appendVector :: (QVectorIntPtr arg'1, QVectorIntValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (at' arg'1' arg'2')
+
+clear :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+array :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+array arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (array' arg'1')
+
+fill :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+fill arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (fill' arg'1' arg'2')
+
+fillResize :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+fillResize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (fillResize' arg'1' arg'2' arg'3')
+
+first :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+first arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (first' arg'1')
+
+insert :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (insert' arg'1' arg'2' arg'3')
+
+insertMany :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+insertMany arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  (insertMany' arg'1' arg'2' arg'3' arg'4')
+
+last :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+last arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (last' arg'1')
+
+prepend :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (prepend' arg'1' arg'2')
+
+remove :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+remove arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (remove' arg'1' arg'2')
+
+removeMany :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+removeMany arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (removeMany' arg'1' arg'2' arg'3')
+
+removeAll :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (removeAll' arg'1' arg'2')
+
+removeFirst :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap (/= 0)
+  (removeOne' arg'1' arg'2')
+
+replace :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (reserve' arg'1' arg'2')
+
+resize :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (resize' arg'1' arg'2')
+
+squeeze :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.IO ()
+squeeze arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (squeeze' arg'1')
+
+swap :: (QVectorIntPtr arg'1, QVectorIntPtr arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (takeFirst' arg'1')
+
+takeLast :: (QVectorIntPtr arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (takeLast' arg'1')
+
+aSSIGN :: (QVectorIntPtr arg'1, QVectorIntValue arg'2) => arg'1 -> 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 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  HoppyP.fmap QVectorInt
+  (newWithSize' arg'1')
+
+newWithSizeAndValue ::  HoppyP.Int -> HoppyP.Int -> HoppyP.IO QVectorInt
+newWithSizeAndValue arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  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/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,609 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M34
+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 M34.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 M34.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 M34.QPoint)
+foreign import ccall "genpop__QVectorQPoint_atConst" atConst' ::  HoppyF.Ptr QVectorQPointConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M34.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 M34.QPointConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QVectorQPoint_count" count' ::  HoppyF.Ptr QVectorQPointConst -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPoint_array" array' ::  HoppyF.Ptr QVectorQPoint -> HoppyP.IO (HoppyF.Ptr M34.QPoint)
+foreign import ccall "genpop__QVectorQPoint_arrayConst" arrayConst' ::  HoppyF.Ptr QVectorQPointConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_endsWith" endsWith' ::  HoppyF.Ptr QVectorQPointConst -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QVectorQPoint_fill" fill' ::  HoppyF.Ptr QVectorQPoint -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_fillResize" fillResize' ::  HoppyF.Ptr QVectorQPoint -> HoppyF.Ptr M34.QPointConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_first" first' ::  HoppyF.Ptr QVectorQPoint -> HoppyP.IO (HoppyF.Ptr M34.QPoint)
+foreign import ccall "genpop__QVectorQPoint_firstConst" firstConst' ::  HoppyF.Ptr QVectorQPointConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_get" get' ::  HoppyF.Ptr QVectorQPointConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_indexOf" indexOf' ::  HoppyF.Ptr QVectorQPointConst -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPoint_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QVectorQPointConst -> HoppyF.Ptr M34.QPointConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPoint_insert" insert' ::  HoppyF.Ptr QVectorQPoint -> HoppyFC.CInt -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_insertMany" insertMany' ::  HoppyF.Ptr QVectorQPoint -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_isEmpty" isEmpty' ::  HoppyF.Ptr QVectorQPointConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QVectorQPoint_last" last' ::  HoppyF.Ptr QVectorQPoint -> HoppyP.IO (HoppyF.Ptr M34.QPoint)
+foreign import ccall "genpop__QVectorQPoint_lastConst" lastConst' ::  HoppyF.Ptr QVectorQPointConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QVectorQPointConst -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPoint_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QVectorQPointConst -> HoppyF.Ptr M34.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 M34.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 M34.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 M34.QPointConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QVectorQPoint_replace" replace' ::  HoppyF.Ptr QVectorQPoint -> HoppyFC.CInt -> HoppyF.Ptr M34.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 M34.QPointConst -> HoppyP.IO HoppyFHR.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 M34.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_takeFirst" takeFirst' ::  HoppyF.Ptr QVectorQPoint -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_takeLast" takeLast' ::  HoppyF.Ptr QVectorQPoint -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_value" value' ::  HoppyF.Ptr QVectorQPointConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_valueOr" valueOr' ::  HoppyF.Ptr QVectorQPointConst -> HoppyFC.CInt -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M34.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QVectorQPointConstPtr a => QVectorQPointValue a where
+#else
+instance QVectorQPointConstPtr a => QVectorQPointValue a where
+#endif
+  withQVectorQPointPtr = HoppyP.flip ($) . toQVectorQPointConst
+
+class (HoppyFHR.CppPtr this) => QVectorQPointConstPtr this where
+  toQVectorQPointConst :: this -> QVectorQPointConst
+
+atConst :: (QVectorQPointValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M34.QPointConst
+atConst arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M34.QPointConst
+  (atConst' arg'1' arg'2')
+
+capacity :: (QVectorQPointValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+capacity arg'1 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (capacity' arg'1')
+
+contains :: (QVectorQPointValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+contains arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (contains' arg'1' arg'2')
+
+count :: (QVectorQPointValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+count arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1' arg'2')
+
+arrayConst :: (QVectorQPointValue arg'1) => arg'1 -> HoppyP.IO M34.QPointConst
+arrayConst arg'1 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M34.QPointConst
+  (arrayConst' arg'1')
+
+endsWith :: (QVectorQPointValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+endsWith arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QVectorQPointValue arg'1) => arg'1 -> HoppyP.IO M34.QPointConst
+firstConst arg'1 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M34.QPointConst
+  (firstConst' arg'1')
+
+get :: (QVectorQPointValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HPoint.HPoint
+get arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QVectorQPointValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+indexOf arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QVectorQPointValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QVectorQPointValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+lastConst :: (QVectorQPointValue arg'1) => arg'1 -> HoppyP.IO M34.QPointConst
+lastConst arg'1 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M34.QPointConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QVectorQPointValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+lastIndexOf arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QVectorQPointValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QVectorQPointValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QVectorQPoint
+mid arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQPoint
+  (mid' arg'1' arg'2')
+
+midLength :: (QVectorQPointValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QVectorQPoint
+midLength arg'1 arg'2 arg'3 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQPoint
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QVectorQPointValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+size arg'1 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (size' arg'1')
+
+startsWith :: (QVectorQPointValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+startsWith arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (startsWith' arg'1' arg'2')
+
+value :: (QVectorQPointValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HPoint.HPoint
+value arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QVectorQPointValue arg'1, M34.QPointValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO HPoint.HPoint
+valueOr arg'1 arg'2 arg'3 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M34.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QVectorQPointValue arg'1, QVectorQPointValue arg'2) => arg'1 -> 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 arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendVector :: (QVectorQPointPtr arg'1, QVectorQPointValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M34.QPoint
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M34.QPoint
+  (at' arg'1' arg'2')
+
+clear :: (QVectorQPointPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+array :: (QVectorQPointPtr arg'1) => arg'1 -> HoppyP.IO M34.QPoint
+array arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  HoppyP.fmap M34.QPoint
+  (array' arg'1')
+
+fill :: (QVectorQPointPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+fill arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fill' arg'1' arg'2')
+
+fillResize :: (QVectorQPointPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO ()
+fillResize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (fillResize' arg'1' arg'2' arg'3')
+
+first :: (QVectorQPointPtr arg'1) => arg'1 -> HoppyP.IO M34.QPoint
+first arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  HoppyP.fmap M34.QPoint
+  (first' arg'1')
+
+insert :: (QVectorQPointPtr arg'1, M34.QPointValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M34.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+insertMany :: (QVectorQPointPtr arg'1, M34.QPointValue arg'4) => arg'1 -> HoppyP.Int -> HoppyP.Int -> arg'4 -> HoppyP.IO ()
+insertMany arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  M34.withQPointPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (insertMany' arg'1' arg'2' arg'3' arg'4')
+
+last :: (QVectorQPointPtr arg'1) => arg'1 -> HoppyP.IO M34.QPoint
+last arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  HoppyP.fmap M34.QPoint
+  (last' arg'1')
+
+prepend :: (QVectorQPointPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+remove :: (QVectorQPointPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+remove arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (remove' arg'1' arg'2')
+
+removeMany :: (QVectorQPointPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+removeMany arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (removeMany' arg'1' arg'2' arg'3')
+
+removeAll :: (QVectorQPointPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (removeAll' arg'1' arg'2')
+
+removeFirst :: (QVectorQPointPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QVectorQPointPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QVectorQPointPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (removeOne' arg'1' arg'2')
+
+replace :: (QVectorQPointPtr arg'1, M34.QPointValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M34.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QVectorQPointPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (reserve' arg'1' arg'2')
+
+resize :: (QVectorQPointPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (resize' arg'1' arg'2')
+
+squeeze :: (QVectorQPointPtr arg'1) => arg'1 -> HoppyP.IO ()
+squeeze arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (squeeze' arg'1')
+
+swap :: (QVectorQPointPtr arg'1, QVectorQPointPtr arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HPoint.HPoint
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QVectorQPointPtr arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QVectorQPointPtr arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QVectorQPointPtr arg'1, QVectorQPointValue arg'2) => arg'1 -> 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 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  HoppyP.fmap QVectorQPoint
+  (newWithSize' arg'1')
+
+newWithSizeAndValue :: (M34.QPointValue arg'2) => HoppyP.Int -> arg'2 -> HoppyP.IO QVectorQPoint
+newWithSizeAndValue arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  M34.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,609 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M36
+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 M36.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 M36.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 M36.QPointF)
+foreign import ccall "genpop__QVectorQPointF_atConst" atConst' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M36.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 M36.QPointFConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QVectorQPointF_count" count' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPointF_array" array' ::  HoppyF.Ptr QVectorQPointF -> HoppyP.IO (HoppyF.Ptr M36.QPointF)
+foreign import ccall "genpop__QVectorQPointF_arrayConst" arrayConst' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_endsWith" endsWith' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QVectorQPointF_fill" fill' ::  HoppyF.Ptr QVectorQPointF -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_fillResize" fillResize' ::  HoppyF.Ptr QVectorQPointF -> HoppyF.Ptr M36.QPointFConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_first" first' ::  HoppyF.Ptr QVectorQPointF -> HoppyP.IO (HoppyF.Ptr M36.QPointF)
+foreign import ccall "genpop__QVectorQPointF_firstConst" firstConst' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_get" get' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_indexOf" indexOf' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPointF_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPointF_insert" insert' ::  HoppyF.Ptr QVectorQPointF -> HoppyFC.CInt -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_insertMany" insertMany' ::  HoppyF.Ptr QVectorQPointF -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_isEmpty" isEmpty' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QVectorQPointF_last" last' ::  HoppyF.Ptr QVectorQPointF -> HoppyP.IO (HoppyF.Ptr M36.QPointF)
+foreign import ccall "genpop__QVectorQPointF_lastConst" lastConst' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPointF_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyF.Ptr M36.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 M36.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 M36.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 M36.QPointFConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QVectorQPointF_replace" replace' ::  HoppyF.Ptr QVectorQPointF -> HoppyFC.CInt -> HoppyF.Ptr M36.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 M36.QPointFConst -> HoppyP.IO HoppyFHR.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 M36.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_takeFirst" takeFirst' ::  HoppyF.Ptr QVectorQPointF -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_takeLast" takeLast' ::  HoppyF.Ptr QVectorQPointF -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_value" value' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_valueOr" valueOr' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyFC.CInt -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO (HoppyF.Ptr M36.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QVectorQPointFConstPtr a => QVectorQPointFValue a where
+#else
+instance QVectorQPointFConstPtr a => QVectorQPointFValue a where
+#endif
+  withQVectorQPointFPtr = HoppyP.flip ($) . toQVectorQPointFConst
+
+class (HoppyFHR.CppPtr this) => QVectorQPointFConstPtr this where
+  toQVectorQPointFConst :: this -> QVectorQPointFConst
+
+atConst :: (QVectorQPointFValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M36.QPointFConst
+atConst arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M36.QPointFConst
+  (atConst' arg'1' arg'2')
+
+capacity :: (QVectorQPointFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+capacity arg'1 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (capacity' arg'1')
+
+contains :: (QVectorQPointFValue arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+contains arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (contains' arg'1' arg'2')
+
+count :: (QVectorQPointFValue arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+count arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1' arg'2')
+
+arrayConst :: (QVectorQPointFValue arg'1) => arg'1 -> HoppyP.IO M36.QPointFConst
+arrayConst arg'1 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M36.QPointFConst
+  (arrayConst' arg'1')
+
+endsWith :: (QVectorQPointFValue arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+endsWith arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QVectorQPointFValue arg'1) => arg'1 -> HoppyP.IO M36.QPointFConst
+firstConst arg'1 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M36.QPointFConst
+  (firstConst' arg'1')
+
+get :: (QVectorQPointFValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HPointF.HPointF
+get arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QVectorQPointFValue arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+indexOf arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QVectorQPointFValue arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QVectorQPointFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+lastConst :: (QVectorQPointFValue arg'1) => arg'1 -> HoppyP.IO M36.QPointFConst
+lastConst arg'1 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M36.QPointFConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QVectorQPointFValue arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+lastIndexOf arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QVectorQPointFValue arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QVectorQPointFValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QVectorQPointF
+mid arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQPointF
+  (mid' arg'1' arg'2')
+
+midLength :: (QVectorQPointFValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QVectorQPointF
+midLength arg'1 arg'2 arg'3 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQPointF
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QVectorQPointFValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+size arg'1 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (size' arg'1')
+
+startsWith :: (QVectorQPointFValue arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+startsWith arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (startsWith' arg'1' arg'2')
+
+value :: (QVectorQPointFValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HPointF.HPointF
+value arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QVectorQPointFValue arg'1, M36.QPointFValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO HPointF.HPointF
+valueOr arg'1 arg'2 arg'3 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M36.withQPointFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QVectorQPointFValue arg'1, QVectorQPointFValue arg'2) => arg'1 -> 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 arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendVector :: (QVectorQPointFPtr arg'1, QVectorQPointFValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M36.QPointF
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M36.QPointF
+  (at' arg'1' arg'2')
+
+clear :: (QVectorQPointFPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+array :: (QVectorQPointFPtr arg'1) => arg'1 -> HoppyP.IO M36.QPointF
+array arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  HoppyP.fmap M36.QPointF
+  (array' arg'1')
+
+fill :: (QVectorQPointFPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+fill arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fill' arg'1' arg'2')
+
+fillResize :: (QVectorQPointFPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO ()
+fillResize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (fillResize' arg'1' arg'2' arg'3')
+
+first :: (QVectorQPointFPtr arg'1) => arg'1 -> HoppyP.IO M36.QPointF
+first arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  HoppyP.fmap M36.QPointF
+  (first' arg'1')
+
+insert :: (QVectorQPointFPtr arg'1, M36.QPointFValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M36.withQPointFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+insertMany :: (QVectorQPointFPtr arg'1, M36.QPointFValue arg'4) => arg'1 -> HoppyP.Int -> HoppyP.Int -> arg'4 -> HoppyP.IO ()
+insertMany arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  M36.withQPointFPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (insertMany' arg'1' arg'2' arg'3' arg'4')
+
+last :: (QVectorQPointFPtr arg'1) => arg'1 -> HoppyP.IO M36.QPointF
+last arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  HoppyP.fmap M36.QPointF
+  (last' arg'1')
+
+prepend :: (QVectorQPointFPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+remove :: (QVectorQPointFPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+remove arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (remove' arg'1' arg'2')
+
+removeMany :: (QVectorQPointFPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+removeMany arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (removeMany' arg'1' arg'2' arg'3')
+
+removeAll :: (QVectorQPointFPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (removeAll' arg'1' arg'2')
+
+removeFirst :: (QVectorQPointFPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QVectorQPointFPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QVectorQPointFPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (removeOne' arg'1' arg'2')
+
+replace :: (QVectorQPointFPtr arg'1, M36.QPointFValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M36.withQPointFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QVectorQPointFPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (reserve' arg'1' arg'2')
+
+resize :: (QVectorQPointFPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (resize' arg'1' arg'2')
+
+squeeze :: (QVectorQPointFPtr arg'1) => arg'1 -> HoppyP.IO ()
+squeeze arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (squeeze' arg'1')
+
+swap :: (QVectorQPointFPtr arg'1, QVectorQPointFPtr arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HPointF.HPointF
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QVectorQPointFPtr arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QVectorQPointFPtr arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QVectorQPointFPtr arg'1, QVectorQPointFValue arg'2) => arg'1 -> 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 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  HoppyP.fmap QVectorQPointF
+  (newWithSize' arg'1')
+
+newWithSizeAndValue :: (M36.QPointFValue arg'2) => HoppyP.Int -> arg'2 -> HoppyP.IO QVectorQPointF
+newWithSizeAndValue arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  M36.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QVector/QRgb.hs
@@ -0,0 +1,593 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 HoppyFHR.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 HoppyFHR.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 HoppyFHR.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 HoppyFHR.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 HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QVectorQRgbConstPtr a => QVectorQRgbValue a where
+#else
+instance QVectorQRgbConstPtr a => QVectorQRgbValue a where
+#endif
+  withQVectorQRgbPtr = HoppyP.flip ($) . toQVectorQRgbConst
+
+class (HoppyFHR.CppPtr this) => QVectorQRgbConstPtr this where
+  toQVectorQRgbConst :: this -> QVectorQRgbConst
+
+atConst :: (QVectorQRgbValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt)
+atConst arg'1 arg'2 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (atConst' arg'1' arg'2')
+
+capacity :: (QVectorQRgbValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+capacity arg'1 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (capacity' arg'1')
+
+contains :: (QVectorQRgbValue arg'1) => arg'1 -> 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.fmap (/= 0)
+  (contains' arg'1' arg'2')
+
+count :: (QVectorQRgbValue arg'1) => arg'1 -> 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.fmap HoppyFHR.coerceIntegral
+  (count' arg'1' arg'2')
+
+arrayConst :: (QVectorQRgbValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt)
+arrayConst arg'1 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (arrayConst' arg'1')
+
+endsWith :: (QVectorQRgbValue arg'1) => arg'1 -> 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.fmap (/= 0)
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QVectorQRgbValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt)
+firstConst arg'1 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (firstConst' arg'1')
+
+get :: (QVectorQRgbValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyFC.CUInt
+get arg'1 arg'2 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (get' arg'1' arg'2')
+
+indexOf :: (QVectorQRgbValue arg'1) => arg'1 -> 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.fmap HoppyFHR.coerceIntegral
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QVectorQRgbValue arg'1) => arg'1 -> 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
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QVectorQRgbValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+lastConst :: (QVectorQRgbValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt)
+lastConst arg'1 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (lastConst' arg'1')
+
+lastIndexOf :: (QVectorQRgbValue arg'1) => arg'1 -> 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.fmap HoppyFHR.coerceIntegral
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QVectorQRgbValue arg'1) => arg'1 -> 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
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QVectorQRgbValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QVectorQRgb
+mid arg'1 arg'2 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQRgb
+  (mid' arg'1' arg'2')
+
+midLength :: (QVectorQRgbValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QVectorQRgb
+midLength arg'1 arg'2 arg'3 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQRgb
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QVectorQRgbValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+size arg'1 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (size' arg'1')
+
+startsWith :: (QVectorQRgbValue arg'1) => arg'1 -> 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.fmap (/= 0)
+  (startsWith' arg'1' arg'2')
+
+value :: (QVectorQRgbValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyFC.CUInt
+value arg'1 arg'2 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (value' arg'1' arg'2')
+
+valueOr :: (QVectorQRgbValue arg'1) => arg'1 -> HoppyP.Int -> HoppyFC.CUInt -> HoppyP.IO HoppyFC.CUInt
+valueOr arg'1 arg'2 arg'3 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = arg'3 in
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QVectorQRgbValue arg'1, QVectorQRgbValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> 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 arg'1, QVectorQRgbValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt)
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (at' arg'1' arg'2')
+
+clear :: (QVectorQRgbPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+array :: (QVectorQRgbPtr arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt)
+array arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (array' arg'1')
+
+fill :: (QVectorQRgbPtr arg'1) => arg'1 -> 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 arg'1) => arg'1 -> 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
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (fillResize' arg'1' arg'2' arg'3')
+
+first :: (QVectorQRgbPtr arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt)
+first arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (first' arg'1')
+
+insert :: (QVectorQRgbPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyFC.CUInt -> HoppyP.IO ()
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = arg'3 in
+  (insert' arg'1' arg'2' arg'3')
+
+insertMany :: (QVectorQRgbPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyFC.CUInt -> HoppyP.IO ()
+insertMany arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = arg'4 in
+  (insertMany' arg'1' arg'2' arg'3' arg'4')
+
+last :: (QVectorQRgbPtr arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt)
+last arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (last' arg'1')
+
+prepend :: (QVectorQRgbPtr arg'1) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+remove arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (remove' arg'1' arg'2')
+
+removeMany :: (QVectorQRgbPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+removeMany arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (removeMany' arg'1' arg'2' arg'3')
+
+removeAll :: (QVectorQRgbPtr arg'1) => arg'1 -> 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.fmap HoppyFHR.coerceIntegral
+  (removeAll' arg'1' arg'2')
+
+removeFirst :: (QVectorQRgbPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QVectorQRgbPtr arg'1) => arg'1 -> HoppyP.IO ()
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QVectorQRgbPtr arg'1) => arg'1 -> 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.fmap (/= 0)
+  (removeOne' arg'1' arg'2')
+
+replace :: (QVectorQRgbPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyFC.CUInt -> HoppyP.IO ()
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = arg'3 in
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QVectorQRgbPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (reserve' arg'1' arg'2')
+
+resize :: (QVectorQRgbPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (resize' arg'1' arg'2')
+
+squeeze :: (QVectorQRgbPtr arg'1) => arg'1 -> HoppyP.IO ()
+squeeze arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (squeeze' arg'1')
+
+swap :: (QVectorQRgbPtr arg'1, QVectorQRgbPtr arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyFC.CUInt
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QVectorQRgbPtr arg'1) => arg'1 -> HoppyP.IO HoppyFC.CUInt
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (takeFirst' arg'1')
+
+takeLast :: (QVectorQRgbPtr arg'1) => arg'1 -> HoppyP.IO HoppyFC.CUInt
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (takeLast' arg'1')
+
+aSSIGN :: (QVectorQRgbPtr arg'1, QVectorQRgbValue arg'2) => arg'1 -> 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 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  HoppyP.fmap QVectorQRgb
+  (newWithSize' arg'1')
+
+newWithSizeAndValue ::  HoppyP.Int -> HoppyFC.CUInt -> HoppyP.IO QVectorQRgb
+newWithSizeAndValue arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  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/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,1829 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.Types (
+  QtAlignment (..),
+  IsQtAlignment (..),
+  alignLeft,
+  alignRight,
+  alignHCenter,
+  alignJustify,
+  alignTop,
+  alignBottom,
+  alignVCenter,
+  alignAbsolute,
+  QtAlignmentFlag (..),
+  QtAspectRatioMode (..),
+  QtBrushStyle (..),
+  QtCaseSensitivity (..),
+  QtCheckState (..),
+  QtCorner (..),
+  QtCursorMoveStyle (..),
+  QtDropAction (..),
+  QtDropActions (..),
+  IsQtDropActions (..),
+  ignoreAction,
+  copyAction,
+  moveAction,
+  linkAction,
+  actionMask,
+  targetMoveAction,
+  QtEventPriority (..),
+  QtFillRule (..),
+  QtFocusReason (..),
+  QtGlobalColor (..),
+  QtImageConversionFlag (..),
+  QtImageConversionFlags (..),
+  IsQtImageConversionFlags (..),
+  auto,
+  colorOnly,
+  monoOnly,
+  orderedDither,
+  thresholdDither,
+  orderedAlphaDither,
+  diffuseAlphaDither,
+  preferDither,
+  avoidDither,
+  noOpaqueDetection,
+  noFormatConversion,
+  QtInputMethodHint (..),
+  QtInputMethodHints (..),
+  IsQtInputMethodHints (..),
+  imhNone,
+  imhHiddenText,
+  imhSensitiveData,
+  imhNoAutoUppercase,
+  imhPreferNumbers,
+  imhPreferUppercase,
+  imhPreferLowercase,
+  imhNoPredictiveText,
+  imhDate,
+  imhTime,
+  imhPreferLatin,
+  imhMultiLine,
+  imhDigitsOnly,
+  imhFormattedNumbersOnly,
+  imhUppercaseOnly,
+  imhLowercaseOnly,
+  imhDialableCharactersOnly,
+  imhEmailCharactersOnly,
+  imhUrlCharactersOnly,
+  imhLatinOnly,
+  imhExclusiveInputMask,
+  QtItemDataRole (..),
+  QtItemFlag (..),
+  QtItemFlags (..),
+  IsQtItemFlags (..),
+  noItemFlags,
+  itemIsSelectable,
+  itemIsEditable,
+  itemIsDragEnabled,
+  itemIsDropEnabled,
+  itemIsUserCheckable,
+  itemIsEnabled,
+  itemIsAutoTristate,
+  itemNeverHasChildren,
+  itemIsUserTristate,
+  QtKey (..),
+  QtKeyboardModifier (..),
+  QtKeyboardModifiers (..),
+  IsQtKeyboardModifiers (..),
+  noModifier,
+  shiftModifier,
+  controlModifier,
+  altModifier,
+  metaModifier,
+  keypadModifier,
+  groupSwitchModifier,
+  QtLayoutDirection (..),
+  QtMaskMode (..),
+  QtMouseButton (..),
+  QtMouseButtons (..),
+  IsQtMouseButtons (..),
+  noButton,
+  allButtons,
+  leftButton,
+  rightButton,
+  middleButton,
+  QtMouseEventFlag (..),
+  QtMouseEventFlags (..),
+  IsQtMouseEventFlags (..),
+  mouseEventCreatedDoubleClick,
+  QtMouseEventSource (..),
+  QtNavigationMode (..),
+  QtOrientation (..),
+  QtOrientations (..),
+  IsQtOrientations (..),
+  horizontal,
+  vertical,
+  QtScreenOrientation (..),
+  QtScreenOrientations (..),
+  IsQtScreenOrientations (..),
+  primaryOrientation,
+  portraitOrientation,
+  landscapeOrientation,
+  invertedPortraitOrientation,
+  invertedLandscapeOrientation,
+  QtScrollBarPolicy (..),
+  QtScrollPhase (..),
+  QtSortOrder (..),
+  QtTextElideMode (..),
+  QtTextFormat (..),
+  QtTextInteractionFlag (..),
+  QtTextInteractionFlags (..),
+  IsQtTextInteractionFlags (..),
+  noTextInteraction,
+  textSelectableByMouse,
+  textSelectableByKeyboard,
+  linksAccessibleByMouse,
+  linksAccessibleByKeyboard,
+  textEditable,
+  textEditorInteraction,
+  textBrowserInteraction,
+  QtTransformationMode (..),
+  QtWindowFlags (..),
+  IsQtWindowFlags (..),
+  widget,
+  window,
+  dialog,
+  sheet,
+  drawer,
+  popup,
+  tool,
+  toolTip,
+  splashScreen,
+  desktop,
+  subWindow,
+  foreignWindow,
+  coverWindow,
+  QtWindowModality (..),
+  QtWindowState (..),
+  QtWindowStates (..),
+  IsQtWindowStates (..),
+  windowNoState,
+  windowMinimized,
+  windowMaximized,
+  windowFullScreen,
+  windowActive,
+  QtWindowType (..),
+  ) where
+
+import qualified Data.Bits as HoppyDB
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import Prelude (($), (++), (.))
+import qualified Prelude as HoppyP
+
+
+newtype QtAlignment = QtAlignment { fromQtAlignment :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQtAlignment a where
+  toQtAlignment :: a -> QtAlignment
+
+instance IsQtAlignment (HoppyFC.CInt) where
+  toQtAlignment = QtAlignment
+instance IsQtAlignment (HoppyP.Int) where
+  toQtAlignment = QtAlignment . HoppyFHR.coerceIntegral
+instance IsQtAlignment QtAlignment where
+  toQtAlignment = HoppyP.id
+
+instance IsQtAlignment QtAlignmentFlag where
+  toQtAlignment = QtAlignment . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+alignLeft = QtAlignment 1
+alignRight = QtAlignment 2
+alignHCenter = QtAlignment 4
+alignJustify = QtAlignment 8
+alignTop = QtAlignment 32
+alignBottom = QtAlignment 64
+alignVCenter = QtAlignment 128
+alignAbsolute = QtAlignment 16
+
+data QtAlignmentFlag =
+  AlignLeft
+  | AlignRight
+  | AlignHCenter
+  | AlignJustify
+  | AlignTop
+  | AlignBottom
+  | AlignVCenter
+  | AlignAbsolute
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtAlignmentFlag where
+  fromEnum AlignLeft = 1
+  fromEnum AlignRight = 2
+  fromEnum AlignHCenter = 4
+  fromEnum AlignJustify = 8
+  fromEnum AlignTop = 32
+  fromEnum AlignBottom = 64
+  fromEnum AlignVCenter = 128
+  fromEnum AlignAbsolute = 16
+  
+  toEnum (1) = AlignLeft
+  toEnum (2) = AlignRight
+  toEnum (4) = AlignHCenter
+  toEnum (8) = AlignJustify
+  toEnum (32) = AlignTop
+  toEnum (64) = AlignBottom
+  toEnum (128) = AlignVCenter
+  toEnum (16) = AlignAbsolute
+  toEnum n' = HoppyP.error $ "Unknown QtAlignmentFlag numeric value: " ++ HoppyP.show n'
+
+data QtAspectRatioMode =
+  IgnoreAspectRatio
+  | KeepAspectRatio
+  | KeepAspectRatioByExpanding
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtAspectRatioMode where
+  fromEnum IgnoreAspectRatio = 0
+  fromEnum KeepAspectRatio = 1
+  fromEnum KeepAspectRatioByExpanding = 2
+  
+  toEnum (0) = IgnoreAspectRatio
+  toEnum (1) = KeepAspectRatio
+  toEnum (2) = KeepAspectRatioByExpanding
+  toEnum n' = HoppyP.error $ "Unknown QtAspectRatioMode numeric value: " ++ HoppyP.show n'
+
+data QtBrushStyle =
+  NoBrush
+  | SolidPattern
+  | Dense1Pattern
+  | Dense2Pattern
+  | Dense3Pattern
+  | Dense4Pattern
+  | Dense5Pattern
+  | Dense6Pattern
+  | Dense7Pattern
+  | HorPattern
+  | VerPattern
+  | CrossPattern
+  | BDiagPattern
+  | FDiagPattern
+  | DiagCrossPattern
+  | LinearGradientPattern
+  | RadialGradientPattern
+  | ConicalGradientPattern
+  | TexturePattern
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtBrushStyle where
+  fromEnum NoBrush = 0
+  fromEnum SolidPattern = 1
+  fromEnum Dense1Pattern = 2
+  fromEnum Dense2Pattern = 3
+  fromEnum Dense3Pattern = 4
+  fromEnum Dense4Pattern = 5
+  fromEnum Dense5Pattern = 6
+  fromEnum Dense6Pattern = 7
+  fromEnum Dense7Pattern = 8
+  fromEnum HorPattern = 9
+  fromEnum VerPattern = 10
+  fromEnum CrossPattern = 11
+  fromEnum BDiagPattern = 12
+  fromEnum FDiagPattern = 13
+  fromEnum DiagCrossPattern = 14
+  fromEnum LinearGradientPattern = 15
+  fromEnum RadialGradientPattern = 16
+  fromEnum ConicalGradientPattern = 17
+  fromEnum TexturePattern = 24
+  
+  toEnum (0) = NoBrush
+  toEnum (1) = SolidPattern
+  toEnum (2) = Dense1Pattern
+  toEnum (3) = Dense2Pattern
+  toEnum (4) = Dense3Pattern
+  toEnum (5) = Dense4Pattern
+  toEnum (6) = Dense5Pattern
+  toEnum (7) = Dense6Pattern
+  toEnum (8) = Dense7Pattern
+  toEnum (9) = HorPattern
+  toEnum (10) = VerPattern
+  toEnum (11) = CrossPattern
+  toEnum (12) = BDiagPattern
+  toEnum (13) = FDiagPattern
+  toEnum (14) = DiagCrossPattern
+  toEnum (15) = LinearGradientPattern
+  toEnum (16) = RadialGradientPattern
+  toEnum (17) = ConicalGradientPattern
+  toEnum (24) = TexturePattern
+  toEnum n' = HoppyP.error $ "Unknown QtBrushStyle numeric value: " ++ HoppyP.show n'
+
+data QtCaseSensitivity =
+  CaseInsensitive
+  | CaseSensitive
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtCaseSensitivity where
+  fromEnum CaseInsensitive = 0
+  fromEnum CaseSensitive = 1
+  
+  toEnum (0) = CaseInsensitive
+  toEnum (1) = CaseSensitive
+  toEnum n' = HoppyP.error $ "Unknown QtCaseSensitivity numeric value: " ++ HoppyP.show n'
+
+data QtCheckState =
+  Unchecked
+  | PartiallyChecked
+  | Checked
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtCheckState where
+  fromEnum Unchecked = 0
+  fromEnum PartiallyChecked = 1
+  fromEnum Checked = 2
+  
+  toEnum (0) = Unchecked
+  toEnum (1) = PartiallyChecked
+  toEnum (2) = Checked
+  toEnum n' = HoppyP.error $ "Unknown QtCheckState numeric value: " ++ HoppyP.show n'
+
+data QtCorner =
+  TopLeftCorner
+  | TopRightCorner
+  | BottomLeftCorner
+  | BottomRightCorner
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtCorner where
+  fromEnum TopLeftCorner = 0
+  fromEnum TopRightCorner = 1
+  fromEnum BottomLeftCorner = 2
+  fromEnum BottomRightCorner = 3
+  
+  toEnum (0) = TopLeftCorner
+  toEnum (1) = TopRightCorner
+  toEnum (2) = BottomLeftCorner
+  toEnum (3) = BottomRightCorner
+  toEnum n' = HoppyP.error $ "Unknown QtCorner numeric value: " ++ HoppyP.show n'
+
+data QtCursorMoveStyle =
+  LogicalMoveStyle
+  | VisualMoveStyle
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtCursorMoveStyle where
+  fromEnum LogicalMoveStyle = 0
+  fromEnum VisualMoveStyle = 1
+  
+  toEnum (0) = LogicalMoveStyle
+  toEnum (1) = VisualMoveStyle
+  toEnum n' = HoppyP.error $ "Unknown QtCursorMoveStyle numeric value: " ++ HoppyP.show n'
+
+data QtDropAction =
+  IgnoreAction
+  | CopyAction
+  | MoveAction
+  | LinkAction
+  | ActionMask
+  | TargetMoveAction
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtDropAction where
+  fromEnum IgnoreAction = 0
+  fromEnum CopyAction = 1
+  fromEnum MoveAction = 2
+  fromEnum LinkAction = 4
+  fromEnum ActionMask = 255
+  fromEnum TargetMoveAction = 32770
+  
+  toEnum (0) = IgnoreAction
+  toEnum (1) = CopyAction
+  toEnum (2) = MoveAction
+  toEnum (4) = LinkAction
+  toEnum (255) = ActionMask
+  toEnum (32770) = TargetMoveAction
+  toEnum n' = HoppyP.error $ "Unknown QtDropAction numeric value: " ++ HoppyP.show n'
+
+newtype QtDropActions = QtDropActions { fromQtDropActions :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQtDropActions a where
+  toQtDropActions :: a -> QtDropActions
+
+instance IsQtDropActions (HoppyFC.CInt) where
+  toQtDropActions = QtDropActions
+instance IsQtDropActions (HoppyP.Int) where
+  toQtDropActions = QtDropActions . HoppyFHR.coerceIntegral
+instance IsQtDropActions QtDropActions where
+  toQtDropActions = HoppyP.id
+
+instance IsQtDropActions QtDropAction where
+  toQtDropActions = QtDropActions . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+ignoreAction = QtDropActions 0
+copyAction = QtDropActions 1
+moveAction = QtDropActions 2
+linkAction = QtDropActions 4
+actionMask = QtDropActions 255
+targetMoveAction = QtDropActions 32770
+
+data QtEventPriority =
+  HighEventPriority
+  | NormalEventPriority
+  | LowEventPriority
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtEventPriority where
+  fromEnum HighEventPriority = 1
+  fromEnum NormalEventPriority = 0
+  fromEnum LowEventPriority = -1
+  
+  toEnum (1) = HighEventPriority
+  toEnum (0) = NormalEventPriority
+  toEnum (-1) = LowEventPriority
+  toEnum n' = HoppyP.error $ "Unknown QtEventPriority numeric value: " ++ HoppyP.show n'
+
+data QtFillRule =
+  OddEvenFill
+  | WindingFill
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtFillRule where
+  fromEnum OddEvenFill = 0
+  fromEnum WindingFill = 1
+  
+  toEnum (0) = OddEvenFill
+  toEnum (1) = WindingFill
+  toEnum n' = HoppyP.error $ "Unknown QtFillRule numeric value: " ++ HoppyP.show n'
+
+data QtFocusReason =
+  MouseFocusReason
+  | TabFocusReason
+  | BacktabFocusReason
+  | ActiveWindowFocusReason
+  | PopupFocusReason
+  | ShortcutFocusReason
+  | MenuBarFocusReason
+  | OtherFocusReason
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtFocusReason where
+  fromEnum MouseFocusReason = 0
+  fromEnum TabFocusReason = 1
+  fromEnum BacktabFocusReason = 2
+  fromEnum ActiveWindowFocusReason = 3
+  fromEnum PopupFocusReason = 4
+  fromEnum ShortcutFocusReason = 5
+  fromEnum MenuBarFocusReason = 6
+  fromEnum OtherFocusReason = 7
+  
+  toEnum (0) = MouseFocusReason
+  toEnum (1) = TabFocusReason
+  toEnum (2) = BacktabFocusReason
+  toEnum (3) = ActiveWindowFocusReason
+  toEnum (4) = PopupFocusReason
+  toEnum (5) = ShortcutFocusReason
+  toEnum (6) = MenuBarFocusReason
+  toEnum (7) = OtherFocusReason
+  toEnum n' = HoppyP.error $ "Unknown QtFocusReason numeric value: " ++ HoppyP.show n'
+
+data QtGlobalColor =
+  White
+  | Black
+  | Red
+  | DarkRed
+  | Green
+  | DarkGreen
+  | Blue
+  | DarkBlue
+  | Cyan
+  | DarkCyan
+  | Magenta
+  | DarkMagenta
+  | Yellow
+  | DarkYellow
+  | Gray
+  | DarkGray
+  | LightGray
+  | Transparent
+  | Color0
+  | Color1
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtGlobalColor where
+  fromEnum White = 3
+  fromEnum Black = 2
+  fromEnum Red = 7
+  fromEnum DarkRed = 13
+  fromEnum Green = 8
+  fromEnum DarkGreen = 14
+  fromEnum Blue = 9
+  fromEnum DarkBlue = 15
+  fromEnum Cyan = 10
+  fromEnum DarkCyan = 16
+  fromEnum Magenta = 11
+  fromEnum DarkMagenta = 17
+  fromEnum Yellow = 12
+  fromEnum DarkYellow = 18
+  fromEnum Gray = 5
+  fromEnum DarkGray = 4
+  fromEnum LightGray = 6
+  fromEnum Transparent = 19
+  fromEnum Color0 = 0
+  fromEnum Color1 = 1
+  
+  toEnum (3) = White
+  toEnum (2) = Black
+  toEnum (7) = Red
+  toEnum (13) = DarkRed
+  toEnum (8) = Green
+  toEnum (14) = DarkGreen
+  toEnum (9) = Blue
+  toEnum (15) = DarkBlue
+  toEnum (10) = Cyan
+  toEnum (16) = DarkCyan
+  toEnum (11) = Magenta
+  toEnum (17) = DarkMagenta
+  toEnum (12) = Yellow
+  toEnum (18) = DarkYellow
+  toEnum (5) = Gray
+  toEnum (4) = DarkGray
+  toEnum (6) = LightGray
+  toEnum (19) = Transparent
+  toEnum (0) = Color0
+  toEnum (1) = Color1
+  toEnum n' = HoppyP.error $ "Unknown QtGlobalColor numeric value: " ++ HoppyP.show n'
+
+data QtImageConversionFlag =
+  Auto
+  | ColorOnly
+  | MonoOnly
+  | OrderedDither
+  | ThresholdDither
+  | OrderedAlphaDither
+  | DiffuseAlphaDither
+  | PreferDither
+  | AvoidDither
+  | NoOpaqueDetection
+  | NoFormatConversion
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtImageConversionFlag where
+  fromEnum Auto = 0
+  fromEnum ColorOnly = 3
+  fromEnum MonoOnly = 2
+  fromEnum OrderedDither = 16
+  fromEnum ThresholdDither = 32
+  fromEnum OrderedAlphaDither = 4
+  fromEnum DiffuseAlphaDither = 8
+  fromEnum PreferDither = 64
+  fromEnum AvoidDither = 128
+  fromEnum NoOpaqueDetection = 256
+  fromEnum NoFormatConversion = 512
+  
+  toEnum (0) = Auto
+  toEnum (3) = ColorOnly
+  toEnum (2) = MonoOnly
+  toEnum (16) = OrderedDither
+  toEnum (32) = ThresholdDither
+  toEnum (4) = OrderedAlphaDither
+  toEnum (8) = DiffuseAlphaDither
+  toEnum (64) = PreferDither
+  toEnum (128) = AvoidDither
+  toEnum (256) = NoOpaqueDetection
+  toEnum (512) = NoFormatConversion
+  toEnum n' = HoppyP.error $ "Unknown QtImageConversionFlag numeric value: " ++ HoppyP.show n'
+
+newtype QtImageConversionFlags = QtImageConversionFlags { fromQtImageConversionFlags :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQtImageConversionFlags a where
+  toQtImageConversionFlags :: a -> QtImageConversionFlags
+
+instance IsQtImageConversionFlags (HoppyFC.CInt) where
+  toQtImageConversionFlags = QtImageConversionFlags
+instance IsQtImageConversionFlags (HoppyP.Int) where
+  toQtImageConversionFlags = QtImageConversionFlags . HoppyFHR.coerceIntegral
+instance IsQtImageConversionFlags QtImageConversionFlags where
+  toQtImageConversionFlags = HoppyP.id
+
+instance IsQtImageConversionFlags QtImageConversionFlag where
+  toQtImageConversionFlags = QtImageConversionFlags . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+auto = QtImageConversionFlags 0
+colorOnly = QtImageConversionFlags 3
+monoOnly = QtImageConversionFlags 2
+orderedDither = QtImageConversionFlags 16
+thresholdDither = QtImageConversionFlags 32
+orderedAlphaDither = QtImageConversionFlags 4
+diffuseAlphaDither = QtImageConversionFlags 8
+preferDither = QtImageConversionFlags 64
+avoidDither = QtImageConversionFlags 128
+noOpaqueDetection = QtImageConversionFlags 256
+noFormatConversion = QtImageConversionFlags 512
+
+data QtInputMethodHint =
+  ImhNone
+  | ImhHiddenText
+  | ImhSensitiveData
+  | ImhNoAutoUppercase
+  | ImhPreferNumbers
+  | ImhPreferUppercase
+  | ImhPreferLowercase
+  | ImhNoPredictiveText
+  | ImhDate
+  | ImhTime
+  | ImhPreferLatin
+  | ImhMultiLine
+  | ImhDigitsOnly
+  | ImhFormattedNumbersOnly
+  | ImhUppercaseOnly
+  | ImhLowercaseOnly
+  | ImhDialableCharactersOnly
+  | ImhEmailCharactersOnly
+  | ImhUrlCharactersOnly
+  | ImhLatinOnly
+  | ImhExclusiveInputMask
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtInputMethodHint where
+  fromEnum ImhNone = 0
+  fromEnum ImhHiddenText = 1
+  fromEnum ImhSensitiveData = 2
+  fromEnum ImhNoAutoUppercase = 4
+  fromEnum ImhPreferNumbers = 8
+  fromEnum ImhPreferUppercase = 16
+  fromEnum ImhPreferLowercase = 32
+  fromEnum ImhNoPredictiveText = 64
+  fromEnum ImhDate = 128
+  fromEnum ImhTime = 256
+  fromEnum ImhPreferLatin = 512
+  fromEnum ImhMultiLine = 1024
+  fromEnum ImhDigitsOnly = 65536
+  fromEnum ImhFormattedNumbersOnly = 131072
+  fromEnum ImhUppercaseOnly = 262144
+  fromEnum ImhLowercaseOnly = 524288
+  fromEnum ImhDialableCharactersOnly = 1048576
+  fromEnum ImhEmailCharactersOnly = 2097152
+  fromEnum ImhUrlCharactersOnly = 4194304
+  fromEnum ImhLatinOnly = 8388608
+  fromEnum ImhExclusiveInputMask = 4294901760
+  
+  toEnum (0) = ImhNone
+  toEnum (1) = ImhHiddenText
+  toEnum (2) = ImhSensitiveData
+  toEnum (4) = ImhNoAutoUppercase
+  toEnum (8) = ImhPreferNumbers
+  toEnum (16) = ImhPreferUppercase
+  toEnum (32) = ImhPreferLowercase
+  toEnum (64) = ImhNoPredictiveText
+  toEnum (128) = ImhDate
+  toEnum (256) = ImhTime
+  toEnum (512) = ImhPreferLatin
+  toEnum (1024) = ImhMultiLine
+  toEnum (65536) = ImhDigitsOnly
+  toEnum (131072) = ImhFormattedNumbersOnly
+  toEnum (262144) = ImhUppercaseOnly
+  toEnum (524288) = ImhLowercaseOnly
+  toEnum (1048576) = ImhDialableCharactersOnly
+  toEnum (2097152) = ImhEmailCharactersOnly
+  toEnum (4194304) = ImhUrlCharactersOnly
+  toEnum (8388608) = ImhLatinOnly
+  toEnum (4294901760) = ImhExclusiveInputMask
+  toEnum n' = HoppyP.error $ "Unknown QtInputMethodHint numeric value: " ++ HoppyP.show n'
+
+newtype QtInputMethodHints = QtInputMethodHints { fromQtInputMethodHints :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQtInputMethodHints a where
+  toQtInputMethodHints :: a -> QtInputMethodHints
+
+instance IsQtInputMethodHints (HoppyFC.CInt) where
+  toQtInputMethodHints = QtInputMethodHints
+instance IsQtInputMethodHints (HoppyP.Int) where
+  toQtInputMethodHints = QtInputMethodHints . HoppyFHR.coerceIntegral
+instance IsQtInputMethodHints QtInputMethodHints where
+  toQtInputMethodHints = HoppyP.id
+
+instance IsQtInputMethodHints QtInputMethodHint where
+  toQtInputMethodHints = QtInputMethodHints . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+imhNone = QtInputMethodHints 0
+imhHiddenText = QtInputMethodHints 1
+imhSensitiveData = QtInputMethodHints 2
+imhNoAutoUppercase = QtInputMethodHints 4
+imhPreferNumbers = QtInputMethodHints 8
+imhPreferUppercase = QtInputMethodHints 16
+imhPreferLowercase = QtInputMethodHints 32
+imhNoPredictiveText = QtInputMethodHints 64
+imhDate = QtInputMethodHints 128
+imhTime = QtInputMethodHints 256
+imhPreferLatin = QtInputMethodHints 512
+imhMultiLine = QtInputMethodHints 1024
+imhDigitsOnly = QtInputMethodHints 65536
+imhFormattedNumbersOnly = QtInputMethodHints 131072
+imhUppercaseOnly = QtInputMethodHints 262144
+imhLowercaseOnly = QtInputMethodHints 524288
+imhDialableCharactersOnly = QtInputMethodHints 1048576
+imhEmailCharactersOnly = QtInputMethodHints 2097152
+imhUrlCharactersOnly = QtInputMethodHints 4194304
+imhLatinOnly = QtInputMethodHints 8388608
+imhExclusiveInputMask = QtInputMethodHints 4294901760
+
+data QtItemDataRole =
+  DisplayRole
+  | DecorationRole
+  | EditRole
+  | ToolTipRole
+  | StatusTipRole
+  | WhatsThisRole
+  | SizeHintRole
+  | FontRole
+  | TextAlignmentRole
+  | BackgroundRole
+  | ForegroundRole
+  | CheckStateRole
+  | InitialSortOrderRole
+  | AccessibleTextRole
+  | AccessibleDescriptionRole
+  | UserRole
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtItemDataRole where
+  fromEnum DisplayRole = 0
+  fromEnum DecorationRole = 1
+  fromEnum EditRole = 2
+  fromEnum ToolTipRole = 3
+  fromEnum StatusTipRole = 4
+  fromEnum WhatsThisRole = 5
+  fromEnum SizeHintRole = 13
+  fromEnum FontRole = 6
+  fromEnum TextAlignmentRole = 7
+  fromEnum BackgroundRole = 8
+  fromEnum ForegroundRole = 9
+  fromEnum CheckStateRole = 10
+  fromEnum InitialSortOrderRole = 14
+  fromEnum AccessibleTextRole = 11
+  fromEnum AccessibleDescriptionRole = 12
+  fromEnum UserRole = 256
+  
+  toEnum (0) = DisplayRole
+  toEnum (1) = DecorationRole
+  toEnum (2) = EditRole
+  toEnum (3) = ToolTipRole
+  toEnum (4) = StatusTipRole
+  toEnum (5) = WhatsThisRole
+  toEnum (13) = SizeHintRole
+  toEnum (6) = FontRole
+  toEnum (7) = TextAlignmentRole
+  toEnum (8) = BackgroundRole
+  toEnum (9) = ForegroundRole
+  toEnum (10) = CheckStateRole
+  toEnum (14) = InitialSortOrderRole
+  toEnum (11) = AccessibleTextRole
+  toEnum (12) = AccessibleDescriptionRole
+  toEnum (256) = UserRole
+  toEnum n' = HoppyP.error $ "Unknown QtItemDataRole numeric value: " ++ HoppyP.show n'
+
+data QtItemFlag =
+  NoItemFlags
+  | ItemIsSelectable
+  | ItemIsEditable
+  | ItemIsDragEnabled
+  | ItemIsDropEnabled
+  | ItemIsUserCheckable
+  | ItemIsEnabled
+  | ItemIsAutoTristate
+  | ItemNeverHasChildren
+  | ItemIsUserTristate
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtItemFlag where
+  fromEnum NoItemFlags = 0
+  fromEnum ItemIsSelectable = 1
+  fromEnum ItemIsEditable = 2
+  fromEnum ItemIsDragEnabled = 4
+  fromEnum ItemIsDropEnabled = 8
+  fromEnum ItemIsUserCheckable = 16
+  fromEnum ItemIsEnabled = 32
+  fromEnum ItemIsAutoTristate = 64
+  fromEnum ItemNeverHasChildren = 128
+  fromEnum ItemIsUserTristate = 256
+  
+  toEnum (0) = NoItemFlags
+  toEnum (1) = ItemIsSelectable
+  toEnum (2) = ItemIsEditable
+  toEnum (4) = ItemIsDragEnabled
+  toEnum (8) = ItemIsDropEnabled
+  toEnum (16) = ItemIsUserCheckable
+  toEnum (32) = ItemIsEnabled
+  toEnum (64) = ItemIsAutoTristate
+  toEnum (128) = ItemNeverHasChildren
+  toEnum (256) = ItemIsUserTristate
+  toEnum n' = HoppyP.error $ "Unknown QtItemFlag numeric value: " ++ HoppyP.show n'
+
+newtype QtItemFlags = QtItemFlags { fromQtItemFlags :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQtItemFlags a where
+  toQtItemFlags :: a -> QtItemFlags
+
+instance IsQtItemFlags (HoppyFC.CInt) where
+  toQtItemFlags = QtItemFlags
+instance IsQtItemFlags (HoppyP.Int) where
+  toQtItemFlags = QtItemFlags . HoppyFHR.coerceIntegral
+instance IsQtItemFlags QtItemFlags where
+  toQtItemFlags = HoppyP.id
+
+instance IsQtItemFlags QtItemFlag where
+  toQtItemFlags = QtItemFlags . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+noItemFlags = QtItemFlags 0
+itemIsSelectable = QtItemFlags 1
+itemIsEditable = QtItemFlags 2
+itemIsDragEnabled = QtItemFlags 4
+itemIsDropEnabled = QtItemFlags 8
+itemIsUserCheckable = QtItemFlags 16
+itemIsEnabled = QtItemFlags 32
+itemIsAutoTristate = QtItemFlags 64
+itemNeverHasChildren = QtItemFlags 128
+itemIsUserTristate = QtItemFlags 256
+
+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
+  | 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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtKey where
+  fromEnum KeyEscape = 16777216
+  fromEnum KeyTab = 16777217
+  fromEnum KeyBacktab = 16777218
+  fromEnum KeyBackspace = 16777219
+  fromEnum KeyReturn = 16777220
+  fromEnum KeyEnter = 16777221
+  fromEnum KeyInsert = 16777222
+  fromEnum KeyDelete = 16777223
+  fromEnum KeyPause = 16777224
+  fromEnum KeyPrint = 16777225
+  fromEnum KeySysReq = 16777226
+  fromEnum KeyClear = 16777227
+  fromEnum KeyHome = 16777232
+  fromEnum KeyEnd = 16777233
+  fromEnum KeyLeft = 16777234
+  fromEnum KeyUp = 16777235
+  fromEnum KeyRight = 16777236
+  fromEnum KeyDown = 16777237
+  fromEnum KeyPageUp = 16777238
+  fromEnum KeyPageDown = 16777239
+  fromEnum KeyShift = 16777248
+  fromEnum KeyControl = 16777249
+  fromEnum KeyMeta = 16777250
+  fromEnum KeyAlt = 16777251
+  fromEnum KeyAltGr = 16781571
+  fromEnum KeyCapsLock = 16777252
+  fromEnum KeyNumLock = 16777253
+  fromEnum KeyScrollLock = 16777254
+  fromEnum KeyF1 = 16777264
+  fromEnum KeyF2 = 16777265
+  fromEnum KeyF3 = 16777266
+  fromEnum KeyF4 = 16777267
+  fromEnum KeyF5 = 16777268
+  fromEnum KeyF6 = 16777269
+  fromEnum KeyF7 = 16777270
+  fromEnum KeyF8 = 16777271
+  fromEnum KeyF9 = 16777272
+  fromEnum KeyF10 = 16777273
+  fromEnum KeyF11 = 16777274
+  fromEnum KeyF12 = 16777275
+  fromEnum KeyF13 = 16777276
+  fromEnum KeyF14 = 16777277
+  fromEnum KeyF15 = 16777278
+  fromEnum KeyF16 = 16777279
+  fromEnum KeyF17 = 16777280
+  fromEnum KeyF18 = 16777281
+  fromEnum KeyF19 = 16777282
+  fromEnum KeyF20 = 16777283
+  fromEnum KeyF21 = 16777284
+  fromEnum KeyF22 = 16777285
+  fromEnum KeyF23 = 16777286
+  fromEnum KeyF24 = 16777287
+  fromEnum KeyF25 = 16777288
+  fromEnum KeyF26 = 16777289
+  fromEnum KeyF27 = 16777290
+  fromEnum KeyF28 = 16777291
+  fromEnum KeyF29 = 16777292
+  fromEnum KeyF30 = 16777293
+  fromEnum KeyF31 = 16777294
+  fromEnum KeyF32 = 16777295
+  fromEnum KeyF33 = 16777296
+  fromEnum KeyF34 = 16777297
+  fromEnum KeyF35 = 16777298
+  fromEnum KeySuperL = 16777299
+  fromEnum KeySuperR = 16777300
+  fromEnum KeyMenu = 16777301
+  fromEnum KeyHyperL = 16777302
+  fromEnum KeyHyperR = 16777303
+  fromEnum KeyHelp = 16777304
+  fromEnum KeyDirectionL = 16777305
+  fromEnum KeyDirectionR = 16777312
+  fromEnum KeySpace = 32
+  fromEnum KeyExclam = 33
+  fromEnum KeyQuoteDbl = 34
+  fromEnum KeyNumberSign = 35
+  fromEnum KeyDollar = 36
+  fromEnum KeyPercent = 37
+  fromEnum KeyAmpersand = 38
+  fromEnum KeyApostrophe = 39
+  fromEnum KeyParenLeft = 40
+  fromEnum KeyParenRight = 41
+  fromEnum KeyAsterisk = 42
+  fromEnum KeyPlus = 43
+  fromEnum KeyComma = 44
+  fromEnum KeyMinus = 45
+  fromEnum KeyPeriod = 46
+  fromEnum KeySlash = 47
+  fromEnum Key0 = 48
+  fromEnum Key1 = 49
+  fromEnum Key2 = 50
+  fromEnum Key3 = 51
+  fromEnum Key4 = 52
+  fromEnum Key5 = 53
+  fromEnum Key6 = 54
+  fromEnum Key7 = 55
+  fromEnum Key8 = 56
+  fromEnum Key9 = 57
+  fromEnum KeyColon = 58
+  fromEnum KeySemicolon = 59
+  fromEnum KeyLess = 60
+  fromEnum KeyEqual = 61
+  fromEnum KeyGreater = 62
+  fromEnum KeyQuestion = 63
+  fromEnum KeyAt = 64
+  fromEnum KeyA = 65
+  fromEnum KeyB = 66
+  fromEnum KeyC = 67
+  fromEnum KeyD = 68
+  fromEnum KeyE = 69
+  fromEnum KeyF = 70
+  fromEnum KeyG = 71
+  fromEnum KeyH = 72
+  fromEnum KeyI = 73
+  fromEnum KeyJ = 74
+  fromEnum KeyK = 75
+  fromEnum KeyL = 76
+  fromEnum KeyM = 77
+  fromEnum KeyN = 78
+  fromEnum KeyO = 79
+  fromEnum KeyP = 80
+  fromEnum KeyQ = 81
+  fromEnum KeyR = 82
+  fromEnum KeyS = 83
+  fromEnum KeyT = 84
+  fromEnum KeyU = 85
+  fromEnum KeyV = 86
+  fromEnum KeyW = 87
+  fromEnum KeyX = 88
+  fromEnum KeyY = 89
+  fromEnum KeyZ = 90
+  fromEnum KeyBracketLeft = 91
+  fromEnum KeyBackslash = 92
+  fromEnum KeyBracketRight = 93
+  fromEnum KeyAsciiCircum = 94
+  fromEnum KeyUnderscore = 95
+  fromEnum KeyQuoteLeft = 96
+  fromEnum KeyBraceLeft = 123
+  fromEnum KeyBar = 124
+  fromEnum KeyBraceRight = 125
+  fromEnum KeyAsciiTilde = 126
+  
+  toEnum (16777216) = KeyEscape
+  toEnum (16777217) = KeyTab
+  toEnum (16777218) = KeyBacktab
+  toEnum (16777219) = KeyBackspace
+  toEnum (16777220) = KeyReturn
+  toEnum (16777221) = KeyEnter
+  toEnum (16777222) = KeyInsert
+  toEnum (16777223) = KeyDelete
+  toEnum (16777224) = KeyPause
+  toEnum (16777225) = KeyPrint
+  toEnum (16777226) = KeySysReq
+  toEnum (16777227) = KeyClear
+  toEnum (16777232) = KeyHome
+  toEnum (16777233) = KeyEnd
+  toEnum (16777234) = KeyLeft
+  toEnum (16777235) = KeyUp
+  toEnum (16777236) = KeyRight
+  toEnum (16777237) = KeyDown
+  toEnum (16777238) = KeyPageUp
+  toEnum (16777239) = KeyPageDown
+  toEnum (16777248) = KeyShift
+  toEnum (16777249) = KeyControl
+  toEnum (16777250) = KeyMeta
+  toEnum (16777251) = KeyAlt
+  toEnum (16781571) = KeyAltGr
+  toEnum (16777252) = KeyCapsLock
+  toEnum (16777253) = KeyNumLock
+  toEnum (16777254) = KeyScrollLock
+  toEnum (16777264) = KeyF1
+  toEnum (16777265) = KeyF2
+  toEnum (16777266) = KeyF3
+  toEnum (16777267) = KeyF4
+  toEnum (16777268) = KeyF5
+  toEnum (16777269) = KeyF6
+  toEnum (16777270) = KeyF7
+  toEnum (16777271) = KeyF8
+  toEnum (16777272) = KeyF9
+  toEnum (16777273) = KeyF10
+  toEnum (16777274) = KeyF11
+  toEnum (16777275) = KeyF12
+  toEnum (16777276) = KeyF13
+  toEnum (16777277) = KeyF14
+  toEnum (16777278) = KeyF15
+  toEnum (16777279) = KeyF16
+  toEnum (16777280) = KeyF17
+  toEnum (16777281) = KeyF18
+  toEnum (16777282) = KeyF19
+  toEnum (16777283) = KeyF20
+  toEnum (16777284) = KeyF21
+  toEnum (16777285) = KeyF22
+  toEnum (16777286) = KeyF23
+  toEnum (16777287) = KeyF24
+  toEnum (16777288) = KeyF25
+  toEnum (16777289) = KeyF26
+  toEnum (16777290) = KeyF27
+  toEnum (16777291) = KeyF28
+  toEnum (16777292) = KeyF29
+  toEnum (16777293) = KeyF30
+  toEnum (16777294) = KeyF31
+  toEnum (16777295) = KeyF32
+  toEnum (16777296) = KeyF33
+  toEnum (16777297) = KeyF34
+  toEnum (16777298) = KeyF35
+  toEnum (16777299) = KeySuperL
+  toEnum (16777300) = KeySuperR
+  toEnum (16777301) = KeyMenu
+  toEnum (16777302) = KeyHyperL
+  toEnum (16777303) = KeyHyperR
+  toEnum (16777304) = KeyHelp
+  toEnum (16777305) = KeyDirectionL
+  toEnum (16777312) = KeyDirectionR
+  toEnum (32) = KeySpace
+  toEnum (33) = KeyExclam
+  toEnum (34) = KeyQuoteDbl
+  toEnum (35) = KeyNumberSign
+  toEnum (36) = KeyDollar
+  toEnum (37) = KeyPercent
+  toEnum (38) = KeyAmpersand
+  toEnum (39) = KeyApostrophe
+  toEnum (40) = KeyParenLeft
+  toEnum (41) = KeyParenRight
+  toEnum (42) = KeyAsterisk
+  toEnum (43) = KeyPlus
+  toEnum (44) = KeyComma
+  toEnum (45) = KeyMinus
+  toEnum (46) = KeyPeriod
+  toEnum (47) = KeySlash
+  toEnum (48) = Key0
+  toEnum (49) = Key1
+  toEnum (50) = Key2
+  toEnum (51) = Key3
+  toEnum (52) = Key4
+  toEnum (53) = Key5
+  toEnum (54) = Key6
+  toEnum (55) = Key7
+  toEnum (56) = Key8
+  toEnum (57) = Key9
+  toEnum (58) = KeyColon
+  toEnum (59) = KeySemicolon
+  toEnum (60) = KeyLess
+  toEnum (61) = KeyEqual
+  toEnum (62) = KeyGreater
+  toEnum (63) = KeyQuestion
+  toEnum (64) = KeyAt
+  toEnum (65) = KeyA
+  toEnum (66) = KeyB
+  toEnum (67) = KeyC
+  toEnum (68) = KeyD
+  toEnum (69) = KeyE
+  toEnum (70) = KeyF
+  toEnum (71) = KeyG
+  toEnum (72) = KeyH
+  toEnum (73) = KeyI
+  toEnum (74) = KeyJ
+  toEnum (75) = KeyK
+  toEnum (76) = KeyL
+  toEnum (77) = KeyM
+  toEnum (78) = KeyN
+  toEnum (79) = KeyO
+  toEnum (80) = KeyP
+  toEnum (81) = KeyQ
+  toEnum (82) = KeyR
+  toEnum (83) = KeyS
+  toEnum (84) = KeyT
+  toEnum (85) = KeyU
+  toEnum (86) = KeyV
+  toEnum (87) = KeyW
+  toEnum (88) = KeyX
+  toEnum (89) = KeyY
+  toEnum (90) = KeyZ
+  toEnum (91) = KeyBracketLeft
+  toEnum (92) = KeyBackslash
+  toEnum (93) = KeyBracketRight
+  toEnum (94) = KeyAsciiCircum
+  toEnum (95) = KeyUnderscore
+  toEnum (96) = KeyQuoteLeft
+  toEnum (123) = KeyBraceLeft
+  toEnum (124) = KeyBar
+  toEnum (125) = KeyBraceRight
+  toEnum (126) = KeyAsciiTilde
+  toEnum n' = HoppyP.error $ "Unknown QtKey numeric value: " ++ HoppyP.show n'
+
+data QtKeyboardModifier =
+  NoModifier
+  | ShiftModifier
+  | ControlModifier
+  | AltModifier
+  | MetaModifier
+  | KeypadModifier
+  | GroupSwitchModifier
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtKeyboardModifier where
+  fromEnum NoModifier = 0
+  fromEnum ShiftModifier = 33554432
+  fromEnum ControlModifier = 67108864
+  fromEnum AltModifier = 134217728
+  fromEnum MetaModifier = 268435456
+  fromEnum KeypadModifier = 536870912
+  fromEnum GroupSwitchModifier = 1073741824
+  
+  toEnum (0) = NoModifier
+  toEnum (33554432) = ShiftModifier
+  toEnum (67108864) = ControlModifier
+  toEnum (134217728) = AltModifier
+  toEnum (268435456) = MetaModifier
+  toEnum (536870912) = KeypadModifier
+  toEnum (1073741824) = GroupSwitchModifier
+  toEnum n' = HoppyP.error $ "Unknown QtKeyboardModifier numeric value: " ++ HoppyP.show n'
+
+newtype QtKeyboardModifiers = QtKeyboardModifiers { fromQtKeyboardModifiers :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQtKeyboardModifiers a where
+  toQtKeyboardModifiers :: a -> QtKeyboardModifiers
+
+instance IsQtKeyboardModifiers (HoppyFC.CInt) where
+  toQtKeyboardModifiers = QtKeyboardModifiers
+instance IsQtKeyboardModifiers (HoppyP.Int) where
+  toQtKeyboardModifiers = QtKeyboardModifiers . HoppyFHR.coerceIntegral
+instance IsQtKeyboardModifiers QtKeyboardModifiers where
+  toQtKeyboardModifiers = HoppyP.id
+
+instance IsQtKeyboardModifiers QtKeyboardModifier where
+  toQtKeyboardModifiers = QtKeyboardModifiers . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+noModifier = QtKeyboardModifiers 0
+shiftModifier = QtKeyboardModifiers 33554432
+controlModifier = QtKeyboardModifiers 67108864
+altModifier = QtKeyboardModifiers 134217728
+metaModifier = QtKeyboardModifiers 268435456
+keypadModifier = QtKeyboardModifiers 536870912
+groupSwitchModifier = QtKeyboardModifiers 1073741824
+
+data QtLayoutDirection =
+  LeftToRight
+  | RightToLeft
+  | LayoutDirectionAuto
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtLayoutDirection where
+  fromEnum LeftToRight = 0
+  fromEnum RightToLeft = 1
+  fromEnum LayoutDirectionAuto = 2
+  
+  toEnum (0) = LeftToRight
+  toEnum (1) = RightToLeft
+  toEnum (2) = LayoutDirectionAuto
+  toEnum n' = HoppyP.error $ "Unknown QtLayoutDirection numeric value: " ++ HoppyP.show n'
+
+data QtMaskMode =
+  MaskInColor
+  | MaskOutColor
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtMaskMode where
+  fromEnum MaskInColor = 0
+  fromEnum MaskOutColor = 1
+  
+  toEnum (0) = MaskInColor
+  toEnum (1) = MaskOutColor
+  toEnum n' = HoppyP.error $ "Unknown QtMaskMode numeric value: " ++ HoppyP.show n'
+
+data QtMouseButton =
+  NoButton
+  | AllButtons
+  | LeftButton
+  | RightButton
+  | MiddleButton
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtMouseButton where
+  fromEnum NoButton = 0
+  fromEnum AllButtons = 134217727
+  fromEnum LeftButton = 1
+  fromEnum RightButton = 2
+  fromEnum MiddleButton = 4
+  
+  toEnum (0) = NoButton
+  toEnum (134217727) = AllButtons
+  toEnum (1) = LeftButton
+  toEnum (2) = RightButton
+  toEnum (4) = MiddleButton
+  toEnum n' = HoppyP.error $ "Unknown QtMouseButton numeric value: " ++ HoppyP.show n'
+
+newtype QtMouseButtons = QtMouseButtons { fromQtMouseButtons :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQtMouseButtons a where
+  toQtMouseButtons :: a -> QtMouseButtons
+
+instance IsQtMouseButtons (HoppyFC.CInt) where
+  toQtMouseButtons = QtMouseButtons
+instance IsQtMouseButtons (HoppyP.Int) where
+  toQtMouseButtons = QtMouseButtons . HoppyFHR.coerceIntegral
+instance IsQtMouseButtons QtMouseButtons where
+  toQtMouseButtons = HoppyP.id
+
+instance IsQtMouseButtons QtMouseButton where
+  toQtMouseButtons = QtMouseButtons . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+noButton = QtMouseButtons 0
+allButtons = QtMouseButtons 134217727
+leftButton = QtMouseButtons 1
+rightButton = QtMouseButtons 2
+middleButton = QtMouseButtons 4
+
+data QtMouseEventFlag =
+  MouseEventCreatedDoubleClick
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtMouseEventFlag where
+  fromEnum MouseEventCreatedDoubleClick = 1
+  
+  toEnum (1) = MouseEventCreatedDoubleClick
+  toEnum n' = HoppyP.error $ "Unknown QtMouseEventFlag numeric value: " ++ HoppyP.show n'
+
+newtype QtMouseEventFlags = QtMouseEventFlags { fromQtMouseEventFlags :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQtMouseEventFlags a where
+  toQtMouseEventFlags :: a -> QtMouseEventFlags
+
+instance IsQtMouseEventFlags (HoppyFC.CInt) where
+  toQtMouseEventFlags = QtMouseEventFlags
+instance IsQtMouseEventFlags (HoppyP.Int) where
+  toQtMouseEventFlags = QtMouseEventFlags . HoppyFHR.coerceIntegral
+instance IsQtMouseEventFlags QtMouseEventFlags where
+  toQtMouseEventFlags = HoppyP.id
+
+instance IsQtMouseEventFlags QtMouseEventFlag where
+  toQtMouseEventFlags = QtMouseEventFlags . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+mouseEventCreatedDoubleClick = QtMouseEventFlags 1
+
+data QtMouseEventSource =
+  MouseEventNotSynthesized
+  | MouseEventSynthesizedBySystem
+  | MouseEventSynthesizedByQt
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtMouseEventSource where
+  fromEnum MouseEventNotSynthesized = 0
+  fromEnum MouseEventSynthesizedBySystem = 1
+  fromEnum MouseEventSynthesizedByQt = 2
+  
+  toEnum (0) = MouseEventNotSynthesized
+  toEnum (1) = MouseEventSynthesizedBySystem
+  toEnum (2) = MouseEventSynthesizedByQt
+  toEnum n' = HoppyP.error $ "Unknown QtMouseEventSource numeric value: " ++ HoppyP.show n'
+
+data QtNavigationMode =
+  NavigationModeNone
+  | NavigationModeKeypadTabOrder
+  | NavigationModeKeypadDirectional
+  | NavigationModeCursorAuto
+  | NavigationModeCursorForceVisible
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtNavigationMode where
+  fromEnum NavigationModeNone = 0
+  fromEnum NavigationModeKeypadTabOrder = 1
+  fromEnum NavigationModeKeypadDirectional = 2
+  fromEnum NavigationModeCursorAuto = 3
+  fromEnum NavigationModeCursorForceVisible = 4
+  
+  toEnum (0) = NavigationModeNone
+  toEnum (1) = NavigationModeKeypadTabOrder
+  toEnum (2) = NavigationModeKeypadDirectional
+  toEnum (3) = NavigationModeCursorAuto
+  toEnum (4) = NavigationModeCursorForceVisible
+  toEnum n' = HoppyP.error $ "Unknown QtNavigationMode numeric value: " ++ HoppyP.show n'
+
+data QtOrientation =
+  Horizontal
+  | Vertical
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtOrientation where
+  fromEnum Horizontal = 1
+  fromEnum Vertical = 2
+  
+  toEnum (1) = Horizontal
+  toEnum (2) = Vertical
+  toEnum n' = HoppyP.error $ "Unknown QtOrientation numeric value: " ++ HoppyP.show n'
+
+newtype QtOrientations = QtOrientations { fromQtOrientations :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQtOrientations a where
+  toQtOrientations :: a -> QtOrientations
+
+instance IsQtOrientations (HoppyFC.CInt) where
+  toQtOrientations = QtOrientations
+instance IsQtOrientations (HoppyP.Int) where
+  toQtOrientations = QtOrientations . HoppyFHR.coerceIntegral
+instance IsQtOrientations QtOrientations where
+  toQtOrientations = HoppyP.id
+
+instance IsQtOrientations QtOrientation where
+  toQtOrientations = QtOrientations . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+horizontal = QtOrientations 1
+vertical = QtOrientations 2
+
+data QtScreenOrientation =
+  PrimaryOrientation
+  | PortraitOrientation
+  | LandscapeOrientation
+  | InvertedPortraitOrientation
+  | InvertedLandscapeOrientation
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtScreenOrientation where
+  fromEnum PrimaryOrientation = 0
+  fromEnum PortraitOrientation = 1
+  fromEnum LandscapeOrientation = 2
+  fromEnum InvertedPortraitOrientation = 4
+  fromEnum InvertedLandscapeOrientation = 8
+  
+  toEnum (0) = PrimaryOrientation
+  toEnum (1) = PortraitOrientation
+  toEnum (2) = LandscapeOrientation
+  toEnum (4) = InvertedPortraitOrientation
+  toEnum (8) = InvertedLandscapeOrientation
+  toEnum n' = HoppyP.error $ "Unknown QtScreenOrientation numeric value: " ++ HoppyP.show n'
+
+newtype QtScreenOrientations = QtScreenOrientations { fromQtScreenOrientations :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQtScreenOrientations a where
+  toQtScreenOrientations :: a -> QtScreenOrientations
+
+instance IsQtScreenOrientations (HoppyFC.CInt) where
+  toQtScreenOrientations = QtScreenOrientations
+instance IsQtScreenOrientations (HoppyP.Int) where
+  toQtScreenOrientations = QtScreenOrientations . HoppyFHR.coerceIntegral
+instance IsQtScreenOrientations QtScreenOrientations where
+  toQtScreenOrientations = HoppyP.id
+
+instance IsQtScreenOrientations QtScreenOrientation where
+  toQtScreenOrientations = QtScreenOrientations . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+primaryOrientation = QtScreenOrientations 0
+portraitOrientation = QtScreenOrientations 1
+landscapeOrientation = QtScreenOrientations 2
+invertedPortraitOrientation = QtScreenOrientations 4
+invertedLandscapeOrientation = QtScreenOrientations 8
+
+data QtScrollBarPolicy =
+  ScrollBarAsNeeded
+  | ScrollBarAlwaysOff
+  | ScrollBarAlwaysOn
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtScrollBarPolicy where
+  fromEnum ScrollBarAsNeeded = 0
+  fromEnum ScrollBarAlwaysOff = 1
+  fromEnum ScrollBarAlwaysOn = 2
+  
+  toEnum (0) = ScrollBarAsNeeded
+  toEnum (1) = ScrollBarAlwaysOff
+  toEnum (2) = ScrollBarAlwaysOn
+  toEnum n' = HoppyP.error $ "Unknown QtScrollBarPolicy numeric value: " ++ HoppyP.show n'
+
+data QtScrollPhase =
+  ScrollBegin
+  | ScrollUpdate
+  | ScrollEnd
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtScrollPhase where
+  fromEnum ScrollBegin = 1
+  fromEnum ScrollUpdate = 2
+  fromEnum ScrollEnd = 3
+  
+  toEnum (1) = ScrollBegin
+  toEnum (2) = ScrollUpdate
+  toEnum (3) = ScrollEnd
+  toEnum n' = HoppyP.error $ "Unknown QtScrollPhase numeric value: " ++ HoppyP.show n'
+
+data QtSortOrder =
+  AscendingOrder
+  | DescendingOrder
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtSortOrder where
+  fromEnum AscendingOrder = 0
+  fromEnum DescendingOrder = 1
+  
+  toEnum (0) = AscendingOrder
+  toEnum (1) = DescendingOrder
+  toEnum n' = HoppyP.error $ "Unknown QtSortOrder numeric value: " ++ HoppyP.show n'
+
+data QtTextElideMode =
+  ElideLeft
+  | ElideRight
+  | ElideMiddle
+  | ElideNone
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtTextElideMode where
+  fromEnum ElideLeft = 0
+  fromEnum ElideRight = 1
+  fromEnum ElideMiddle = 2
+  fromEnum ElideNone = 3
+  
+  toEnum (0) = ElideLeft
+  toEnum (1) = ElideRight
+  toEnum (2) = ElideMiddle
+  toEnum (3) = ElideNone
+  toEnum n' = HoppyP.error $ "Unknown QtTextElideMode numeric value: " ++ HoppyP.show n'
+
+data QtTextFormat =
+  PlainText
+  | RichText
+  | AutoText
+  | LogText
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtTextFormat where
+  fromEnum PlainText = 0
+  fromEnum RichText = 1
+  fromEnum AutoText = 2
+  fromEnum LogText = 3
+  
+  toEnum (0) = PlainText
+  toEnum (1) = RichText
+  toEnum (2) = AutoText
+  toEnum (3) = LogText
+  toEnum n' = HoppyP.error $ "Unknown QtTextFormat numeric value: " ++ HoppyP.show n'
+
+data QtTextInteractionFlag =
+  NoTextInteraction
+  | TextSelectableByMouse
+  | TextSelectableByKeyboard
+  | LinksAccessibleByMouse
+  | LinksAccessibleByKeyboard
+  | TextEditable
+  | TextEditorInteraction
+  | TextBrowserInteraction
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtTextInteractionFlag where
+  fromEnum NoTextInteraction = 0
+  fromEnum TextSelectableByMouse = 1
+  fromEnum TextSelectableByKeyboard = 2
+  fromEnum LinksAccessibleByMouse = 4
+  fromEnum LinksAccessibleByKeyboard = 8
+  fromEnum TextEditable = 16
+  fromEnum TextEditorInteraction = 19
+  fromEnum TextBrowserInteraction = 13
+  
+  toEnum (0) = NoTextInteraction
+  toEnum (1) = TextSelectableByMouse
+  toEnum (2) = TextSelectableByKeyboard
+  toEnum (4) = LinksAccessibleByMouse
+  toEnum (8) = LinksAccessibleByKeyboard
+  toEnum (16) = TextEditable
+  toEnum (19) = TextEditorInteraction
+  toEnum (13) = TextBrowserInteraction
+  toEnum n' = HoppyP.error $ "Unknown QtTextInteractionFlag numeric value: " ++ HoppyP.show n'
+
+newtype QtTextInteractionFlags = QtTextInteractionFlags { fromQtTextInteractionFlags :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQtTextInteractionFlags a where
+  toQtTextInteractionFlags :: a -> QtTextInteractionFlags
+
+instance IsQtTextInteractionFlags (HoppyFC.CInt) where
+  toQtTextInteractionFlags = QtTextInteractionFlags
+instance IsQtTextInteractionFlags (HoppyP.Int) where
+  toQtTextInteractionFlags = QtTextInteractionFlags . HoppyFHR.coerceIntegral
+instance IsQtTextInteractionFlags QtTextInteractionFlags where
+  toQtTextInteractionFlags = HoppyP.id
+
+instance IsQtTextInteractionFlags QtTextInteractionFlag where
+  toQtTextInteractionFlags = QtTextInteractionFlags . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+noTextInteraction = QtTextInteractionFlags 0
+textSelectableByMouse = QtTextInteractionFlags 1
+textSelectableByKeyboard = QtTextInteractionFlags 2
+linksAccessibleByMouse = QtTextInteractionFlags 4
+linksAccessibleByKeyboard = QtTextInteractionFlags 8
+textEditable = QtTextInteractionFlags 16
+textEditorInteraction = QtTextInteractionFlags 19
+textBrowserInteraction = QtTextInteractionFlags 13
+
+data QtTransformationMode =
+  FastTransformation
+  | SmoothTransformation
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtTransformationMode where
+  fromEnum FastTransformation = 0
+  fromEnum SmoothTransformation = 1
+  
+  toEnum (0) = FastTransformation
+  toEnum (1) = SmoothTransformation
+  toEnum n' = HoppyP.error $ "Unknown QtTransformationMode numeric value: " ++ HoppyP.show n'
+
+newtype QtWindowFlags = QtWindowFlags { fromQtWindowFlags :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQtWindowFlags a where
+  toQtWindowFlags :: a -> QtWindowFlags
+
+instance IsQtWindowFlags (HoppyFC.CInt) where
+  toQtWindowFlags = QtWindowFlags
+instance IsQtWindowFlags (HoppyP.Int) where
+  toQtWindowFlags = QtWindowFlags . HoppyFHR.coerceIntegral
+instance IsQtWindowFlags QtWindowFlags where
+  toQtWindowFlags = HoppyP.id
+
+instance IsQtWindowFlags QtWindowType where
+  toQtWindowFlags = QtWindowFlags . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+widget = QtWindowFlags 0
+window = QtWindowFlags 1
+dialog = QtWindowFlags 3
+sheet = QtWindowFlags 5
+drawer = QtWindowFlags 7
+popup = QtWindowFlags 9
+tool = QtWindowFlags 11
+toolTip = QtWindowFlags 13
+splashScreen = QtWindowFlags 15
+desktop = QtWindowFlags 17
+subWindow = QtWindowFlags 19
+foreignWindow = QtWindowFlags 33
+coverWindow = QtWindowFlags 65
+
+data QtWindowModality =
+  NonModal
+  | WindowModal
+  | ApplicationModal
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtWindowModality where
+  fromEnum NonModal = 0
+  fromEnum WindowModal = 1
+  fromEnum ApplicationModal = 2
+  
+  toEnum (0) = NonModal
+  toEnum (1) = WindowModal
+  toEnum (2) = ApplicationModal
+  toEnum n' = HoppyP.error $ "Unknown QtWindowModality numeric value: " ++ HoppyP.show n'
+
+data QtWindowState =
+  WindowNoState
+  | WindowMinimized
+  | WindowMaximized
+  | WindowFullScreen
+  | WindowActive
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtWindowState where
+  fromEnum WindowNoState = 0
+  fromEnum WindowMinimized = 1
+  fromEnum WindowMaximized = 2
+  fromEnum WindowFullScreen = 4
+  fromEnum WindowActive = 8
+  
+  toEnum (0) = WindowNoState
+  toEnum (1) = WindowMinimized
+  toEnum (2) = WindowMaximized
+  toEnum (4) = WindowFullScreen
+  toEnum (8) = WindowActive
+  toEnum n' = HoppyP.error $ "Unknown QtWindowState numeric value: " ++ HoppyP.show n'
+
+newtype QtWindowStates = QtWindowStates { fromQtWindowStates :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQtWindowStates a where
+  toQtWindowStates :: a -> QtWindowStates
+
+instance IsQtWindowStates (HoppyFC.CInt) where
+  toQtWindowStates = QtWindowStates
+instance IsQtWindowStates (HoppyP.Int) where
+  toQtWindowStates = QtWindowStates . HoppyFHR.coerceIntegral
+instance IsQtWindowStates QtWindowStates where
+  toQtWindowStates = HoppyP.id
+
+instance IsQtWindowStates QtWindowState where
+  toQtWindowStates = QtWindowStates . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+windowNoState = QtWindowStates 0
+windowMinimized = QtWindowStates 1
+windowMaximized = QtWindowStates 2
+windowFullScreen = QtWindowStates 4
+windowActive = QtWindowStates 8
+
+data QtWindowType =
+  Widget
+  | Window
+  | Dialog
+  | Sheet
+  | Drawer
+  | Popup
+  | Tool
+  | ToolTip
+  | SplashScreen
+  | Desktop
+  | SubWindow
+  | ForeignWindow
+  | CoverWindow
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QtWindowType where
+  fromEnum Widget = 0
+  fromEnum Window = 1
+  fromEnum Dialog = 3
+  fromEnum Sheet = 5
+  fromEnum Drawer = 7
+  fromEnum Popup = 9
+  fromEnum Tool = 11
+  fromEnum ToolTip = 13
+  fromEnum SplashScreen = 15
+  fromEnum Desktop = 17
+  fromEnum SubWindow = 19
+  fromEnum ForeignWindow = 33
+  fromEnum CoverWindow = 65
+  
+  toEnum (0) = Widget
+  toEnum (1) = Window
+  toEnum (3) = Dialog
+  toEnum (5) = Sheet
+  toEnum (7) = Drawer
+  toEnum (9) = Popup
+  toEnum (11) = Tool
+  toEnum (13) = ToolTip
+  toEnum (15) = SplashScreen
+  toEnum (17) = Desktop
+  toEnum (19) = SubWindow
+  toEnum (33) = ForeignWindow
+  toEnum (65) = CoverWindow
+  toEnum n' = HoppyP.error $ "Unknown QtWindowType numeric value: " ++ HoppyP.show n'
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,197 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M16
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M174
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QActionEvent_new" new' ::  HoppyFC.CInt -> HoppyF.Ptr M174.QAction -> HoppyP.IO (HoppyF.Ptr QActionEvent)
+foreign import ccall "genpop__QActionEvent_newBefore" newBefore' ::  HoppyFC.CInt -> HoppyF.Ptr M174.QAction -> HoppyP.IO (HoppyF.Ptr QActionEvent)
+foreign import ccall "genpop__QActionEvent_action" action' ::  HoppyF.Ptr QActionEventConst -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QActionEvent_before" before' ::  HoppyF.Ptr QActionEventConst -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "gencast__QActionEvent__QEvent" castQActionEventToQEvent :: HoppyF.Ptr QActionEventConst -> HoppyF.Ptr M16.QEventConst
+foreign import ccall "gencast__QEvent__QActionEvent" castQEventToQActionEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QActionEventConstPtr a => QActionEventValue a where
+#else
+instance QActionEventConstPtr a => QActionEventValue a where
+#endif
+  withQActionEventPtr = HoppyP.flip ($) . toQActionEventConst
+
+class (M16.QEventConstPtr this) => QActionEventConstPtr this where
+  toQActionEventConst :: this -> QActionEventConst
+
+action :: (QActionEventValue arg'1) => arg'1 -> HoppyP.IO M174.QAction
+action arg'1 =
+  withQActionEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M174.QAction
+  (action' arg'1')
+
+before :: (QActionEventValue arg'1) => arg'1 -> HoppyP.IO M174.QAction
+before arg'1 =
+  withQActionEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M174.QAction
+  (before' arg'1')
+
+class (QActionEventConstPtr this, M16.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 M16.QEventConstPtr QActionEventConst where
+  toQEventConst (QActionEventConst ptr') = M16.QEventConst $ castQActionEventToQEvent ptr'
+  toQEventConst (QActionEventConstGc fptr' ptr') = M16.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 M16.QEventConstPtr QActionEvent where
+  toQEventConst (QActionEvent ptr') = M16.QEventConst $ castQActionEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QActionEvent -> HoppyF.Ptr QActionEventConst) ptr'
+  toQEventConst (QActionEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQActionEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QActionEvent -> HoppyF.Ptr QActionEventConst) ptr'
+
+instance M16.QEventPtr QActionEvent where
+  toQEvent (QActionEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQActionEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QActionEvent -> HoppyF.Ptr QActionEventConst) ptr'
+  toQEvent (QActionEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQActionEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QActionEvent -> HoppyF.Ptr QActionEventConst) ptr'
+
+new :: (M174.QActionPtr arg'2) => M16.QEventType -> arg'2 -> HoppyP.IO QActionEvent
+new arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  HoppyP.fmap QActionEvent
+  (new' arg'1' arg'2')
+
+newBefore :: (M174.QActionPtr arg'2) => M16.QEventType -> arg'2 -> HoppyP.IO QActionEvent
+newBefore arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  HoppyP.fmap QActionEvent
+  (newBefore' arg'1' arg'2')
+
+class QActionEventSuper a where
+  downToQActionEvent :: a -> QActionEvent
+
+instance QActionEventSuper M16.QEvent where
+  downToQActionEvent = castQActionEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QActionEventConst $ castQEventToQActionEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QActionEventConstGc fptr' $ castQEventToQActionEvent ptr'
+
+class QActionEventSuperConst a where
+  downToQActionEventConst :: a -> QActionEventConst
+
+instance QActionEventSuperConst M16.QEventConst where
+  downToQActionEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QActionEventConst $ castQEventToQActionEvent ptr'
+      cast' (M16.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/QBrush.hs b/src/Graphics/UI/Qtah/Generated/Gui/QBrush.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QBrush.hs
@@ -0,0 +1,276 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QBrush (
+  QBrushValue (..),
+  QBrushConstPtr (..),
+  color,
+  isOpaque,
+  style,
+  transform,
+  eQ,
+  nE,
+  QBrushPtr (..),
+  setColor,
+  setGlobalColor,
+  setStyle,
+  swap,
+  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 M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QColor as M92
+import qualified Graphics.UI.Qtah.Generated.Gui.QTransform as M144
+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 M92.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 M92.QColorConst)
+foreign import ccall "genpop__QBrush_setColor" setColor' ::  HoppyF.Ptr QBrush -> HoppyF.Ptr M92.QColorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QBrush_isOpaque" isOpaque' ::  HoppyF.Ptr QBrushConst -> HoppyP.IO HoppyFHR.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_transform" transform' ::  HoppyF.Ptr QBrushConst -> HoppyP.IO (HoppyF.Ptr M144.QTransformConst)
+foreign import ccall "genpop__QBrush_setTransform" setTransform' ::  HoppyF.Ptr QBrush -> HoppyF.Ptr M144.QTransformConst -> HoppyP.IO ()
+foreign import ccall "genpop__QBrush_EQ" eQ' ::  HoppyF.Ptr QBrushConst -> HoppyF.Ptr QBrushConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QBrush_NE" nE' ::  HoppyF.Ptr QBrushConst -> HoppyF.Ptr QBrushConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QBrushConstPtr a => QBrushValue a where
+#else
+instance QBrushConstPtr a => QBrushValue a where
+#endif
+  withQBrushPtr = HoppyP.flip ($) . toQBrushConst
+
+class (HoppyFHR.CppPtr this) => QBrushConstPtr this where
+  toQBrushConst :: this -> QBrushConst
+
+color :: (QBrushValue arg'1) => arg'1 -> HoppyP.IO HColor.HColor
+color arg'1 =
+  withQBrushPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M92.QColorConst) =<<
+  (color' arg'1')
+
+isOpaque :: (QBrushValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isOpaque arg'1 =
+  withQBrushPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isOpaque' arg'1')
+
+style :: (QBrushValue arg'1) => arg'1 -> HoppyP.IO M58.QtBrushStyle
+style arg'1 =
+  withQBrushPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (style' arg'1')
+
+transform :: (QBrushValue arg'1) => arg'1 -> HoppyP.IO M144.QTransform
+transform arg'1 =
+  withQBrushPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QTransformConst) =<<
+  (transform' arg'1')
+
+eQ :: (QBrushValue arg'1, QBrushValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QBrushValue arg'1, QBrushValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QBrushConstPtr this) => QBrushPtr this where
+  toQBrush :: this -> QBrush
+
+setColor :: (QBrushPtr arg'1, M92.QColorValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setColor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBrush arg'1) $ \arg'1' ->
+  M92.withQColorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setColor' arg'1' arg'2')
+
+setGlobalColor :: (QBrushPtr arg'1) => arg'1 -> M58.QtGlobalColor -> HoppyP.IO ()
+setGlobalColor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBrush arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setGlobalColor' arg'1' arg'2')
+
+setStyle :: (QBrushPtr arg'1) => arg'1 -> M58.QtBrushStyle -> HoppyP.IO ()
+setStyle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBrush arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setStyle' arg'1' arg'2')
+
+swap :: (QBrushPtr arg'1, QBrushPtr arg'2) => arg'1 -> 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')
+
+setTransform :: (QBrushPtr arg'1, M144.QTransformValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setTransform arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBrush arg'1) $ \arg'1' ->
+  M144.withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTransform' arg'1' arg'2')
+
+aSSIGN :: (QBrushPtr arg'1, QBrushValue arg'2) => arg'1 -> 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 :: (M92.QColorValue arg'1) => arg'1 -> HoppyP.IO QBrush
+newWithColor arg'1 =
+  M92.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/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,273 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QClipboard (
+  castQClipboardToQObject,
+  castQObjectToQClipboard,
+  QClipboardValue (..),
+  QClipboardConstPtr (..),
+  ownsClipboard,
+  ownsFindBuffer,
+  ownsSelection,
+  supportsFindBuffer,
+  supportsSelection,
+  text,
+  textWithMode,
+  textSubtype,
+  textSubtypeWithMode,
+  QClipboardPtr (..),
+  clear,
+  clearWithMode,
+  setText,
+  setTextWithMode,
+  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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+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_ownsClipboard" ownsClipboard' ::  HoppyF.Ptr QClipboardConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QClipboard_ownsFindBuffer" ownsFindBuffer' ::  HoppyF.Ptr QClipboardConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QClipboard_ownsSelection" ownsSelection' ::  HoppyF.Ptr QClipboardConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QClipboard_setText" setText' ::  HoppyF.Ptr QClipboard -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QClipboard_setTextWithMode" setTextWithMode' ::  HoppyF.Ptr QClipboard -> HoppyF.Ptr M46.QStringConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QClipboard_supportsFindBuffer" supportsFindBuffer' ::  HoppyF.Ptr QClipboardConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QClipboard_supportsSelection" supportsSelection' ::  HoppyF.Ptr QClipboardConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QClipboard_text" text' ::  HoppyF.Ptr QClipboardConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QClipboard_textWithMode" textWithMode' ::  HoppyF.Ptr QClipboardConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QClipboard_textSubtype" textSubtype' ::  HoppyF.Ptr QClipboardConst -> HoppyF.Ptr M46.QString -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QClipboard_textSubtypeWithMode" textSubtypeWithMode' ::  HoppyF.Ptr QClipboardConst -> HoppyF.Ptr M46.QString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "gencast__QClipboard__QObject" castQClipboardToQObject :: HoppyF.Ptr QClipboardConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QClipboard" castQObjectToQClipboard :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr QClipboardConst
+
+class QClipboardValue a where
+  withQClipboardPtr :: a -> (QClipboardConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QClipboardConstPtr a => QClipboardValue a where
+#else
+instance QClipboardConstPtr a => QClipboardValue a where
+#endif
+  withQClipboardPtr = HoppyP.flip ($) . toQClipboardConst
+
+class (M30.QObjectConstPtr this) => QClipboardConstPtr this where
+  toQClipboardConst :: this -> QClipboardConst
+
+ownsClipboard :: (QClipboardValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+ownsClipboard arg'1 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (ownsClipboard' arg'1')
+
+ownsFindBuffer :: (QClipboardValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+ownsFindBuffer arg'1 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (ownsFindBuffer' arg'1')
+
+ownsSelection :: (QClipboardValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+ownsSelection arg'1 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (ownsSelection' arg'1')
+
+supportsFindBuffer :: (QClipboardValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+supportsFindBuffer arg'1 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (supportsFindBuffer' arg'1')
+
+supportsSelection :: (QClipboardValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+supportsSelection arg'1 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (supportsSelection' arg'1')
+
+text :: (QClipboardValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+text arg'1 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (text' arg'1')
+
+textWithMode :: (QClipboardValue arg'1) => arg'1 -> QClipboardMode -> HoppyP.IO QtahP.String
+textWithMode arg'1 arg'2 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (textWithMode' arg'1' arg'2')
+
+textSubtype :: (QClipboardValue arg'1, M46.QStringPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QtahP.String
+textSubtype arg'1 arg'2 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M46.toQString arg'2) $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (textSubtype' arg'1' arg'2')
+
+textSubtypeWithMode :: (QClipboardValue arg'1, M46.QStringPtr arg'2) => arg'1 -> 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 (M46.toQString arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (textSubtypeWithMode' arg'1' arg'2' arg'3')
+
+class (QClipboardConstPtr this, M30.QObjectPtr this) => QClipboardPtr this where
+  toQClipboard :: this -> QClipboard
+
+clear :: (QClipboardPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQClipboard arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+clearWithMode :: (QClipboardPtr arg'1) => arg'1 -> QClipboardMode -> HoppyP.IO ()
+clearWithMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQClipboard arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (clearWithMode' arg'1' arg'2')
+
+setText :: (QClipboardPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQClipboard arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setText' arg'1' arg'2')
+
+setTextWithMode :: (QClipboardPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> QClipboardMode -> HoppyP.IO ()
+setTextWithMode arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQClipboard arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (setTextWithMode' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr QClipboardConst where
+  toQObjectConst (QClipboardConst ptr') = M30.QObjectConst $ castQClipboardToQObject ptr'
+  toQObjectConst (QClipboardConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr QClipboard where
+  toQObjectConst (QClipboard ptr') = M30.QObjectConst $ castQClipboardToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QClipboard -> HoppyF.Ptr QClipboardConst) ptr'
+  toQObjectConst (QClipboardGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQClipboardToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QClipboard -> HoppyF.Ptr QClipboardConst) ptr'
+
+instance M30.QObjectPtr QClipboard where
+  toQObject (QClipboard ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQClipboardToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QClipboard -> HoppyF.Ptr QClipboardConst) ptr'
+  toQObject (QClipboardGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQClipboardToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QClipboard -> HoppyF.Ptr QClipboardConst) ptr'
+
+class QClipboardSuper a where
+  downToQClipboard :: a -> QClipboard
+
+instance QClipboardSuper M30.QObject where
+  downToQClipboard = castQClipboardToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QClipboardConst $ castQObjectToQClipboard ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QClipboardConstGc fptr' $ castQObjectToQClipboard ptr'
+
+class QClipboardSuperConst a where
+  downToQClipboardConst :: a -> QClipboardConst
+
+instance QClipboardSuperConst M30.QObjectConst where
+  downToQClipboardConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QClipboardConst $ castQObjectToQClipboard ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QClipboardMode where
+  fromEnum Clipboard = 0
+  fromEnum Selection = 1
+  fromEnum FindBuffer = 2
+  
+  toEnum (0) = Clipboard
+  toEnum (1) = Selection
+  toEnum (2) = FindBuffer
+  toEnum n' = HoppyP.error $ "Unknown QClipboardMode numeric value: " ++ HoppyP.show n'
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,168 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M16
+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 M16.QEventConst
+foreign import ccall "gencast__QEvent__QCloseEvent" castQEventToQCloseEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QCloseEventConstPtr a => QCloseEventValue a where
+#else
+instance QCloseEventConstPtr a => QCloseEventValue a where
+#endif
+  withQCloseEventPtr = HoppyP.flip ($) . toQCloseEventConst
+
+class (M16.QEventConstPtr this) => QCloseEventConstPtr this where
+  toQCloseEventConst :: this -> QCloseEventConst
+
+class (QCloseEventConstPtr this, M16.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 M16.QEventConstPtr QCloseEventConst where
+  toQEventConst (QCloseEventConst ptr') = M16.QEventConst $ castQCloseEventToQEvent ptr'
+  toQEventConst (QCloseEventConstGc fptr' ptr') = M16.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 M16.QEventConstPtr QCloseEvent where
+  toQEventConst (QCloseEvent ptr') = M16.QEventConst $ castQCloseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QCloseEvent -> HoppyF.Ptr QCloseEventConst) ptr'
+  toQEventConst (QCloseEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQCloseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QCloseEvent -> HoppyF.Ptr QCloseEventConst) ptr'
+
+instance M16.QEventPtr QCloseEvent where
+  toQEvent (QCloseEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQCloseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QCloseEvent -> HoppyF.Ptr QCloseEventConst) ptr'
+  toQEvent (QCloseEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.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 M16.QEvent where
+  downToQCloseEvent = castQCloseEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QCloseEventConst $ castQEventToQCloseEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QCloseEventConstGc fptr' $ castQEventToQCloseEvent ptr'
+
+class QCloseEventSuperConst a where
+  downToQCloseEventConst :: a -> QCloseEventConst
+
+instance QCloseEventSuperConst M16.QEventConst where
+  downToQCloseEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QCloseEventConst $ castQEventToQCloseEvent ptr'
+      cast' (M16.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,1075 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M46
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M48
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+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 M46.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 M48.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 HoppyFHR.CBool
+foreign import ccall "genpop__QColor_isValidColor" isValidColor' ::  HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFHR.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 M46.QStringConst)
+foreign import ccall "genpop__QColor_nameWithFormat" nameWithFormat' ::  HoppyF.Ptr QColorConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.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 M46.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 HoppyFHR.CBool
+foreign import ccall "genpop__QColor_NE" nE' ::  HoppyF.Ptr QColorConst -> HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QColorConstPtr a => QColorValue a where
+#else
+instance QColorConstPtr a => QColorValue a where
+#endif
+  withQColorPtr = HoppyP.flip ($) . toQColorConst
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPING #-} QColorValue (HColor.HColor) where
+#else
+instance QColorValue (HColor.HColor) where
+#endif
+  withQColorPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QColorConstPtr this where
+  toQColorConst :: this -> QColorConst
+
+alpha :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+alpha arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (alpha' arg'1')
+
+alphaF :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+alphaF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (alphaF' arg'1')
+
+black :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+black arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (black' arg'1')
+
+blackF :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+blackF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (blackF' arg'1')
+
+blue :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+blue arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (blue' arg'1')
+
+blueF :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+blueF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (blueF' arg'1')
+
+convertTo :: (QColorValue arg'1) => arg'1 -> QColorSpec -> HoppyP.IO HColor.HColor
+convertTo arg'1 arg'2 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (convertTo' arg'1' arg'2')
+
+cyan :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+cyan arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (cyan' arg'1')
+
+cyanF :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+cyanF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (cyanF' arg'1')
+
+darker :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HColor.HColor
+darker arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (darker' arg'1')
+
+darkerBy :: (QColorValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HColor.HColor
+darkerBy arg'1 arg'2 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (darkerBy' arg'1' arg'2')
+
+green :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+green arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (green' arg'1')
+
+greenF :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+greenF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (greenF' arg'1')
+
+hslHue :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+hslHue arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (hslHue' arg'1')
+
+hslHueF :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+hslHueF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (hslHueF' arg'1')
+
+hslSaturation :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+hslSaturation arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (hslSaturation' arg'1')
+
+hslSaturationF :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+hslSaturationF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (hslSaturationF' arg'1')
+
+hsvHue :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+hsvHue arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (hsvHue' arg'1')
+
+hsvHueF :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+hsvHueF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (hsvHueF' arg'1')
+
+hsvSaturation :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+hsvSaturation arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (hsvSaturation' arg'1')
+
+hsvSaturationF :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+hsvSaturationF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (hsvSaturationF' arg'1')
+
+hue :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+hue arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (hue' arg'1')
+
+hueF :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+hueF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (hueF' arg'1')
+
+isValid :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isValid arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isValid' arg'1')
+
+lighter :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HColor.HColor
+lighter arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (lighter' arg'1')
+
+lighterBy :: (QColorValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HColor.HColor
+lighterBy arg'1 arg'2 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (lighterBy' arg'1' arg'2')
+
+lightness :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+lightness arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lightness' arg'1')
+
+lightnessF :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+lightnessF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (lightnessF' arg'1')
+
+magenta :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+magenta arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (magenta' arg'1')
+
+magentaF :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+magentaF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (magentaF' arg'1')
+
+name :: (QColorValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+name arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (name' arg'1')
+
+nameWithFormat :: (QColorValue arg'1) => arg'1 -> QColorNameFormat -> HoppyP.IO QtahP.String
+nameWithFormat arg'1 arg'2 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (nameWithFormat' arg'1' arg'2')
+
+red :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+red arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (red' arg'1')
+
+redF :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+redF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (redF' arg'1')
+
+rgb :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyFC.CUInt
+rgb arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (rgb' arg'1')
+
+rgba :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyFC.CUInt
+rgba arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (rgba' arg'1')
+
+saturation :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+saturation arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (saturation' arg'1')
+
+saturationF :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+saturationF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (saturationF' arg'1')
+
+spec :: (QColorValue arg'1) => arg'1 -> HoppyP.IO QColorSpec
+spec arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (spec' arg'1')
+
+toCmyk :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HColor.HColor
+toCmyk arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (toCmyk' arg'1')
+
+toHsl :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HColor.HColor
+toHsl arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (toHsl' arg'1')
+
+toHsv :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HColor.HColor
+toHsv arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (toHsv' arg'1')
+
+toRgb :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HColor.HColor
+toRgb arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (toRgb' arg'1')
+
+value :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+value arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (value' arg'1')
+
+valueF :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+valueF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (valueF' arg'1')
+
+yellow :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+yellow arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (yellow' arg'1')
+
+yellowF :: (QColorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+yellowF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (yellowF' arg'1')
+
+eQ :: (QColorValue arg'1, QColorValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QColorValue arg'1, QColorValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QColorConstPtr this) => QColorPtr this where
+  toQColor :: this -> QColor
+
+setAlpha :: (QColorPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setAlpha arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setAlpha' arg'1' arg'2')
+
+setAlphaF :: (QColorPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setAlphaF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setAlphaF' arg'1' arg'2')
+
+setBlue :: (QColorPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setBlue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setBlue' arg'1' arg'2')
+
+setBlueF :: (QColorPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setBlueF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setBlueF' arg'1' arg'2')
+
+setGreen :: (QColorPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setGreen arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setGreen' arg'1' arg'2')
+
+setGreenF :: (QColorPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setGreenF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setGreenF' arg'1' arg'2')
+
+setRed :: (QColorPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setRed arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setRed' arg'1' arg'2')
+
+setRedF :: (QColorPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setRedF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setRedF' arg'1' arg'2')
+
+setCmyk :: (QColorPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (setCmyk' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setCmyka :: (QColorPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  let arg'6' = HoppyFHR.coerceIntegral arg'6 in
+  (setCmyka' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+setCmykF :: (QColorPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (setCmykF' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setCmykaF :: (QColorPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  let arg'6' = HoppyP.realToFrac arg'6 in
+  (setCmykaF' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+setHsl :: (QColorPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setHsl arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  (setHsl' arg'1' arg'2' arg'3' arg'4')
+
+setHsla :: (QColorPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (setHsla' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setHslF :: (QColorPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO ()
+setHslF arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  (setHslF' arg'1' arg'2' arg'3' arg'4')
+
+setHslaF :: (QColorPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (setHslaF' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setHsv :: (QColorPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setHsv arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  (setHsv' arg'1' arg'2' arg'3' arg'4')
+
+setHsva :: (QColorPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (setHsva' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setHsvF :: (QColorPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO ()
+setHsvF arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  (setHsvF' arg'1' arg'2' arg'3' arg'4')
+
+setHsvaF :: (QColorPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (setHsvaF' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setNamedColor :: (QColorPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setNamedColor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setNamedColor' arg'1' arg'2')
+
+setQRgb :: (QColorPtr arg'1) => arg'1 -> 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 arg'1) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setRgb arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  (setRgb' arg'1' arg'2' arg'3' arg'4')
+
+setRgba :: (QColorPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (setRgba' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setRgbF :: (QColorPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO ()
+setRgbF arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  (setRgbF' arg'1' arg'2' arg'3' arg'4')
+
+setRgbaF :: (QColorPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (setRgbaF' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+aSSIGN :: (QColorPtr arg'1, QColorValue arg'2) => arg'1 -> 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 . M48.QStringListConst) =<<
+  (colorNames')
+
+isValidColor :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isValidColor arg'1 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 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 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  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 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  HoppyP.fmap QColor
+  (newRgba' arg'1' arg'2' arg'3' arg'4')
+
+newNamedColor :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO QColor
+newNamedColor arg'1 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QColor
+  (newNamedColor' arg'1')
+
+newGlobalColor ::  M58.QtGlobalColor -> HoppyP.IO QColor
+newGlobalColor arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  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'
+
+data QColorNameFormat =
+  HexRgb
+  | HexArgb
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QColorNameFormat where
+  fromEnum HexRgb = 0
+  fromEnum HexArgb = 1
+  
+  toEnum (0) = HexRgb
+  toEnum (1) = HexArgb
+  toEnum n' = HoppyP.error $ "Unknown QColorNameFormat numeric value: " ++ HoppyP.show n'
+
+data QColorSpec =
+  Invalid
+  | Rgb
+  | Hsv
+  | Cmyk
+  | Hsl
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QColorSpec where
+  fromEnum Invalid = 0
+  fromEnum Rgb = 1
+  fromEnum Hsv = 2
+  fromEnum Cmyk = 3
+  fromEnum Hsl = 4
+  
+  toEnum (0) = Invalid
+  toEnum (1) = Rgb
+  toEnum (2) = Hsv
+  toEnum (3) = Cmyk
+  toEnum (4) = Hsl
+  toEnum n' = HoppyP.error $ "Unknown QColorSpec numeric value: " ++ HoppyP.show n'
+
+qAlpha ::  HoppyFC.CUInt -> HoppyP.Int
+{-# NOINLINE qAlpha #-}
+qAlpha arg'1 = HoppySIU.unsafePerformIO $
+  let arg'1' = arg'1 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (qAlpha' arg'1')
+
+qBlue ::  HoppyFC.CUInt -> HoppyP.Int
+{-# NOINLINE qBlue #-}
+qBlue arg'1 = HoppySIU.unsafePerformIO $
+  let arg'1' = arg'1 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (qBlue' arg'1')
+
+qGray ::  HoppyFC.CUInt -> HoppyP.Int
+{-# NOINLINE qGray #-}
+qGray arg'1 = HoppySIU.unsafePerformIO $
+  let arg'1' = arg'1 in
+  HoppyP.fmap 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 $
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap 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.fmap 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.fmap 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 $
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (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 $
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  (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/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,322 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Graphics.UI.Qtah.Generated.Gui.QValidator as M146
+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 M30.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 M30.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 M146.QValidatorConst
+foreign import ccall "gencast__QValidator__QDoubleValidator" castQValidatorToQDoubleValidator :: HoppyF.Ptr M146.QValidatorConst -> HoppyF.Ptr QDoubleValidatorConst
+foreign import ccall "gencast__QDoubleValidator__QObject" castQDoubleValidatorToQObject :: HoppyF.Ptr QDoubleValidatorConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QDoubleValidator" castQObjectToQDoubleValidator :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QDoubleValidatorConstPtr a => QDoubleValidatorValue a where
+#else
+instance QDoubleValidatorConstPtr a => QDoubleValidatorValue a where
+#endif
+  withQDoubleValidatorPtr = HoppyP.flip ($) . toQDoubleValidatorConst
+
+class (M146.QValidatorConstPtr this) => QDoubleValidatorConstPtr this where
+  toQDoubleValidatorConst :: this -> QDoubleValidatorConst
+
+bottom :: (QDoubleValidatorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+bottom arg'1 =
+  withQDoubleValidatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (bottom' arg'1')
+
+decimals :: (QDoubleValidatorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+decimals arg'1 =
+  withQDoubleValidatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (decimals' arg'1')
+
+notation :: (QDoubleValidatorValue arg'1) => arg'1 -> HoppyP.IO QDoubleValidatorNotation
+notation arg'1 =
+  withQDoubleValidatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (notation' arg'1')
+
+top :: (QDoubleValidatorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+top arg'1 =
+  withQDoubleValidatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (top' arg'1')
+
+class (QDoubleValidatorConstPtr this, M146.QValidatorPtr this) => QDoubleValidatorPtr this where
+  toQDoubleValidator :: this -> QDoubleValidator
+
+setBottom :: (QDoubleValidatorPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setBottom arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleValidator arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setBottom' arg'1' arg'2')
+
+setDecimals :: (QDoubleValidatorPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setDecimals arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleValidator arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setDecimals' arg'1' arg'2')
+
+setNotation :: (QDoubleValidatorPtr arg'1) => arg'1 -> QDoubleValidatorNotation -> HoppyP.IO ()
+setNotation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleValidator arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setNotation' arg'1' arg'2')
+
+setRange :: (QDoubleValidatorPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO ()
+setRange arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQDoubleValidator arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  (setRange' arg'1' arg'2' arg'3')
+
+setRangeAndDecimals :: (QDoubleValidatorPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.Int -> HoppyP.IO ()
+setRangeAndDecimals arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQDoubleValidator arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  (setRangeAndDecimals' arg'1' arg'2' arg'3' arg'4')
+
+setTop :: (QDoubleValidatorPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setTop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleValidator arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (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 M146.QValidatorConstPtr QDoubleValidatorConst where
+  toQValidatorConst (QDoubleValidatorConst ptr') = M146.QValidatorConst $ castQDoubleValidatorToQValidator ptr'
+  toQValidatorConst (QDoubleValidatorConstGc fptr' ptr') = M146.QValidatorConstGc fptr' $ castQDoubleValidatorToQValidator ptr'
+
+instance M30.QObjectConstPtr QDoubleValidatorConst where
+  toQObjectConst (QDoubleValidatorConst ptr') = M30.QObjectConst $ castQDoubleValidatorToQObject ptr'
+  toQObjectConst (QDoubleValidatorConstGc fptr' ptr') = M30.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 M146.QValidatorConstPtr QDoubleValidator where
+  toQValidatorConst (QDoubleValidator ptr') = M146.QValidatorConst $ castQDoubleValidatorToQValidator $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+  toQValidatorConst (QDoubleValidatorGc fptr' ptr') = M146.QValidatorConstGc fptr' $ castQDoubleValidatorToQValidator $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+
+instance M146.QValidatorPtr QDoubleValidator where
+  toQValidator (QDoubleValidator ptr') = M146.QValidator $ (HoppyF.castPtr :: HoppyF.Ptr M146.QValidatorConst -> HoppyF.Ptr M146.QValidator) $ castQDoubleValidatorToQValidator $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+  toQValidator (QDoubleValidatorGc fptr' ptr') = M146.QValidatorGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M146.QValidatorConst -> HoppyF.Ptr M146.QValidator) $ castQDoubleValidatorToQValidator $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+
+instance M30.QObjectConstPtr QDoubleValidator where
+  toQObjectConst (QDoubleValidator ptr') = M30.QObjectConst $ castQDoubleValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+  toQObjectConst (QDoubleValidatorGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQDoubleValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+
+instance M30.QObjectPtr QDoubleValidator where
+  toQObject (QDoubleValidator ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQDoubleValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+  toQObject (QDoubleValidatorGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQDoubleValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+
+new ::  HoppyP.IO QDoubleValidator
+new =
+  HoppyP.fmap QDoubleValidator
+  (new')
+
+newWithParent :: (M30.QObjectPtr arg'1) => arg'1 -> HoppyP.IO QDoubleValidator
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M30.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 =
+  let arg'1' = HoppyP.realToFrac arg'1 in
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap QDoubleValidator
+  (newWithOptions' arg'1' arg'2' arg'3')
+
+newWithOptionsAndParent :: (M30.QObjectPtr arg'4) => HoppyP.Double -> HoppyP.Double -> HoppyP.Int -> arg'4 -> HoppyP.IO QDoubleValidator
+newWithOptionsAndParent arg'1 arg'2 arg'3 arg'4 =
+  let arg'1' = HoppyP.realToFrac arg'1 in
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyFHR.withCppPtr (M30.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 M146.QValidator where
+  downToQDoubleValidator = castQDoubleValidatorToNonconst . cast' . M146.castQValidatorToConst
+    where
+      cast' (M146.QValidatorConst ptr') = QDoubleValidatorConst $ castQValidatorToQDoubleValidator ptr'
+      cast' (M146.QValidatorConstGc fptr' ptr') = QDoubleValidatorConstGc fptr' $ castQValidatorToQDoubleValidator ptr'
+instance QDoubleValidatorSuper M30.QObject where
+  downToQDoubleValidator = castQDoubleValidatorToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QDoubleValidatorConst $ castQObjectToQDoubleValidator ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QDoubleValidatorConstGc fptr' $ castQObjectToQDoubleValidator ptr'
+
+class QDoubleValidatorSuperConst a where
+  downToQDoubleValidatorConst :: a -> QDoubleValidatorConst
+
+instance QDoubleValidatorSuperConst M146.QValidatorConst where
+  downToQDoubleValidatorConst = cast'
+    where
+      cast' (M146.QValidatorConst ptr') = QDoubleValidatorConst $ castQValidatorToQDoubleValidator ptr'
+      cast' (M146.QValidatorConstGc fptr' ptr') = QDoubleValidatorConstGc fptr' $ castQValidatorToQDoubleValidator ptr'
+instance QDoubleValidatorSuperConst M30.QObjectConst where
+  downToQDoubleValidatorConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QDoubleValidatorConst $ castQObjectToQDoubleValidator ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QDoubleValidatorNotation where
+  fromEnum StandardNotation = 0
+  fromEnum ScientificNotation = 1
+  
+  toEnum (0) = StandardNotation
+  toEnum (1) = ScientificNotation
+  toEnum n' = HoppyP.error $ "Unknown QDoubleValidatorNotation numeric value: " ++ HoppyP.show n'
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 CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M16
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M36
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QEnterEvent_new" new' ::  HoppyF.Ptr M36.QPointFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO (HoppyF.Ptr QEnterEvent)
+foreign import ccall "genpop__QEnterEvent_globalPos" globalPos' ::  HoppyF.Ptr QEnterEventConst -> HoppyP.IO (HoppyF.Ptr M34.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 M36.QPointFConst)
+foreign import ccall "genpop__QEnterEvent_pos" pos' ::  HoppyF.Ptr QEnterEventConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QEnterEvent_screenPos" screenPos' ::  HoppyF.Ptr QEnterEventConst -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QEnterEvent_windowPos" windowPos' ::  HoppyF.Ptr QEnterEventConst -> HoppyP.IO (HoppyF.Ptr M36.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 M16.QEventConst
+foreign import ccall "gencast__QEvent__QEnterEvent" castQEventToQEnterEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QEnterEventConstPtr a => QEnterEventValue a where
+#else
+instance QEnterEventConstPtr a => QEnterEventValue a where
+#endif
+  withQEnterEventPtr = HoppyP.flip ($) . toQEnterEventConst
+
+class (M16.QEventConstPtr this) => QEnterEventConstPtr this where
+  toQEnterEventConst :: this -> QEnterEventConst
+
+globalPos :: (QEnterEventValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+globalPos arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (globalPos' arg'1')
+
+globalX :: (QEnterEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+globalX arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (globalX' arg'1')
+
+globalY :: (QEnterEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+globalY arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (globalY' arg'1')
+
+localPos :: (QEnterEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+localPos arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (localPos' arg'1')
+
+pos :: (QEnterEventValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+pos arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (pos' arg'1')
+
+screenPos :: (QEnterEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+screenPos arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (screenPos' arg'1')
+
+windowPos :: (QEnterEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+windowPos arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (windowPos' arg'1')
+
+x :: (QEnterEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+x arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (x' arg'1')
+
+y :: (QEnterEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+y arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (y' arg'1')
+
+class (QEnterEventConstPtr this, M16.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 M16.QEventConstPtr QEnterEventConst where
+  toQEventConst (QEnterEventConst ptr') = M16.QEventConst $ castQEnterEventToQEvent ptr'
+  toQEventConst (QEnterEventConstGc fptr' ptr') = M16.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 M16.QEventConstPtr QEnterEvent where
+  toQEventConst (QEnterEvent ptr') = M16.QEventConst $ castQEnterEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QEnterEvent -> HoppyF.Ptr QEnterEventConst) ptr'
+  toQEventConst (QEnterEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQEnterEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QEnterEvent -> HoppyF.Ptr QEnterEventConst) ptr'
+
+instance M16.QEventPtr QEnterEvent where
+  toQEvent (QEnterEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQEnterEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QEnterEvent -> HoppyF.Ptr QEnterEventConst) ptr'
+  toQEvent (QEnterEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQEnterEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QEnterEvent -> HoppyF.Ptr QEnterEventConst) ptr'
+
+new :: (M36.QPointFValue arg'1, M36.QPointFValue arg'2, M36.QPointFValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO QEnterEvent
+new arg'1 arg'2 arg'3 =
+  M36.withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M36.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 M16.QEvent where
+  downToQEnterEvent = castQEnterEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QEnterEventConst $ castQEventToQEnterEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QEnterEventConstGc fptr' $ castQEventToQEnterEvent ptr'
+
+class QEnterEventSuperConst a where
+  downToQEnterEventConst :: a -> QEnterEventConst
+
+instance QEnterEventSuperConst M16.QEventConst where
+  downToQEnterEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QEnterEventConst $ castQEventToQEnterEvent ptr'
+      cast' (M16.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,178 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M16
+import qualified Graphics.UI.Qtah.Generated.Gui.QRegion as M138
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QExposeEvent_new" new' ::  HoppyF.Ptr M138.QRegionConst -> HoppyP.IO (HoppyF.Ptr QExposeEvent)
+foreign import ccall "genpop__QExposeEvent_region" region' ::  HoppyF.Ptr QExposeEventConst -> HoppyP.IO (HoppyF.Ptr M138.QRegionConst)
+foreign import ccall "gencast__QExposeEvent__QEvent" castQExposeEventToQEvent :: HoppyF.Ptr QExposeEventConst -> HoppyF.Ptr M16.QEventConst
+foreign import ccall "gencast__QEvent__QExposeEvent" castQEventToQExposeEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QExposeEventConstPtr a => QExposeEventValue a where
+#else
+instance QExposeEventConstPtr a => QExposeEventValue a where
+#endif
+  withQExposeEventPtr = HoppyP.flip ($) . toQExposeEventConst
+
+class (M16.QEventConstPtr this) => QExposeEventConstPtr this where
+  toQExposeEventConst :: this -> QExposeEventConst
+
+region :: (QExposeEventValue arg'1) => arg'1 -> HoppyP.IO M138.QRegion
+region arg'1 =
+  withQExposeEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M138.QRegionConst) =<<
+  (region' arg'1')
+
+class (QExposeEventConstPtr this, M16.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 M16.QEventConstPtr QExposeEventConst where
+  toQEventConst (QExposeEventConst ptr') = M16.QEventConst $ castQExposeEventToQEvent ptr'
+  toQEventConst (QExposeEventConstGc fptr' ptr') = M16.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 M16.QEventConstPtr QExposeEvent where
+  toQEventConst (QExposeEvent ptr') = M16.QEventConst $ castQExposeEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QExposeEvent -> HoppyF.Ptr QExposeEventConst) ptr'
+  toQEventConst (QExposeEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQExposeEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QExposeEvent -> HoppyF.Ptr QExposeEventConst) ptr'
+
+instance M16.QEventPtr QExposeEvent where
+  toQEvent (QExposeEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQExposeEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QExposeEvent -> HoppyF.Ptr QExposeEventConst) ptr'
+  toQEvent (QExposeEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQExposeEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QExposeEvent -> HoppyF.Ptr QExposeEventConst) ptr'
+
+new :: (M138.QRegionValue arg'1) => arg'1 -> HoppyP.IO QExposeEvent
+new arg'1 =
+  M138.withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QExposeEvent
+  (new' arg'1')
+
+class QExposeEventSuper a where
+  downToQExposeEvent :: a -> QExposeEvent
+
+instance QExposeEventSuper M16.QEvent where
+  downToQExposeEvent = castQExposeEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QExposeEventConst $ castQEventToQExposeEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QExposeEventConstGc fptr' $ castQEventToQExposeEvent ptr'
+
+class QExposeEventSuperConst a where
+  downToQExposeEventConst :: a -> QExposeEventConst
+
+instance QExposeEventSuperConst M16.QEventConst where
+  downToQExposeEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QExposeEventConst $ castQEventToQExposeEvent ptr'
+      cast' (M16.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/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,196 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M16
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+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 HoppyFHR.CBool
+foreign import ccall "genpop__QFocusEvent_lostFocus" lostFocus' ::  HoppyF.Ptr QFocusEventConst -> HoppyP.IO HoppyFHR.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 M16.QEventConst
+foreign import ccall "gencast__QEvent__QFocusEvent" castQEventToQFocusEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QFocusEventConstPtr a => QFocusEventValue a where
+#else
+instance QFocusEventConstPtr a => QFocusEventValue a where
+#endif
+  withQFocusEventPtr = HoppyP.flip ($) . toQFocusEventConst
+
+class (M16.QEventConstPtr this) => QFocusEventConstPtr this where
+  toQFocusEventConst :: this -> QFocusEventConst
+
+gotFocus :: (QFocusEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+gotFocus arg'1 =
+  withQFocusEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (gotFocus' arg'1')
+
+lostFocus :: (QFocusEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+lostFocus arg'1 =
+  withQFocusEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (lostFocus' arg'1')
+
+reason :: (QFocusEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtFocusReason
+reason arg'1 =
+  withQFocusEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (reason' arg'1')
+
+class (QFocusEventConstPtr this, M16.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 M16.QEventConstPtr QFocusEventConst where
+  toQEventConst (QFocusEventConst ptr') = M16.QEventConst $ castQFocusEventToQEvent ptr'
+  toQEventConst (QFocusEventConstGc fptr' ptr') = M16.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 M16.QEventConstPtr QFocusEvent where
+  toQEventConst (QFocusEvent ptr') = M16.QEventConst $ castQFocusEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QFocusEvent -> HoppyF.Ptr QFocusEventConst) ptr'
+  toQEventConst (QFocusEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQFocusEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QFocusEvent -> HoppyF.Ptr QFocusEventConst) ptr'
+
+instance M16.QEventPtr QFocusEvent where
+  toQEvent (QFocusEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQFocusEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QFocusEvent -> HoppyF.Ptr QFocusEventConst) ptr'
+  toQEvent (QFocusEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQFocusEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QFocusEvent -> HoppyF.Ptr QFocusEventConst) ptr'
+
+new ::  M16.QEventType -> M58.QtFocusReason -> HoppyP.IO QFocusEvent
+new arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  HoppyP.fmap QFocusEvent
+  (new' arg'1' arg'2')
+
+class QFocusEventSuper a where
+  downToQFocusEvent :: a -> QFocusEvent
+
+instance QFocusEventSuper M16.QEvent where
+  downToQFocusEvent = castQFocusEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QFocusEventConst $ castQEventToQFocusEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QFocusEventConstGc fptr' $ castQEventToQFocusEvent ptr'
+
+class QFocusEventSuperConst a where
+  downToQFocusEventConst :: a -> QFocusEventConst
+
+instance QFocusEventSuperConst M16.QEventConst where
+  downToQFocusEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QFocusEventConst $ castQEventToQFocusEvent ptr'
+      cast' (M16.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QFont.hs
@@ -0,0 +1,208 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QFont (
+  QFontValue (..),
+  QFontConstPtr (..),
+  eQ,
+  nE,
+  QFontPtr (..),
+  setPixelSize,
+  setPointSize,
+  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_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_EQ" eQ' ::  HoppyF.Ptr QFontConst -> HoppyF.Ptr QFontConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QFont_NE" nE' ::  HoppyF.Ptr QFontConst -> HoppyF.Ptr QFontConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QFontConstPtr a => QFontValue a where
+#else
+instance QFontConstPtr a => QFontValue a where
+#endif
+  withQFontPtr = HoppyP.flip ($) . toQFontConst
+
+class (HoppyFHR.CppPtr this) => QFontConstPtr this where
+  toQFontConst :: this -> QFontConst
+
+eQ :: (QFontValue arg'1, QFontValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QFontValue arg'1, QFontValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QFontConstPtr this) => QFontPtr this where
+  toQFont :: this -> QFont
+
+setPixelSize :: (QFontPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setPixelSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFont arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setPixelSize' arg'1' arg'2')
+
+setPointSize :: (QFontPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setPointSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFont arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setPointSize' arg'1' arg'2')
+
+aSSIGN :: (QFontPtr arg'1, QFontValue arg'2) => arg'1 -> 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/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,168 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M16
+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 M16.QEventConst
+foreign import ccall "gencast__QEvent__QHideEvent" castQEventToQHideEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QHideEventConstPtr a => QHideEventValue a where
+#else
+instance QHideEventConstPtr a => QHideEventValue a where
+#endif
+  withQHideEventPtr = HoppyP.flip ($) . toQHideEventConst
+
+class (M16.QEventConstPtr this) => QHideEventConstPtr this where
+  toQHideEventConst :: this -> QHideEventConst
+
+class (QHideEventConstPtr this, M16.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 M16.QEventConstPtr QHideEventConst where
+  toQEventConst (QHideEventConst ptr') = M16.QEventConst $ castQHideEventToQEvent ptr'
+  toQEventConst (QHideEventConstGc fptr' ptr') = M16.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 M16.QEventConstPtr QHideEvent where
+  toQEventConst (QHideEvent ptr') = M16.QEventConst $ castQHideEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHideEvent -> HoppyF.Ptr QHideEventConst) ptr'
+  toQEventConst (QHideEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQHideEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHideEvent -> HoppyF.Ptr QHideEventConst) ptr'
+
+instance M16.QEventPtr QHideEvent where
+  toQEvent (QHideEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQHideEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHideEvent -> HoppyF.Ptr QHideEventConst) ptr'
+  toQEvent (QHideEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.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 M16.QEvent where
+  downToQHideEvent = castQHideEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QHideEventConst $ castQEventToQHideEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QHideEventConstGc fptr' $ castQEventToQHideEvent ptr'
+
+class QHideEventSuperConst a where
+  downToQHideEventConst :: a -> QHideEventConst
+
+instance QHideEventSuperConst M16.QEventConst where
+  downToQHideEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QHideEventConst $ castQEventToQHideEvent ptr'
+      cast' (M16.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 CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Generated.Core.QEvent as M16
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M36
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QInputEvent as M110
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QHoverEvent_new" new' ::  HoppyFC.CInt -> HoppyF.Ptr M36.QPointFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO (HoppyF.Ptr QHoverEvent)
+foreign import ccall "genpop__QHoverEvent_newWithModifiers" newWithModifiers' ::  HoppyFC.CInt -> HoppyF.Ptr M36.QPointFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QHoverEvent)
+foreign import ccall "genpop__QHoverEvent_oldPos" oldPos' ::  HoppyF.Ptr QHoverEventConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QHoverEvent_oldPosF" oldPosF' ::  HoppyF.Ptr QHoverEventConst -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QHoverEvent_pos" pos' ::  HoppyF.Ptr QHoverEventConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QHoverEvent_posF" posF' ::  HoppyF.Ptr QHoverEventConst -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "gencast__QHoverEvent__QInputEvent" castQHoverEventToQInputEvent :: HoppyF.Ptr QHoverEventConst -> HoppyF.Ptr M110.QInputEventConst
+foreign import ccall "gencast__QInputEvent__QHoverEvent" castQInputEventToQHoverEvent :: HoppyF.Ptr M110.QInputEventConst -> HoppyF.Ptr QHoverEventConst
+foreign import ccall "gencast__QHoverEvent__QEvent" castQHoverEventToQEvent :: HoppyF.Ptr QHoverEventConst -> HoppyF.Ptr M16.QEventConst
+foreign import ccall "gencast__QEvent__QHoverEvent" castQEventToQHoverEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QHoverEventConstPtr a => QHoverEventValue a where
+#else
+instance QHoverEventConstPtr a => QHoverEventValue a where
+#endif
+  withQHoverEventPtr = HoppyP.flip ($) . toQHoverEventConst
+
+class (M110.QInputEventConstPtr this) => QHoverEventConstPtr this where
+  toQHoverEventConst :: this -> QHoverEventConst
+
+oldPos :: (QHoverEventValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+oldPos arg'1 =
+  withQHoverEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (oldPos' arg'1')
+
+oldPosF :: (QHoverEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+oldPosF arg'1 =
+  withQHoverEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (oldPosF' arg'1')
+
+pos :: (QHoverEventValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+pos arg'1 =
+  withQHoverEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (pos' arg'1')
+
+posF :: (QHoverEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+posF arg'1 =
+  withQHoverEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (posF' arg'1')
+
+class (QHoverEventConstPtr this, M110.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 M110.QInputEventConstPtr QHoverEventConst where
+  toQInputEventConst (QHoverEventConst ptr') = M110.QInputEventConst $ castQHoverEventToQInputEvent ptr'
+  toQInputEventConst (QHoverEventConstGc fptr' ptr') = M110.QInputEventConstGc fptr' $ castQHoverEventToQInputEvent ptr'
+
+instance M16.QEventConstPtr QHoverEventConst where
+  toQEventConst (QHoverEventConst ptr') = M16.QEventConst $ castQHoverEventToQEvent ptr'
+  toQEventConst (QHoverEventConstGc fptr' ptr') = M16.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 M110.QInputEventConstPtr QHoverEvent where
+  toQInputEventConst (QHoverEvent ptr') = M110.QInputEventConst $ castQHoverEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+  toQInputEventConst (QHoverEventGc fptr' ptr') = M110.QInputEventConstGc fptr' $ castQHoverEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+
+instance M110.QInputEventPtr QHoverEvent where
+  toQInputEvent (QHoverEvent ptr') = M110.QInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr M110.QInputEventConst -> HoppyF.Ptr M110.QInputEvent) $ castQHoverEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+  toQInputEvent (QHoverEventGc fptr' ptr') = M110.QInputEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M110.QInputEventConst -> HoppyF.Ptr M110.QInputEvent) $ castQHoverEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+
+instance M16.QEventConstPtr QHoverEvent where
+  toQEventConst (QHoverEvent ptr') = M16.QEventConst $ castQHoverEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+  toQEventConst (QHoverEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQHoverEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+
+instance M16.QEventPtr QHoverEvent where
+  toQEvent (QHoverEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQHoverEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+  toQEvent (QHoverEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQHoverEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+
+new :: (M36.QPointFValue arg'2, M36.QPointFValue arg'3) => M16.QEventType -> arg'2 -> arg'3 -> HoppyP.IO QHoverEvent
+new arg'1 arg'2 arg'3 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M36.withQPointFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QHoverEvent
+  (new' arg'1' arg'2' arg'3')
+
+newWithModifiers :: (M36.QPointFValue arg'2, M36.QPointFValue arg'3, M58.IsQtKeyboardModifiers arg'4) => M16.QEventType -> arg'2 -> arg'3 -> arg'4 -> HoppyP.IO QHoverEvent
+newWithModifiers arg'1 arg'2 arg'3 arg'4 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M36.withQPointFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  let arg'4' = M58.fromQtKeyboardModifiers $ M58.toQtKeyboardModifiers arg'4 in
+  HoppyP.fmap QHoverEvent
+  (newWithModifiers' arg'1' arg'2' arg'3' arg'4')
+
+class QHoverEventSuper a where
+  downToQHoverEvent :: a -> QHoverEvent
+
+instance QHoverEventSuper M110.QInputEvent where
+  downToQHoverEvent = castQHoverEventToNonconst . cast' . M110.castQInputEventToConst
+    where
+      cast' (M110.QInputEventConst ptr') = QHoverEventConst $ castQInputEventToQHoverEvent ptr'
+      cast' (M110.QInputEventConstGc fptr' ptr') = QHoverEventConstGc fptr' $ castQInputEventToQHoverEvent ptr'
+instance QHoverEventSuper M16.QEvent where
+  downToQHoverEvent = castQHoverEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QHoverEventConst $ castQEventToQHoverEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QHoverEventConstGc fptr' $ castQEventToQHoverEvent ptr'
+
+class QHoverEventSuperConst a where
+  downToQHoverEventConst :: a -> QHoverEventConst
+
+instance QHoverEventSuperConst M110.QInputEventConst where
+  downToQHoverEventConst = cast'
+    where
+      cast' (M110.QInputEventConst ptr') = QHoverEventConst $ castQInputEventToQHoverEvent ptr'
+      cast' (M110.QInputEventConstGc fptr' ptr') = QHoverEventConstGc fptr' $ castQInputEventToQHoverEvent ptr'
+instance QHoverEventSuperConst M16.QEventConst where
+  downToQHoverEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QHoverEventConst $ castQEventToQHoverEvent ptr'
+      cast' (M16.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/QImage.hs b/src/Graphics/UI/Qtah/Generated/Gui/QImage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QImage.hs
@@ -0,0 +1,1173 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  loadFromData,
+  setOffset,
+  save,
+  scanLine,
+  setColor,
+  setColorTable,
+  setPixelAtPoint,
+  setPixelAtRaw,
+  setPixelColorAtPoint,
+  setPixelColorAtRaw,
+  setText,
+  swap,
+  aSSIGN,
+  newWithDataAndCleanup,
+  newWithConstDataAndCleanup,
+  newWithDataAndBytesPerLineAndCleanup,
+  newWithConstDataAndBytesPerLineAndCleanup,
+  newWithFileAndFormat,
+  fromData,
+  fromDataWithFormat,
+  loadWithFormat,
+  loadFromDataWithFormat,
+  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.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M42
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M48
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.QRgb as M82
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QColor as M92
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M120
+import qualified Graphics.UI.Qtah.Generated.Gui.QTransform as M144
+import qualified Graphics.UI.Qtah.Gui.HColor as HColor
+import qualified Graphics.UI.Qtah.Internal.Callback as M156
+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 M42.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 M46.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 M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_allGray" allGray' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFHR.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 M82.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 M38.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 -> HoppyFHR.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 M92.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_fromData" fromData' ::  HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_fromDataWithFormat" fromDataWithFormat' ::  HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_hasAlphaChannel" hasAlphaChannel' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QImage_isNull" isNull' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QImage_load" load' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QImage_loadWithFormat" loadWithFormat' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QImage_loadFromData" loadFromData' ::  HoppyF.Ptr QImage -> HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QImage_loadFromDataWithFormat" loadFromDataWithFormat' ::  HoppyF.Ptr QImage -> HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QImage_mirrored" mirrored' ::  HoppyF.Ptr QImageConst -> HoppyFHR.CBool -> HoppyFHR.CBool -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_offset" offset' ::  HoppyF.Ptr QImageConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QImage_setOffset" setOffset' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_pixelAtPoint" pixelAtPoint' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr M34.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 M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M92.QColorConst)
+foreign import ccall "genpop__QImage_pixelColorAtRaw" pixelColorAtRaw' ::  HoppyF.Ptr QImageConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M92.QColorConst)
+foreign import ccall "genpop__QImage_pixelIndexAtPoint" pixelIndexAtPoint' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr M34.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 M38.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 M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QImage_saveAll" saveAll' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QImage_scaled" scaled' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr M42.QSizeConst -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_scaledAll" scaledAll' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr M42.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 M82.QVectorQRgbConst -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_setPixelAtPoint" setPixelAtPoint' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M34.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 M34.QPointConst -> HoppyF.Ptr M92.QColorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_setPixelColorAtRaw" setPixelColorAtRaw' ::  HoppyF.Ptr QImage -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QColorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_setText" setText' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_size" size' ::  HoppyF.Ptr QImageConst -> HoppyP.IO (HoppyF.Ptr M42.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 M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QImage_textKeys" textKeys' ::  HoppyF.Ptr QImageConst -> HoppyP.IO (HoppyF.Ptr M48.QStringListConst)
+foreign import ccall "genpop__QImage_transformedWithTransform" transformedWithTransform' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr M144.QTransformConst -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_transformedWithTransformAll" transformedWithTransformAll' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr M144.QTransformConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_trueMatrixWithTransform" trueMatrixWithTransform' ::  HoppyF.Ptr M144.QTransformConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M144.QTransformConst)
+foreign import ccall "genpop__QImage_validAtPoint" validAtPoint' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QImage_validAtRaw" validAtRaw' ::  HoppyF.Ptr QImageConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QImage_NE" nE' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFHR.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 M120.QPaintDeviceConst
+foreign import ccall "gencast__QPaintDevice__QImage" castQPaintDeviceToQImage :: HoppyF.Ptr M120.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QImageConstPtr a => QImageValue a where
+#else
+instance QImageConstPtr a => QImageValue a where
+#endif
+  withQImagePtr = HoppyP.flip ($) . toQImageConst
+
+class (M120.QPaintDeviceConstPtr this) => QImageConstPtr this where
+  toQImageConst :: this -> QImageConst
+
+allGray :: (QImageValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+allGray arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (allGray' arg'1')
+
+bitPlaneCount :: (QImageValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+bitPlaneCount arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (bitPlaneCount' arg'1')
+
+bitsConst :: (QImageValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar)
+bitsConst arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (bitsConst' arg'1')
+
+byteCount :: (QImageValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+byteCount arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (byteCount' arg'1')
+
+bytesPerLine :: (QImageValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+bytesPerLine arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (bytesPerLine' arg'1')
+
+color :: (QImageValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyFC.CUInt
+color arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (color' arg'1' arg'2')
+
+colorCount :: (QImageValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+colorCount arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (colorCount' arg'1')
+
+colorTable :: (QImageValue arg'1) => arg'1 -> HoppyP.IO M82.QVectorQRgb
+colorTable arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap M82.QVectorQRgb
+  (colorTable' arg'1')
+
+constScanLine :: (QImageValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar)
+constScanLine arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (constScanLine' arg'1' arg'2')
+
+copyRect :: (QImageValue arg'1, M38.QRectValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QImage
+copyRect arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M38.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (copyRect' arg'1' arg'2')
+
+copyRaw :: (QImageValue arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (copyRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+createAlphaMask :: (QImageValue arg'1) => arg'1 -> HoppyP.IO QImage
+createAlphaMask arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (createAlphaMask' arg'1')
+
+createHeuristicMask :: (QImageValue arg'1) => arg'1 -> HoppyP.IO QImage
+createHeuristicMask arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (createHeuristicMask' arg'1')
+
+createHeuristicMaskWithClipTight :: (QImageValue arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO QImage
+createHeuristicMaskWithClipTight arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (createHeuristicMaskWithClipTight' arg'1' arg'2')
+
+createMaskFromColor :: (QImageValue arg'1) => arg'1 -> 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 arg'1) => arg'1 -> HoppyFC.CUInt -> M58.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
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (createMaskFromColorWithMode' arg'1' arg'2' arg'3')
+
+depth :: (QImageValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+depth arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (depth' arg'1')
+
+devicePixelRatio :: (QImageValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+devicePixelRatio arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (devicePixelRatio' arg'1')
+
+dotsPerMeterX :: (QImageValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+dotsPerMeterX arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (dotsPerMeterX' arg'1')
+
+dotsPerMeterY :: (QImageValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+dotsPerMeterY arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (dotsPerMeterY' arg'1')
+
+format :: (QImageValue arg'1) => arg'1 -> HoppyP.IO QImageFormat
+format arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (format' arg'1')
+
+hasAlphaChannel :: (QImageValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasAlphaChannel arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasAlphaChannel' arg'1')
+
+height :: (QImageValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+height arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (height' arg'1')
+
+isGrayscale :: (QImageValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isGrayscale arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isGrayscale' arg'1')
+
+isNull :: (QImageValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isNull arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isNull' arg'1')
+
+mirrored :: (QImageValue arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.Bool -> HoppyP.IO QImage
+mirrored arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  let arg'3' = if arg'3 then 1 else 0 in
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (mirrored' arg'1' arg'2' arg'3')
+
+offset :: (QImageValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+offset arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (offset' arg'1')
+
+pixelAtPoint :: (QImageValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyFC.CUInt
+pixelAtPoint arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (pixelAtPoint' arg'1' arg'2')
+
+pixelAtRaw :: (QImageValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO HoppyFC.CUInt
+pixelAtRaw arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (pixelAtRaw' arg'1' arg'2' arg'3')
+
+pixelColorAtPoint :: (QImageValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HColor.HColor
+pixelColorAtPoint arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M92.QColorConst) =<<
+  (pixelColorAtPoint' arg'1' arg'2')
+
+pixelColorAtRaw :: (QImageValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO HColor.HColor
+pixelColorAtRaw arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (HoppyFHR.decodeAndDelete . M92.QColorConst) =<<
+  (pixelColorAtRaw' arg'1' arg'2' arg'3')
+
+pixelIndexAtPoint :: (QImageValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+pixelIndexAtPoint arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (pixelIndexAtPoint' arg'1' arg'2')
+
+pixelIndexAtRaw :: (QImageValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+pixelIndexAtRaw arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (pixelIndexAtRaw' arg'1' arg'2' arg'3')
+
+rect :: (QImageValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+rect arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (rect' arg'1')
+
+rgbSwapped :: (QImageValue arg'1) => arg'1 -> HoppyP.IO QImage
+rgbSwapped arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (rgbSwapped' arg'1')
+
+scaled :: (QImageValue arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QImage
+scaled arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (scaled' arg'1' arg'2')
+
+scaledAll :: (QImageValue arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> M58.QtAspectRatioMode -> M58.QtTransformationMode -> HoppyP.IO QImage
+scaledAll arg'1 arg'2 arg'3 arg'4 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'4 in
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (scaledAll' arg'1' arg'2' arg'3' arg'4')
+
+scaledWithRaw :: (QImageValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QImage
+scaledWithRaw arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (scaledWithRaw' arg'1' arg'2' arg'3')
+
+scaledWithRawAll :: (QImageValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> M58.QtAspectRatioMode -> M58.QtTransformationMode -> HoppyP.IO QImage
+scaledWithRawAll arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'5 in
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (scaledWithRawAll' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+scaledToHeight :: (QImageValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QImage
+scaledToHeight arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (scaledToHeight' arg'1' arg'2')
+
+scaledToHeightAll :: (QImageValue arg'1) => arg'1 -> HoppyP.Int -> M58.QtTransformationMode -> HoppyP.IO QImage
+scaledToHeightAll arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (scaledToHeightAll' arg'1' arg'2' arg'3')
+
+scaledToWidth :: (QImageValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QImage
+scaledToWidth arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (scaledToWidth' arg'1' arg'2')
+
+scaledToWidthAll :: (QImageValue arg'1) => arg'1 -> HoppyP.Int -> M58.QtTransformationMode -> HoppyP.IO QImage
+scaledToWidthAll arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (scaledToWidthAll' arg'1' arg'2' arg'3')
+
+scanLineConst :: (QImageValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar)
+scanLineConst arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (scanLineConst' arg'1' arg'2')
+
+size :: (QImageValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+size arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (size' arg'1')
+
+text :: (QImageValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QtahP.String
+text arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (text' arg'1' arg'2')
+
+textKeys :: (QImageValue arg'1) => arg'1 -> HoppyP.IO [QtahP.String]
+textKeys arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M48.QStringListConst) =<<
+  (textKeys' arg'1')
+
+transformedWithTransform :: (QImageValue arg'1, M144.QTransformValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QImage
+transformedWithTransform arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M144.withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (transformedWithTransform' arg'1' arg'2')
+
+transformedWithTransformAll :: (QImageValue arg'1, M144.QTransformValue arg'2) => arg'1 -> arg'2 -> M58.QtTransformationMode -> HoppyP.IO QImage
+transformedWithTransformAll arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M144.withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (transformedWithTransformAll' arg'1' arg'2' arg'3')
+
+validAtPoint :: (QImageValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+validAtPoint arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (validAtPoint' arg'1' arg'2')
+
+validAtRaw :: (QImageValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+validAtRaw arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap (/= 0)
+  (validAtRaw' arg'1' arg'2' arg'3')
+
+width :: (QImageValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+width arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (width' arg'1')
+
+eQ :: (QImageValue arg'1, QImageValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QImageValue arg'1, QImageValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QImageConstPtr this, M120.QPaintDevicePtr this) => QImagePtr this where
+  toQImage :: this -> QImage
+
+bits :: (QImagePtr arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar)
+bits arg'1 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  (bits' arg'1')
+
+setColorCount :: (QImagePtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setColorCount arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setColorCount' arg'1' arg'2')
+
+setDevicePixelRatio :: (QImagePtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setDevicePixelRatio arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setDevicePixelRatio' arg'1' arg'2')
+
+setDotsPerMeterX :: (QImagePtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setDotsPerMeterX arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setDotsPerMeterX' arg'1' arg'2')
+
+setDotsPerMeterY :: (QImagePtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setDotsPerMeterY arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setDotsPerMeterY' arg'1' arg'2')
+
+fillWithPixel :: (QImagePtr arg'1) => arg'1 -> 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 arg'1, M92.QColorValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+fillWithColor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M92.withQColorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fillWithColor' arg'1' arg'2')
+
+fillWithGlobalColor :: (QImagePtr arg'1) => arg'1 -> M58.QtGlobalColor -> HoppyP.IO ()
+fillWithGlobalColor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (fillWithGlobalColor' arg'1' arg'2')
+
+invertPixels :: (QImagePtr arg'1) => arg'1 -> HoppyP.IO ()
+invertPixels arg'1 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  (invertPixels' arg'1')
+
+invertPixelsWithMode :: (QImagePtr arg'1) => arg'1 -> QImageInvertMode -> HoppyP.IO ()
+invertPixelsWithMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (invertPixelsWithMode' arg'1' arg'2')
+
+load :: (QImagePtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+load arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (load' arg'1' arg'2')
+
+loadFromData :: (QImagePtr arg'1) => arg'1 -> HoppyF.Ptr HoppyFC.CUChar -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+loadFromData arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap (/= 0)
+  (loadFromData' arg'1' arg'2' arg'3')
+
+setOffset :: (QImagePtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setOffset arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setOffset' arg'1' arg'2')
+
+save :: (QImagePtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+save arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (save' arg'1' arg'2')
+
+scanLine :: (QImagePtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar)
+scanLine arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (scanLine' arg'1' arg'2')
+
+setColor :: (QImagePtr arg'1) => arg'1 -> HoppyP.Int -> HoppyFC.CUInt -> HoppyP.IO ()
+setColor arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = arg'3 in
+  (setColor' arg'1' arg'2' arg'3')
+
+setColorTable :: (QImagePtr arg'1, M82.QVectorQRgbValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setColorTable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M82.withQVectorQRgbPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setColorTable' arg'1' arg'2')
+
+setPixelAtPoint :: (QImagePtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyFC.CUInt -> HoppyP.IO ()
+setPixelAtPoint arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = arg'3 in
+  (setPixelAtPoint' arg'1' arg'2' arg'3')
+
+setPixelAtRaw :: (QImagePtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyFC.CUInt -> HoppyP.IO ()
+setPixelAtRaw arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = arg'4 in
+  (setPixelAtRaw' arg'1' arg'2' arg'3' arg'4')
+
+setPixelColorAtPoint :: (QImagePtr arg'1, M34.QPointValue arg'2, M92.QColorValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO ()
+setPixelColorAtPoint arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M92.withQColorPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setPixelColorAtPoint' arg'1' arg'2' arg'3')
+
+setPixelColorAtRaw :: (QImagePtr arg'1, M92.QColorValue arg'4) => arg'1 -> HoppyP.Int -> HoppyP.Int -> arg'4 -> HoppyP.IO ()
+setPixelColorAtRaw arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  M92.withQColorPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (setPixelColorAtRaw' arg'1' arg'2' arg'3' arg'4')
+
+setText :: (QImagePtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO ()
+setText arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setText' arg'1' arg'2' arg'3')
+
+swap :: (QImagePtr arg'1, QImagePtr arg'2) => arg'1 -> 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 arg'1, QImageValue arg'2) => arg'1 -> 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
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'4 in
+  M156.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
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'4 in
+  M156.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
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'5 in
+  M156.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
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'5 in
+  M156.callbackVoid_new arg'6 >>= \arg'6' ->
+  HoppyP.fmap QImage
+  (newWithConstDataAndBytesPerLineAndCleanup' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+newWithFileAndFormat :: (M46.QStringValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QImage
+newWithFileAndFormat arg'1 arg'2 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QImage
+  (newWithFileAndFormat' arg'1' arg'2')
+
+fromData ::  HoppyF.Ptr HoppyFC.CUChar -> HoppyP.Int -> HoppyP.IO QImage
+fromData arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap QImage
+  (fromData' arg'1' arg'2')
+
+fromDataWithFormat :: (M46.QStringValue arg'3) => HoppyF.Ptr HoppyFC.CUChar -> HoppyP.Int -> arg'3 -> HoppyP.IO QImage
+fromDataWithFormat arg'1 arg'2 arg'3 =
+  let arg'1' = arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QImage
+  (fromDataWithFormat' arg'1' arg'2' arg'3')
+
+loadWithFormat :: (QImagePtr arg'1, M46.QStringValue arg'2, M46.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' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (loadWithFormat' arg'1' arg'2' arg'3')
+
+loadFromDataWithFormat :: (QImagePtr arg'1, M46.QStringValue arg'4) => arg'1 -> HoppyF.Ptr HoppyFC.CUChar -> HoppyP.Int -> arg'4 -> HoppyP.IO HoppyP.Bool
+loadFromDataWithFormat arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  M46.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap (/= 0)
+  (loadFromDataWithFormat' arg'1' arg'2' arg'3' arg'4')
+
+saveAll :: (QImagePtr arg'1, M46.QStringValue arg'2, M46.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' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  HoppyP.fmap (/= 0)
+  (saveAll' arg'1' arg'2' arg'3' arg'4')
+
+trueMatrixWithTransform :: (M144.QTransformValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO M144.QTransform
+trueMatrixWithTransform arg'1 arg'2 arg'3 =
+  M144.withQTransformPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (HoppyFHR.decodeAndDelete . M144.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 M120.QPaintDeviceConstPtr QImageConst where
+  toQPaintDeviceConst (QImageConst ptr') = M120.QPaintDeviceConst $ castQImageToQPaintDevice ptr'
+  toQPaintDeviceConst (QImageConstGc fptr' ptr') = M120.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 M120.QPaintDeviceConstPtr QImage where
+  toQPaintDeviceConst (QImage ptr') = M120.QPaintDeviceConst $ castQImageToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QImage -> HoppyF.Ptr QImageConst) ptr'
+  toQPaintDeviceConst (QImageGc fptr' ptr') = M120.QPaintDeviceConstGc fptr' $ castQImageToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QImage -> HoppyF.Ptr QImageConst) ptr'
+
+instance M120.QPaintDevicePtr QImage where
+  toQPaintDevice (QImage ptr') = M120.QPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr M120.QPaintDeviceConst -> HoppyF.Ptr M120.QPaintDevice) $ castQImageToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QImage -> HoppyF.Ptr QImageConst) ptr'
+  toQPaintDevice (QImageGc fptr' ptr') = M120.QPaintDeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M120.QPaintDeviceConst -> HoppyF.Ptr M120.QPaintDevice) $ castQImageToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QImage -> HoppyF.Ptr QImageConst) ptr'
+
+new ::  HoppyP.IO QImage
+new =
+  HoppyP.fmap QImage
+  (new')
+
+newWithSize :: (M42.QSizeValue arg'1) => arg'1 -> QImageFormat -> HoppyP.IO QImage
+newWithSize arg'1 arg'2 =
+  M42.withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  HoppyP.fmap QImage
+  (newWithSize' arg'1' arg'2')
+
+newWithSizeRaw ::  HoppyP.Int -> HoppyP.Int -> QImageFormat -> HoppyP.IO QImage
+newWithSizeRaw arg'1 arg'2 arg'3 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  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
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'4 in
+  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
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'4 in
+  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
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'4 in
+  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
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'4 in
+  HoppyP.fmap QImage
+  (newWithConstDataAndBytesPerLine' arg'1' arg'2' arg'3' arg'4')
+
+newWithFile :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO QImage
+newWithFile arg'1 =
+  M46.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 M120.QPaintDevice where
+  downToQImage = castQImageToNonconst . cast' . M120.castQPaintDeviceToConst
+    where
+      cast' (M120.QPaintDeviceConst ptr') = QImageConst $ castQPaintDeviceToQImage ptr'
+      cast' (M120.QPaintDeviceConstGc fptr' ptr') = QImageConstGc fptr' $ castQPaintDeviceToQImage ptr'
+
+class QImageSuperConst a where
+  downToQImageConst :: a -> QImageConst
+
+instance QImageSuperConst M120.QPaintDeviceConst where
+  downToQImageConst = cast'
+    where
+      cast' (M120.QPaintDeviceConst ptr') = QImageConst $ castQPaintDeviceToQImage ptr'
+      cast' (M120.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
+  | FormatARGB666Premultiplied
+  | FormatRGB555
+  | FormatARGB8555Premultiplied
+  | FormatRGB888
+  | FormatRGB444
+  | FormatARGB4444Premultiplied
+  | FormatRGBX8888
+  | FormatRGBA8888
+  | FormatRGBA8888Premultiplied
+  | FormatBGR30
+  | FormatA2BGR30Premultiplied
+  | FormatRGB30
+  | FormatA2RGB30Premultiplied
+  | FormatAlpha8
+  | FormatGrayscale8
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QImageFormat where
+  fromEnum FormatInvalid = 0
+  fromEnum FormatMono = 1
+  fromEnum FormatMonoLSB = 2
+  fromEnum FormatIndexed8 = 3
+  fromEnum FormatRGB32 = 4
+  fromEnum FormatARGB32 = 5
+  fromEnum FormatARGB32Premultiplied = 6
+  fromEnum FormatRGB16 = 7
+  fromEnum FormatARGB8565Premultiplied = 8
+  fromEnum FormatRGB666 = 9
+  fromEnum FormatARGB666Premultiplied = 10
+  fromEnum FormatRGB555 = 11
+  fromEnum FormatARGB8555Premultiplied = 12
+  fromEnum FormatRGB888 = 13
+  fromEnum FormatRGB444 = 14
+  fromEnum FormatARGB4444Premultiplied = 15
+  fromEnum FormatRGBX8888 = 16
+  fromEnum FormatRGBA8888 = 17
+  fromEnum FormatRGBA8888Premultiplied = 18
+  fromEnum FormatBGR30 = 19
+  fromEnum FormatA2BGR30Premultiplied = 20
+  fromEnum FormatRGB30 = 21
+  fromEnum FormatA2RGB30Premultiplied = 22
+  fromEnum FormatAlpha8 = 23
+  fromEnum FormatGrayscale8 = 24
+  
+  toEnum (0) = FormatInvalid
+  toEnum (1) = FormatMono
+  toEnum (2) = FormatMonoLSB
+  toEnum (3) = FormatIndexed8
+  toEnum (4) = FormatRGB32
+  toEnum (5) = FormatARGB32
+  toEnum (6) = FormatARGB32Premultiplied
+  toEnum (7) = FormatRGB16
+  toEnum (8) = FormatARGB8565Premultiplied
+  toEnum (9) = FormatRGB666
+  toEnum (10) = FormatARGB666Premultiplied
+  toEnum (11) = FormatRGB555
+  toEnum (12) = FormatARGB8555Premultiplied
+  toEnum (13) = FormatRGB888
+  toEnum (14) = FormatRGB444
+  toEnum (15) = FormatARGB4444Premultiplied
+  toEnum (16) = FormatRGBX8888
+  toEnum (17) = FormatRGBA8888
+  toEnum (18) = FormatRGBA8888Premultiplied
+  toEnum (19) = FormatBGR30
+  toEnum (20) = FormatA2BGR30Premultiplied
+  toEnum (21) = FormatRGB30
+  toEnum (22) = FormatA2RGB30Premultiplied
+  toEnum (23) = FormatAlpha8
+  toEnum (24) = FormatGrayscale8
+  toEnum n' = HoppyP.error $ "Unknown QImageFormat numeric value: " ++ HoppyP.show n'
+
+data QImageInvertMode =
+  InvertRgb
+  | InvertRgba
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QImageInvertMode where
+  fromEnum InvertRgb = 0
+  fromEnum InvertRgba = 1
+  
+  toEnum (0) = InvertRgb
+  toEnum (1) = InvertRgba
+  toEnum n' = HoppyP.error $ "Unknown QImageInvertMode numeric value: " ++ HoppyP.show n'
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,178 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Generated.Core.QEvent as M16
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+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 M16.QEventConst
+foreign import ccall "gencast__QEvent__QInputEvent" castQEventToQInputEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QInputEventConstPtr a => QInputEventValue a where
+#else
+instance QInputEventConstPtr a => QInputEventValue a where
+#endif
+  withQInputEventPtr = HoppyP.flip ($) . toQInputEventConst
+
+class (M16.QEventConstPtr this) => QInputEventConstPtr this where
+  toQInputEventConst :: this -> QInputEventConst
+
+modifiers :: (QInputEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtKeyboardModifiers
+modifiers arg'1 =
+  withQInputEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtKeyboardModifiers
+  (modifiers' arg'1')
+
+timestamp :: (QInputEventValue arg'1) => arg'1 -> HoppyP.IO HoppyFC.CULong
+timestamp arg'1 =
+  withQInputEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (timestamp' arg'1')
+
+class (QInputEventConstPtr this, M16.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 M16.QEventConstPtr QInputEventConst where
+  toQEventConst (QInputEventConst ptr') = M16.QEventConst $ castQInputEventToQEvent ptr'
+  toQEventConst (QInputEventConstGc fptr' ptr') = M16.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 M16.QEventConstPtr QInputEvent where
+  toQEventConst (QInputEvent ptr') = M16.QEventConst $ castQInputEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QInputEvent -> HoppyF.Ptr QInputEventConst) ptr'
+  toQEventConst (QInputEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQInputEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QInputEvent -> HoppyF.Ptr QInputEventConst) ptr'
+
+instance M16.QEventPtr QInputEvent where
+  toQEvent (QInputEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQInputEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QInputEvent -> HoppyF.Ptr QInputEventConst) ptr'
+  toQEvent (QInputEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQInputEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QInputEvent -> HoppyF.Ptr QInputEventConst) ptr'
+
+class QInputEventSuper a where
+  downToQInputEvent :: a -> QInputEvent
+
+instance QInputEventSuper M16.QEvent where
+  downToQInputEvent = castQInputEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QInputEventConst $ castQEventToQInputEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QInputEventConstGc fptr' $ castQEventToQInputEvent ptr'
+
+class QInputEventSuperConst a where
+  downToQInputEventConst :: a -> QInputEventConst
+
+instance QInputEventSuperConst M16.QEventConst where
+  downToQInputEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QInputEventConst $ castQEventToQInputEvent ptr'
+      cast' (M16.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,264 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Graphics.UI.Qtah.Generated.Gui.QValidator as M146
+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 M30.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 M30.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 M146.QValidatorConst
+foreign import ccall "gencast__QValidator__QIntValidator" castQValidatorToQIntValidator :: HoppyF.Ptr M146.QValidatorConst -> HoppyF.Ptr QIntValidatorConst
+foreign import ccall "gencast__QIntValidator__QObject" castQIntValidatorToQObject :: HoppyF.Ptr QIntValidatorConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QIntValidator" castQObjectToQIntValidator :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QIntValidatorConstPtr a => QIntValidatorValue a where
+#else
+instance QIntValidatorConstPtr a => QIntValidatorValue a where
+#endif
+  withQIntValidatorPtr = HoppyP.flip ($) . toQIntValidatorConst
+
+class (M146.QValidatorConstPtr this) => QIntValidatorConstPtr this where
+  toQIntValidatorConst :: this -> QIntValidatorConst
+
+bottom :: (QIntValidatorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+bottom arg'1 =
+  withQIntValidatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (bottom' arg'1')
+
+top :: (QIntValidatorValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+top arg'1 =
+  withQIntValidatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (top' arg'1')
+
+class (QIntValidatorConstPtr this, M146.QValidatorPtr this) => QIntValidatorPtr this where
+  toQIntValidator :: this -> QIntValidator
+
+setBottom :: (QIntValidatorPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setBottom arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIntValidator arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setBottom' arg'1' arg'2')
+
+setRange :: (QIntValidatorPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setRange arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQIntValidator arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setRange' arg'1' arg'2' arg'3')
+
+setTop :: (QIntValidatorPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setTop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIntValidator arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (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 M146.QValidatorConstPtr QIntValidatorConst where
+  toQValidatorConst (QIntValidatorConst ptr') = M146.QValidatorConst $ castQIntValidatorToQValidator ptr'
+  toQValidatorConst (QIntValidatorConstGc fptr' ptr') = M146.QValidatorConstGc fptr' $ castQIntValidatorToQValidator ptr'
+
+instance M30.QObjectConstPtr QIntValidatorConst where
+  toQObjectConst (QIntValidatorConst ptr') = M30.QObjectConst $ castQIntValidatorToQObject ptr'
+  toQObjectConst (QIntValidatorConstGc fptr' ptr') = M30.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 M146.QValidatorConstPtr QIntValidator where
+  toQValidatorConst (QIntValidator ptr') = M146.QValidatorConst $ castQIntValidatorToQValidator $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+  toQValidatorConst (QIntValidatorGc fptr' ptr') = M146.QValidatorConstGc fptr' $ castQIntValidatorToQValidator $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+
+instance M146.QValidatorPtr QIntValidator where
+  toQValidator (QIntValidator ptr') = M146.QValidator $ (HoppyF.castPtr :: HoppyF.Ptr M146.QValidatorConst -> HoppyF.Ptr M146.QValidator) $ castQIntValidatorToQValidator $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+  toQValidator (QIntValidatorGc fptr' ptr') = M146.QValidatorGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M146.QValidatorConst -> HoppyF.Ptr M146.QValidator) $ castQIntValidatorToQValidator $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+
+instance M30.QObjectConstPtr QIntValidator where
+  toQObjectConst (QIntValidator ptr') = M30.QObjectConst $ castQIntValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+  toQObjectConst (QIntValidatorGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQIntValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+
+instance M30.QObjectPtr QIntValidator where
+  toQObject (QIntValidator ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQIntValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+  toQObject (QIntValidatorGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQIntValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+
+new ::  HoppyP.IO QIntValidator
+new =
+  HoppyP.fmap QIntValidator
+  (new')
+
+newWithParent :: (M30.QObjectPtr arg'1) => arg'1 -> HoppyP.IO QIntValidator
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M30.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QIntValidator
+  (newWithParent' arg'1')
+
+newWithOptions ::  HoppyP.Int -> HoppyP.Int -> HoppyP.IO QIntValidator
+newWithOptions arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap QIntValidator
+  (newWithOptions' arg'1' arg'2')
+
+newWithOptionsAndParent :: (M30.QObjectPtr arg'3) => HoppyP.Int -> HoppyP.Int -> arg'3 -> HoppyP.IO QIntValidator
+newWithOptionsAndParent arg'1 arg'2 arg'3 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M30.toQObject arg'3) $ \arg'3' ->
+  HoppyP.fmap QIntValidator
+  (newWithOptionsAndParent' arg'1' arg'2' arg'3')
+
+class QIntValidatorSuper a where
+  downToQIntValidator :: a -> QIntValidator
+
+instance QIntValidatorSuper M146.QValidator where
+  downToQIntValidator = castQIntValidatorToNonconst . cast' . M146.castQValidatorToConst
+    where
+      cast' (M146.QValidatorConst ptr') = QIntValidatorConst $ castQValidatorToQIntValidator ptr'
+      cast' (M146.QValidatorConstGc fptr' ptr') = QIntValidatorConstGc fptr' $ castQValidatorToQIntValidator ptr'
+instance QIntValidatorSuper M30.QObject where
+  downToQIntValidator = castQIntValidatorToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QIntValidatorConst $ castQObjectToQIntValidator ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QIntValidatorConstGc fptr' $ castQObjectToQIntValidator ptr'
+
+class QIntValidatorSuperConst a where
+  downToQIntValidatorConst :: a -> QIntValidatorConst
+
+instance QIntValidatorSuperConst M146.QValidatorConst where
+  downToQIntValidatorConst = cast'
+    where
+      cast' (M146.QValidatorConst ptr') = QIntValidatorConst $ castQValidatorToQIntValidator ptr'
+      cast' (M146.QValidatorConstGc fptr' ptr') = QIntValidatorConstGc fptr' $ castQValidatorToQIntValidator ptr'
+instance QIntValidatorSuperConst M30.QObjectConst where
+  downToQIntValidatorConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QIntValidatorConst $ castQObjectToQIntValidator ptr'
+      cast' (M30.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,306 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Generated.Core.QEvent as M16
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QInputEvent as M110
+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 M46.QStringConst -> HoppyFHR.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 M46.QStringConst -> HoppyFHR.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 HoppyFHR.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 M46.QStringConst)
+foreign import ccall "gencast__QKeyEvent__QInputEvent" castQKeyEventToQInputEvent :: HoppyF.Ptr QKeyEventConst -> HoppyF.Ptr M110.QInputEventConst
+foreign import ccall "gencast__QInputEvent__QKeyEvent" castQInputEventToQKeyEvent :: HoppyF.Ptr M110.QInputEventConst -> HoppyF.Ptr QKeyEventConst
+foreign import ccall "gencast__QKeyEvent__QEvent" castQKeyEventToQEvent :: HoppyF.Ptr QKeyEventConst -> HoppyF.Ptr M16.QEventConst
+foreign import ccall "gencast__QEvent__QKeyEvent" castQEventToQKeyEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QKeyEventConstPtr a => QKeyEventValue a where
+#else
+instance QKeyEventConstPtr a => QKeyEventValue a where
+#endif
+  withQKeyEventPtr = HoppyP.flip ($) . toQKeyEventConst
+
+class (M110.QInputEventConstPtr this) => QKeyEventConstPtr this where
+  toQKeyEventConst :: this -> QKeyEventConst
+
+count :: (QKeyEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+count arg'1 =
+  withQKeyEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1')
+
+isAutoRepeat :: (QKeyEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isAutoRepeat arg'1 =
+  withQKeyEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isAutoRepeat' arg'1')
+
+key :: (QKeyEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+key arg'1 =
+  withQKeyEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (key' arg'1')
+
+modifiers :: (QKeyEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtKeyboardModifiers
+modifiers arg'1 =
+  withQKeyEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtKeyboardModifiers
+  (modifiers' arg'1')
+
+nativeModifiers :: (QKeyEventValue arg'1) => arg'1 -> HoppyP.IO HoppyDW.Word32
+nativeModifiers arg'1 =
+  withQKeyEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (nativeModifiers' arg'1')
+
+nativeScanCode :: (QKeyEventValue arg'1) => arg'1 -> HoppyP.IO HoppyDW.Word32
+nativeScanCode arg'1 =
+  withQKeyEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (nativeScanCode' arg'1')
+
+nativeVirtualKey :: (QKeyEventValue arg'1) => arg'1 -> HoppyP.IO HoppyDW.Word32
+nativeVirtualKey arg'1 =
+  withQKeyEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (nativeVirtualKey' arg'1')
+
+text :: (QKeyEventValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+text arg'1 =
+  withQKeyEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (text' arg'1')
+
+class (QKeyEventConstPtr this, M110.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 M110.QInputEventConstPtr QKeyEventConst where
+  toQInputEventConst (QKeyEventConst ptr') = M110.QInputEventConst $ castQKeyEventToQInputEvent ptr'
+  toQInputEventConst (QKeyEventConstGc fptr' ptr') = M110.QInputEventConstGc fptr' $ castQKeyEventToQInputEvent ptr'
+
+instance M16.QEventConstPtr QKeyEventConst where
+  toQEventConst (QKeyEventConst ptr') = M16.QEventConst $ castQKeyEventToQEvent ptr'
+  toQEventConst (QKeyEventConstGc fptr' ptr') = M16.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 M110.QInputEventConstPtr QKeyEvent where
+  toQInputEventConst (QKeyEvent ptr') = M110.QInputEventConst $ castQKeyEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+  toQInputEventConst (QKeyEventGc fptr' ptr') = M110.QInputEventConstGc fptr' $ castQKeyEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+
+instance M110.QInputEventPtr QKeyEvent where
+  toQInputEvent (QKeyEvent ptr') = M110.QInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr M110.QInputEventConst -> HoppyF.Ptr M110.QInputEvent) $ castQKeyEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+  toQInputEvent (QKeyEventGc fptr' ptr') = M110.QInputEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M110.QInputEventConst -> HoppyF.Ptr M110.QInputEvent) $ castQKeyEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+
+instance M16.QEventConstPtr QKeyEvent where
+  toQEventConst (QKeyEvent ptr') = M16.QEventConst $ castQKeyEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+  toQEventConst (QKeyEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQKeyEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+
+instance M16.QEventPtr QKeyEvent where
+  toQEvent (QKeyEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQKeyEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+  toQEvent (QKeyEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQKeyEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+
+new :: (M58.IsQtKeyboardModifiers arg'3) => M16.QEventType -> HoppyP.Int -> arg'3 -> HoppyP.IO QKeyEvent
+new arg'1 arg'2 arg'3 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = M58.fromQtKeyboardModifiers $ M58.toQtKeyboardModifiers arg'3 in
+  HoppyP.fmap QKeyEvent
+  (new' arg'1' arg'2' arg'3')
+
+newWithText :: (M58.IsQtKeyboardModifiers arg'3, M46.QStringValue arg'4) => M16.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 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = M58.fromQtKeyboardModifiers $ M58.toQtKeyboardModifiers arg'3 in
+  M46.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  let arg'5' = if arg'5 then 1 else 0 in
+  let arg'6' = arg'6 in
+  HoppyP.fmap QKeyEvent
+  (newWithText' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+newNative :: (M58.IsQtKeyboardModifiers arg'3) => M16.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 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = M58.fromQtKeyboardModifiers $ M58.toQtKeyboardModifiers arg'3 in
+  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 :: (M58.IsQtKeyboardModifiers arg'3, M46.QStringValue arg'7) => M16.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 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = M58.fromQtKeyboardModifiers $ M58.toQtKeyboardModifiers arg'3 in
+  let arg'4' = arg'4 in
+  let arg'5' = arg'5 in
+  let arg'6' = arg'6 in
+  M46.withQStringPtr arg'7 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'7' ->
+  let arg'8' = if arg'8 then 1 else 0 in
+  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 M110.QInputEvent where
+  downToQKeyEvent = castQKeyEventToNonconst . cast' . M110.castQInputEventToConst
+    where
+      cast' (M110.QInputEventConst ptr') = QKeyEventConst $ castQInputEventToQKeyEvent ptr'
+      cast' (M110.QInputEventConstGc fptr' ptr') = QKeyEventConstGc fptr' $ castQInputEventToQKeyEvent ptr'
+instance QKeyEventSuper M16.QEvent where
+  downToQKeyEvent = castQKeyEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QKeyEventConst $ castQEventToQKeyEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QKeyEventConstGc fptr' $ castQEventToQKeyEvent ptr'
+
+class QKeyEventSuperConst a where
+  downToQKeyEventConst :: a -> QKeyEventConst
+
+instance QKeyEventSuperConst M110.QInputEventConst where
+  downToQKeyEventConst = cast'
+    where
+      cast' (M110.QInputEventConst ptr') = QKeyEventConst $ castQInputEventToQKeyEvent ptr'
+      cast' (M110.QInputEventConstGc fptr' ptr') = QKeyEventConstGc fptr' $ castQInputEventToQKeyEvent ptr'
+instance QKeyEventSuperConst M16.QEventConst where
+  downToQKeyEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QKeyEventConst $ castQEventToQKeyEvent ptr'
+      cast' (M16.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,337 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Generated.Core.QEvent as M16
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M36
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QInputEvent as M110
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QMouseEvent_new" new' ::  HoppyFC.CInt -> HoppyF.Ptr M36.QPointFConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QMouseEvent)
+foreign import ccall "genpop__QMouseEvent_newWithScreenPosition" newWithScreenPosition' ::  HoppyFC.CInt -> HoppyF.Ptr M36.QPointFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QMouseEvent)
+foreign import ccall "genpop__QMouseEvent_newWithWindowAndScreenPosition" newWithWindowAndScreenPosition' ::  HoppyFC.CInt -> HoppyF.Ptr M36.QPointFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyF.Ptr M36.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 M34.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 M36.QPointFConst)
+foreign import ccall "genpop__QMouseEvent_pos" pos' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QMouseEvent_screenPos" screenPos' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO (HoppyF.Ptr M36.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 M36.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 M110.QInputEventConst
+foreign import ccall "gencast__QInputEvent__QMouseEvent" castQInputEventToQMouseEvent :: HoppyF.Ptr M110.QInputEventConst -> HoppyF.Ptr QMouseEventConst
+foreign import ccall "gencast__QMouseEvent__QEvent" castQMouseEventToQEvent :: HoppyF.Ptr QMouseEventConst -> HoppyF.Ptr M16.QEventConst
+foreign import ccall "gencast__QEvent__QMouseEvent" castQEventToQMouseEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QMouseEventConstPtr a => QMouseEventValue a where
+#else
+instance QMouseEventConstPtr a => QMouseEventValue a where
+#endif
+  withQMouseEventPtr = HoppyP.flip ($) . toQMouseEventConst
+
+class (M110.QInputEventConstPtr this) => QMouseEventConstPtr this where
+  toQMouseEventConst :: this -> QMouseEventConst
+
+button :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtMouseButton
+button arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (button' arg'1')
+
+buttons :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtMouseButtons
+buttons arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtMouseButtons
+  (buttons' arg'1')
+
+flags :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtMouseEventFlags
+flags arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtMouseEventFlags
+  (flags' arg'1')
+
+globalPos :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+globalPos arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (globalPos' arg'1')
+
+globalX :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+globalX arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (globalX' arg'1')
+
+globalY :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+globalY arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (globalY' arg'1')
+
+localPos :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+localPos arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (localPos' arg'1')
+
+pos :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+pos arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (pos' arg'1')
+
+screenPos :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+screenPos arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (screenPos' arg'1')
+
+source :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtMouseEventSource
+source arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (source' arg'1')
+
+windowPos :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+windowPos arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (windowPos' arg'1')
+
+x :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+x arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (x' arg'1')
+
+y :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+y arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (y' arg'1')
+
+class (QMouseEventConstPtr this, M110.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 M110.QInputEventConstPtr QMouseEventConst where
+  toQInputEventConst (QMouseEventConst ptr') = M110.QInputEventConst $ castQMouseEventToQInputEvent ptr'
+  toQInputEventConst (QMouseEventConstGc fptr' ptr') = M110.QInputEventConstGc fptr' $ castQMouseEventToQInputEvent ptr'
+
+instance M16.QEventConstPtr QMouseEventConst where
+  toQEventConst (QMouseEventConst ptr') = M16.QEventConst $ castQMouseEventToQEvent ptr'
+  toQEventConst (QMouseEventConstGc fptr' ptr') = M16.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 M110.QInputEventConstPtr QMouseEvent where
+  toQInputEventConst (QMouseEvent ptr') = M110.QInputEventConst $ castQMouseEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+  toQInputEventConst (QMouseEventGc fptr' ptr') = M110.QInputEventConstGc fptr' $ castQMouseEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+
+instance M110.QInputEventPtr QMouseEvent where
+  toQInputEvent (QMouseEvent ptr') = M110.QInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr M110.QInputEventConst -> HoppyF.Ptr M110.QInputEvent) $ castQMouseEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+  toQInputEvent (QMouseEventGc fptr' ptr') = M110.QInputEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M110.QInputEventConst -> HoppyF.Ptr M110.QInputEvent) $ castQMouseEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+
+instance M16.QEventConstPtr QMouseEvent where
+  toQEventConst (QMouseEvent ptr') = M16.QEventConst $ castQMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+  toQEventConst (QMouseEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+
+instance M16.QEventPtr QMouseEvent where
+  toQEvent (QMouseEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+  toQEvent (QMouseEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+
+new :: (M36.QPointFValue arg'2, M58.IsQtMouseButtons arg'4, M58.IsQtKeyboardModifiers arg'5) => M16.QEventType -> arg'2 -> M58.QtMouseButton -> arg'4 -> arg'5 -> HoppyP.IO QMouseEvent
+new arg'1 arg'2 arg'3 arg'4 arg'5 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  let arg'4' = M58.fromQtMouseButtons $ M58.toQtMouseButtons arg'4 in
+  let arg'5' = M58.fromQtKeyboardModifiers $ M58.toQtKeyboardModifiers arg'5 in
+  HoppyP.fmap QMouseEvent
+  (new' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+newWithScreenPosition :: (M36.QPointFValue arg'2, M36.QPointFValue arg'3, M58.IsQtMouseButtons arg'5, M58.IsQtKeyboardModifiers arg'6) => M16.QEventType -> arg'2 -> arg'3 -> M58.QtMouseButton -> arg'5 -> arg'6 -> HoppyP.IO QMouseEvent
+newWithScreenPosition arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M36.withQPointFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  let arg'4' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'4 in
+  let arg'5' = M58.fromQtMouseButtons $ M58.toQtMouseButtons arg'5 in
+  let arg'6' = M58.fromQtKeyboardModifiers $ M58.toQtKeyboardModifiers arg'6 in
+  HoppyP.fmap QMouseEvent
+  (newWithScreenPosition' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+newWithWindowAndScreenPosition :: (M36.QPointFValue arg'2, M36.QPointFValue arg'3, M36.QPointFValue arg'4, M58.IsQtMouseButtons arg'6, M58.IsQtKeyboardModifiers arg'7) => M16.QEventType -> arg'2 -> arg'3 -> arg'4 -> M58.QtMouseButton -> arg'6 -> arg'7 -> HoppyP.IO QMouseEvent
+newWithWindowAndScreenPosition arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M36.withQPointFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M36.withQPointFPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  let arg'5' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'5 in
+  let arg'6' = M58.fromQtMouseButtons $ M58.toQtMouseButtons arg'6 in
+  let arg'7' = M58.fromQtKeyboardModifiers $ M58.toQtKeyboardModifiers arg'7 in
+  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 M110.QInputEvent where
+  downToQMouseEvent = castQMouseEventToNonconst . cast' . M110.castQInputEventToConst
+    where
+      cast' (M110.QInputEventConst ptr') = QMouseEventConst $ castQInputEventToQMouseEvent ptr'
+      cast' (M110.QInputEventConstGc fptr' ptr') = QMouseEventConstGc fptr' $ castQInputEventToQMouseEvent ptr'
+instance QMouseEventSuper M16.QEvent where
+  downToQMouseEvent = castQMouseEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QMouseEventConst $ castQEventToQMouseEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QMouseEventConstGc fptr' $ castQEventToQMouseEvent ptr'
+
+class QMouseEventSuperConst a where
+  downToQMouseEventConst :: a -> QMouseEventConst
+
+instance QMouseEventSuperConst M110.QInputEventConst where
+  downToQMouseEventConst = cast'
+    where
+      cast' (M110.QInputEventConst ptr') = QMouseEventConst $ castQInputEventToQMouseEvent ptr'
+      cast' (M110.QInputEventConstGc fptr' ptr') = QMouseEventConstGc fptr' $ castQInputEventToQMouseEvent ptr'
+instance QMouseEventSuperConst M16.QEventConst where
+  downToQMouseEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QMouseEventConst $ castQEventToQMouseEvent ptr'
+      cast' (M16.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QOpenGLWindow.hs
@@ -0,0 +1,358 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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 M30
+import qualified Graphics.UI.Qtah.Generated.Gui.QImage as M108
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M120
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDeviceWindow as M122
+import qualified Graphics.UI.Qtah.Generated.Gui.QSurface as M142
+import qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M150
+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 M150.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 M108.QImageConst)
+foreign import ccall "genpop__QOpenGLWindow_isValid" isValid' ::  HoppyF.Ptr QOpenGLWindowConst -> HoppyP.IO HoppyFHR.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 "gencast__QOpenGLWindow__QPaintDeviceWindow" castQOpenGLWindowToQPaintDeviceWindow :: HoppyF.Ptr QOpenGLWindowConst -> HoppyF.Ptr M122.QPaintDeviceWindowConst
+foreign import ccall "gencast__QPaintDeviceWindow__QOpenGLWindow" castQPaintDeviceWindowToQOpenGLWindow :: HoppyF.Ptr M122.QPaintDeviceWindowConst -> HoppyF.Ptr QOpenGLWindowConst
+foreign import ccall "gencast__QOpenGLWindow__QWindow" castQOpenGLWindowToQWindow :: HoppyF.Ptr QOpenGLWindowConst -> HoppyF.Ptr M150.QWindowConst
+foreign import ccall "gencast__QWindow__QOpenGLWindow" castQWindowToQOpenGLWindow :: HoppyF.Ptr M150.QWindowConst -> HoppyF.Ptr QOpenGLWindowConst
+foreign import ccall "gencast__QOpenGLWindow__QObject" castQOpenGLWindowToQObject :: HoppyF.Ptr QOpenGLWindowConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QOpenGLWindow" castQObjectToQOpenGLWindow :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr QOpenGLWindowConst
+foreign import ccall "gencast__QOpenGLWindow__QSurface" castQOpenGLWindowToQSurface :: HoppyF.Ptr QOpenGLWindowConst -> HoppyF.Ptr M142.QSurfaceConst
+foreign import ccall "gencast__QSurface__QOpenGLWindow" castQSurfaceToQOpenGLWindow :: HoppyF.Ptr M142.QSurfaceConst -> HoppyF.Ptr QOpenGLWindowConst
+foreign import ccall "gencast__QOpenGLWindow__QPaintDevice" castQOpenGLWindowToQPaintDevice :: HoppyF.Ptr QOpenGLWindowConst -> HoppyF.Ptr M120.QPaintDeviceConst
+foreign import ccall "gencast__QPaintDevice__QOpenGLWindow" castQPaintDeviceToQOpenGLWindow :: HoppyF.Ptr M120.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QOpenGLWindowConstPtr a => QOpenGLWindowValue a where
+#else
+instance QOpenGLWindowConstPtr a => QOpenGLWindowValue a where
+#endif
+  withQOpenGLWindowPtr = HoppyP.flip ($) . toQOpenGLWindowConst
+
+class (M122.QPaintDeviceWindowConstPtr this) => QOpenGLWindowConstPtr this where
+  toQOpenGLWindowConst :: this -> QOpenGLWindowConst
+
+defaultFramebufferObject :: (QOpenGLWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyDW.Word32
+defaultFramebufferObject arg'1 =
+  withQOpenGLWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (defaultFramebufferObject' arg'1')
+
+isValid :: (QOpenGLWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isValid arg'1 =
+  withQOpenGLWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isValid' arg'1')
+
+updateBehavior :: (QOpenGLWindowValue arg'1) => arg'1 -> HoppyP.IO QOpenGLWindowUpdateBehavior
+updateBehavior arg'1 =
+  withQOpenGLWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (updateBehavior' arg'1')
+
+class (QOpenGLWindowConstPtr this, M122.QPaintDeviceWindowPtr this) => QOpenGLWindowPtr this where
+  toQOpenGLWindow :: this -> QOpenGLWindow
+
+doneCurrent :: (QOpenGLWindowPtr arg'1) => arg'1 -> HoppyP.IO ()
+doneCurrent arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWindow arg'1) $ \arg'1' ->
+  (doneCurrent' arg'1')
+
+grabFramebuffer :: (QOpenGLWindowPtr arg'1) => arg'1 -> HoppyP.IO M108.QImage
+grabFramebuffer arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWindow arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M108.QImageConst) =<<
+  (grabFramebuffer' arg'1')
+
+makeCurrent :: (QOpenGLWindowPtr arg'1) => arg'1 -> HoppyP.IO ()
+makeCurrent arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWindow arg'1) $ \arg'1' ->
+  (makeCurrent' 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 M122.QPaintDeviceWindowConstPtr QOpenGLWindowConst where
+  toQPaintDeviceWindowConst (QOpenGLWindowConst ptr') = M122.QPaintDeviceWindowConst $ castQOpenGLWindowToQPaintDeviceWindow ptr'
+  toQPaintDeviceWindowConst (QOpenGLWindowConstGc fptr' ptr') = M122.QPaintDeviceWindowConstGc fptr' $ castQOpenGLWindowToQPaintDeviceWindow ptr'
+
+instance M150.QWindowConstPtr QOpenGLWindowConst where
+  toQWindowConst (QOpenGLWindowConst ptr') = M150.QWindowConst $ castQOpenGLWindowToQWindow ptr'
+  toQWindowConst (QOpenGLWindowConstGc fptr' ptr') = M150.QWindowConstGc fptr' $ castQOpenGLWindowToQWindow ptr'
+
+instance M30.QObjectConstPtr QOpenGLWindowConst where
+  toQObjectConst (QOpenGLWindowConst ptr') = M30.QObjectConst $ castQOpenGLWindowToQObject ptr'
+  toQObjectConst (QOpenGLWindowConstGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQOpenGLWindowToQObject ptr'
+
+instance M142.QSurfaceConstPtr QOpenGLWindowConst where
+  toQSurfaceConst (QOpenGLWindowConst ptr') = M142.QSurfaceConst $ castQOpenGLWindowToQSurface ptr'
+  toQSurfaceConst (QOpenGLWindowConstGc fptr' ptr') = M142.QSurfaceConstGc fptr' $ castQOpenGLWindowToQSurface ptr'
+
+instance M120.QPaintDeviceConstPtr QOpenGLWindowConst where
+  toQPaintDeviceConst (QOpenGLWindowConst ptr') = M120.QPaintDeviceConst $ castQOpenGLWindowToQPaintDevice ptr'
+  toQPaintDeviceConst (QOpenGLWindowConstGc fptr' ptr') = M120.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 M122.QPaintDeviceWindowConstPtr QOpenGLWindow where
+  toQPaintDeviceWindowConst (QOpenGLWindow ptr') = M122.QPaintDeviceWindowConst $ castQOpenGLWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQPaintDeviceWindowConst (QOpenGLWindowGc fptr' ptr') = M122.QPaintDeviceWindowConstGc fptr' $ castQOpenGLWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M122.QPaintDeviceWindowPtr QOpenGLWindow where
+  toQPaintDeviceWindow (QOpenGLWindow ptr') = M122.QPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr M122.QPaintDeviceWindowConst -> HoppyF.Ptr M122.QPaintDeviceWindow) $ castQOpenGLWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQPaintDeviceWindow (QOpenGLWindowGc fptr' ptr') = M122.QPaintDeviceWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M122.QPaintDeviceWindowConst -> HoppyF.Ptr M122.QPaintDeviceWindow) $ castQOpenGLWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M150.QWindowConstPtr QOpenGLWindow where
+  toQWindowConst (QOpenGLWindow ptr') = M150.QWindowConst $ castQOpenGLWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQWindowConst (QOpenGLWindowGc fptr' ptr') = M150.QWindowConstGc fptr' $ castQOpenGLWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M150.QWindowPtr QOpenGLWindow where
+  toQWindow (QOpenGLWindow ptr') = M150.QWindow $ (HoppyF.castPtr :: HoppyF.Ptr M150.QWindowConst -> HoppyF.Ptr M150.QWindow) $ castQOpenGLWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQWindow (QOpenGLWindowGc fptr' ptr') = M150.QWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M150.QWindowConst -> HoppyF.Ptr M150.QWindow) $ castQOpenGLWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M30.QObjectConstPtr QOpenGLWindow where
+  toQObjectConst (QOpenGLWindow ptr') = M30.QObjectConst $ castQOpenGLWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQObjectConst (QOpenGLWindowGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQOpenGLWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M30.QObjectPtr QOpenGLWindow where
+  toQObject (QOpenGLWindow ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQOpenGLWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQObject (QOpenGLWindowGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQOpenGLWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M142.QSurfaceConstPtr QOpenGLWindow where
+  toQSurfaceConst (QOpenGLWindow ptr') = M142.QSurfaceConst $ castQOpenGLWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQSurfaceConst (QOpenGLWindowGc fptr' ptr') = M142.QSurfaceConstGc fptr' $ castQOpenGLWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M142.QSurfacePtr QOpenGLWindow where
+  toQSurface (QOpenGLWindow ptr') = M142.QSurface $ (HoppyF.castPtr :: HoppyF.Ptr M142.QSurfaceConst -> HoppyF.Ptr M142.QSurface) $ castQOpenGLWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQSurface (QOpenGLWindowGc fptr' ptr') = M142.QSurfaceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M142.QSurfaceConst -> HoppyF.Ptr M142.QSurface) $ castQOpenGLWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M120.QPaintDeviceConstPtr QOpenGLWindow where
+  toQPaintDeviceConst (QOpenGLWindow ptr') = M120.QPaintDeviceConst $ castQOpenGLWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQPaintDeviceConst (QOpenGLWindowGc fptr' ptr') = M120.QPaintDeviceConstGc fptr' $ castQOpenGLWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M120.QPaintDevicePtr QOpenGLWindow where
+  toQPaintDevice (QOpenGLWindow ptr') = M120.QPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr M120.QPaintDeviceConst -> HoppyF.Ptr M120.QPaintDevice) $ castQOpenGLWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQPaintDevice (QOpenGLWindowGc fptr' ptr') = M120.QPaintDeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M120.QPaintDeviceConst -> HoppyF.Ptr M120.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 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  HoppyP.fmap QOpenGLWindow
+  (newWithUpdateBehavior' arg'1')
+
+newWithUpdateBehaviorAndParent :: (M150.QWindowPtr arg'2) => QOpenGLWindowUpdateBehavior -> arg'2 -> HoppyP.IO QOpenGLWindow
+newWithUpdateBehaviorAndParent arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  HoppyFHR.withCppPtr (M150.toQWindow arg'2) $ \arg'2' ->
+  HoppyP.fmap QOpenGLWindow
+  (newWithUpdateBehaviorAndParent' arg'1' arg'2')
+
+class QOpenGLWindowSuper a where
+  downToQOpenGLWindow :: a -> QOpenGLWindow
+
+instance QOpenGLWindowSuper M122.QPaintDeviceWindow where
+  downToQOpenGLWindow = castQOpenGLWindowToNonconst . cast' . M122.castQPaintDeviceWindowToConst
+    where
+      cast' (M122.QPaintDeviceWindowConst ptr') = QOpenGLWindowConst $ castQPaintDeviceWindowToQOpenGLWindow ptr'
+      cast' (M122.QPaintDeviceWindowConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQPaintDeviceWindowToQOpenGLWindow ptr'
+instance QOpenGLWindowSuper M150.QWindow where
+  downToQOpenGLWindow = castQOpenGLWindowToNonconst . cast' . M150.castQWindowToConst
+    where
+      cast' (M150.QWindowConst ptr') = QOpenGLWindowConst $ castQWindowToQOpenGLWindow ptr'
+      cast' (M150.QWindowConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQWindowToQOpenGLWindow ptr'
+instance QOpenGLWindowSuper M30.QObject where
+  downToQOpenGLWindow = castQOpenGLWindowToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QOpenGLWindowConst $ castQObjectToQOpenGLWindow ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQObjectToQOpenGLWindow ptr'
+instance QOpenGLWindowSuper M142.QSurface where
+  downToQOpenGLWindow = castQOpenGLWindowToNonconst . cast' . M142.castQSurfaceToConst
+    where
+      cast' (M142.QSurfaceConst ptr') = QOpenGLWindowConst $ castQSurfaceToQOpenGLWindow ptr'
+      cast' (M142.QSurfaceConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQSurfaceToQOpenGLWindow ptr'
+instance QOpenGLWindowSuper M120.QPaintDevice where
+  downToQOpenGLWindow = castQOpenGLWindowToNonconst . cast' . M120.castQPaintDeviceToConst
+    where
+      cast' (M120.QPaintDeviceConst ptr') = QOpenGLWindowConst $ castQPaintDeviceToQOpenGLWindow ptr'
+      cast' (M120.QPaintDeviceConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQPaintDeviceToQOpenGLWindow ptr'
+
+class QOpenGLWindowSuperConst a where
+  downToQOpenGLWindowConst :: a -> QOpenGLWindowConst
+
+instance QOpenGLWindowSuperConst M122.QPaintDeviceWindowConst where
+  downToQOpenGLWindowConst = cast'
+    where
+      cast' (M122.QPaintDeviceWindowConst ptr') = QOpenGLWindowConst $ castQPaintDeviceWindowToQOpenGLWindow ptr'
+      cast' (M122.QPaintDeviceWindowConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQPaintDeviceWindowToQOpenGLWindow ptr'
+instance QOpenGLWindowSuperConst M150.QWindowConst where
+  downToQOpenGLWindowConst = cast'
+    where
+      cast' (M150.QWindowConst ptr') = QOpenGLWindowConst $ castQWindowToQOpenGLWindow ptr'
+      cast' (M150.QWindowConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQWindowToQOpenGLWindow ptr'
+instance QOpenGLWindowSuperConst M30.QObjectConst where
+  downToQOpenGLWindowConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QOpenGLWindowConst $ castQObjectToQOpenGLWindow ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQObjectToQOpenGLWindow ptr'
+instance QOpenGLWindowSuperConst M142.QSurfaceConst where
+  downToQOpenGLWindowConst = cast'
+    where
+      cast' (M142.QSurfaceConst ptr') = QOpenGLWindowConst $ castQSurfaceToQOpenGLWindow ptr'
+      cast' (M142.QSurfaceConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQSurfaceToQOpenGLWindow ptr'
+instance QOpenGLWindowSuperConst M120.QPaintDeviceConst where
+  downToQOpenGLWindowConst = cast'
+    where
+      cast' (M120.QPaintDeviceConst ptr') = QOpenGLWindowConst $ castQPaintDeviceToQOpenGLWindow ptr'
+      cast' (M120.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QOpenGLWindowUpdateBehavior where
+  fromEnum NoPartialUpdate = 0
+  fromEnum PartialUpdateBlit = 1
+  fromEnum PartialUpdateBlend = 2
+  
+  toEnum (0) = NoPartialUpdate
+  toEnum (1) = PartialUpdateBlit
+  toEnum (2) = PartialUpdateBlend
+  toEnum n' = HoppyP.error $ "Unknown QOpenGLWindowUpdateBehavior numeric value: " ++ HoppyP.show n'
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QPaintDevice.hs b/src/Graphics/UI/Qtah/Generated/Gui/QPaintDevice.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QPaintDevice.hs
@@ -0,0 +1,283 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QPaintDeviceConstPtr a => QPaintDeviceValue a where
+#else
+instance QPaintDeviceConstPtr a => QPaintDeviceValue a where
+#endif
+  withQPaintDevicePtr = HoppyP.flip ($) . toQPaintDeviceConst
+
+class (HoppyFHR.CppPtr this) => QPaintDeviceConstPtr this where
+  toQPaintDeviceConst :: this -> QPaintDeviceConst
+
+colorCount :: (QPaintDeviceValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+colorCount arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (colorCount' arg'1')
+
+depth :: (QPaintDeviceValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+depth arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (depth' arg'1')
+
+devicePixelRatio :: (QPaintDeviceValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+devicePixelRatio arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (devicePixelRatio' arg'1')
+
+devicePixelRatioF :: (QPaintDeviceValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+devicePixelRatioF arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (devicePixelRatioF' arg'1')
+
+height :: (QPaintDeviceValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+height arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (height' arg'1')
+
+heightMM :: (QPaintDeviceValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+heightMM arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (heightMM' arg'1')
+
+logicalDpiX :: (QPaintDeviceValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+logicalDpiX arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (logicalDpiX' arg'1')
+
+logicalDpiY :: (QPaintDeviceValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+logicalDpiY arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (logicalDpiY' arg'1')
+
+paintingActive :: (QPaintDeviceValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+paintingActive arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (paintingActive' arg'1')
+
+physicalDpiX :: (QPaintDeviceValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+physicalDpiX arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (physicalDpiX' arg'1')
+
+physicalDpiY :: (QPaintDeviceValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+physicalDpiY arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (physicalDpiY' arg'1')
+
+width :: (QPaintDeviceValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+width arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (width' arg'1')
+
+widthMM :: (QPaintDeviceValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+widthMM arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap 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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QPaintDevicePaintDeviceMetric where
+  fromEnum PdmWidth = 1
+  fromEnum PdmHeight = 2
+  fromEnum PdmWidthMm = 3
+  fromEnum PdmHeightMm = 4
+  fromEnum PdmNumColors = 5
+  fromEnum PdmDepth = 6
+  fromEnum PdmDpiX = 7
+  fromEnum PdmDpiY = 8
+  fromEnum PdmPhysicalDpiX = 9
+  fromEnum PdmPhysicalDpiY = 10
+  fromEnum PdmDevicePixelRatio = 11
+  fromEnum PdmDevicePixelRatioScaled = 12
+  
+  toEnum (1) = PdmWidth
+  toEnum (2) = PdmHeight
+  toEnum (3) = PdmWidthMm
+  toEnum (4) = PdmHeightMm
+  toEnum (5) = PdmNumColors
+  toEnum (6) = PdmDepth
+  toEnum (7) = PdmDpiX
+  toEnum (8) = PdmDpiY
+  toEnum (9) = PdmPhysicalDpiX
+  toEnum (10) = PdmPhysicalDpiY
+  toEnum (11) = PdmDevicePixelRatio
+  toEnum (12) = PdmDevicePixelRatioScaled
+  toEnum n' = HoppyP.error $ "Unknown QPaintDevicePaintDeviceMetric numeric value: " ++ HoppyP.show n'
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QPaintDeviceWindow.hs b/src/Graphics/UI/Qtah/Generated/Gui/QPaintDeviceWindow.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QPaintDeviceWindow.hs
@@ -0,0 +1,267 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M120
+import qualified Graphics.UI.Qtah.Generated.Gui.QRegion as M138
+import qualified Graphics.UI.Qtah.Generated.Gui.QSurface as M142
+import qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M150
+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 M38.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QPaintDeviceWindow_updateRegion" updateRegion' ::  HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr M138.QRegionConst -> HoppyP.IO ()
+foreign import ccall "gencast__QPaintDeviceWindow__QWindow" castQPaintDeviceWindowToQWindow :: HoppyF.Ptr QPaintDeviceWindowConst -> HoppyF.Ptr M150.QWindowConst
+foreign import ccall "gencast__QWindow__QPaintDeviceWindow" castQWindowToQPaintDeviceWindow :: HoppyF.Ptr M150.QWindowConst -> HoppyF.Ptr QPaintDeviceWindowConst
+foreign import ccall "gencast__QPaintDeviceWindow__QObject" castQPaintDeviceWindowToQObject :: HoppyF.Ptr QPaintDeviceWindowConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QPaintDeviceWindow" castQObjectToQPaintDeviceWindow :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr QPaintDeviceWindowConst
+foreign import ccall "gencast__QPaintDeviceWindow__QSurface" castQPaintDeviceWindowToQSurface :: HoppyF.Ptr QPaintDeviceWindowConst -> HoppyF.Ptr M142.QSurfaceConst
+foreign import ccall "gencast__QSurface__QPaintDeviceWindow" castQSurfaceToQPaintDeviceWindow :: HoppyF.Ptr M142.QSurfaceConst -> HoppyF.Ptr QPaintDeviceWindowConst
+foreign import ccall "gencast__QPaintDeviceWindow__QPaintDevice" castQPaintDeviceWindowToQPaintDevice :: HoppyF.Ptr QPaintDeviceWindowConst -> HoppyF.Ptr M120.QPaintDeviceConst
+foreign import ccall "gencast__QPaintDevice__QPaintDeviceWindow" castQPaintDeviceToQPaintDeviceWindow :: HoppyF.Ptr M120.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QPaintDeviceWindowConstPtr a => QPaintDeviceWindowValue a where
+#else
+instance QPaintDeviceWindowConstPtr a => QPaintDeviceWindowValue a where
+#endif
+  withQPaintDeviceWindowPtr = HoppyP.flip ($) . toQPaintDeviceWindowConst
+
+class (M150.QWindowConstPtr this, M120.QPaintDeviceConstPtr this) => QPaintDeviceWindowConstPtr this where
+  toQPaintDeviceWindowConst :: this -> QPaintDeviceWindowConst
+
+class (QPaintDeviceWindowConstPtr this, M150.QWindowPtr this, M120.QPaintDevicePtr this) => QPaintDeviceWindowPtr this where
+  toQPaintDeviceWindow :: this -> QPaintDeviceWindow
+
+update :: (QPaintDeviceWindowPtr arg'1) => arg'1 -> HoppyP.IO ()
+update arg'1 =
+  HoppyFHR.withCppPtr (toQPaintDeviceWindow arg'1) $ \arg'1' ->
+  (update' arg'1')
+
+updateRect :: (QPaintDeviceWindowPtr arg'1, M38.QRectValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+updateRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPaintDeviceWindow arg'1) $ \arg'1' ->
+  M38.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (updateRect' arg'1' arg'2')
+
+updateRegion :: (QPaintDeviceWindowPtr arg'1, M138.QRegionValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+updateRegion arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPaintDeviceWindow arg'1) $ \arg'1' ->
+  M138.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 M150.QWindowConstPtr QPaintDeviceWindowConst where
+  toQWindowConst (QPaintDeviceWindowConst ptr') = M150.QWindowConst $ castQPaintDeviceWindowToQWindow ptr'
+  toQWindowConst (QPaintDeviceWindowConstGc fptr' ptr') = M150.QWindowConstGc fptr' $ castQPaintDeviceWindowToQWindow ptr'
+
+instance M30.QObjectConstPtr QPaintDeviceWindowConst where
+  toQObjectConst (QPaintDeviceWindowConst ptr') = M30.QObjectConst $ castQPaintDeviceWindowToQObject ptr'
+  toQObjectConst (QPaintDeviceWindowConstGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQPaintDeviceWindowToQObject ptr'
+
+instance M142.QSurfaceConstPtr QPaintDeviceWindowConst where
+  toQSurfaceConst (QPaintDeviceWindowConst ptr') = M142.QSurfaceConst $ castQPaintDeviceWindowToQSurface ptr'
+  toQSurfaceConst (QPaintDeviceWindowConstGc fptr' ptr') = M142.QSurfaceConstGc fptr' $ castQPaintDeviceWindowToQSurface ptr'
+
+instance M120.QPaintDeviceConstPtr QPaintDeviceWindowConst where
+  toQPaintDeviceConst (QPaintDeviceWindowConst ptr') = M120.QPaintDeviceConst $ castQPaintDeviceWindowToQPaintDevice ptr'
+  toQPaintDeviceConst (QPaintDeviceWindowConstGc fptr' ptr') = M120.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 M150.QWindowConstPtr QPaintDeviceWindow where
+  toQWindowConst (QPaintDeviceWindow ptr') = M150.QWindowConst $ castQPaintDeviceWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+  toQWindowConst (QPaintDeviceWindowGc fptr' ptr') = M150.QWindowConstGc fptr' $ castQPaintDeviceWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+
+instance M150.QWindowPtr QPaintDeviceWindow where
+  toQWindow (QPaintDeviceWindow ptr') = M150.QWindow $ (HoppyF.castPtr :: HoppyF.Ptr M150.QWindowConst -> HoppyF.Ptr M150.QWindow) $ castQPaintDeviceWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+  toQWindow (QPaintDeviceWindowGc fptr' ptr') = M150.QWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M150.QWindowConst -> HoppyF.Ptr M150.QWindow) $ castQPaintDeviceWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+
+instance M30.QObjectConstPtr QPaintDeviceWindow where
+  toQObjectConst (QPaintDeviceWindow ptr') = M30.QObjectConst $ castQPaintDeviceWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+  toQObjectConst (QPaintDeviceWindowGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQPaintDeviceWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+
+instance M30.QObjectPtr QPaintDeviceWindow where
+  toQObject (QPaintDeviceWindow ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQPaintDeviceWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+  toQObject (QPaintDeviceWindowGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQPaintDeviceWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+
+instance M142.QSurfaceConstPtr QPaintDeviceWindow where
+  toQSurfaceConst (QPaintDeviceWindow ptr') = M142.QSurfaceConst $ castQPaintDeviceWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+  toQSurfaceConst (QPaintDeviceWindowGc fptr' ptr') = M142.QSurfaceConstGc fptr' $ castQPaintDeviceWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+
+instance M142.QSurfacePtr QPaintDeviceWindow where
+  toQSurface (QPaintDeviceWindow ptr') = M142.QSurface $ (HoppyF.castPtr :: HoppyF.Ptr M142.QSurfaceConst -> HoppyF.Ptr M142.QSurface) $ castQPaintDeviceWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+  toQSurface (QPaintDeviceWindowGc fptr' ptr') = M142.QSurfaceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M142.QSurfaceConst -> HoppyF.Ptr M142.QSurface) $ castQPaintDeviceWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+
+instance M120.QPaintDeviceConstPtr QPaintDeviceWindow where
+  toQPaintDeviceConst (QPaintDeviceWindow ptr') = M120.QPaintDeviceConst $ castQPaintDeviceWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+  toQPaintDeviceConst (QPaintDeviceWindowGc fptr' ptr') = M120.QPaintDeviceConstGc fptr' $ castQPaintDeviceWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+
+instance M120.QPaintDevicePtr QPaintDeviceWindow where
+  toQPaintDevice (QPaintDeviceWindow ptr') = M120.QPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr M120.QPaintDeviceConst -> HoppyF.Ptr M120.QPaintDevice) $ castQPaintDeviceWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+  toQPaintDevice (QPaintDeviceWindowGc fptr' ptr') = M120.QPaintDeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M120.QPaintDeviceConst -> HoppyF.Ptr M120.QPaintDevice) $ castQPaintDeviceWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+
+class QPaintDeviceWindowSuper a where
+  downToQPaintDeviceWindow :: a -> QPaintDeviceWindow
+
+instance QPaintDeviceWindowSuper M150.QWindow where
+  downToQPaintDeviceWindow = castQPaintDeviceWindowToNonconst . cast' . M150.castQWindowToConst
+    where
+      cast' (M150.QWindowConst ptr') = QPaintDeviceWindowConst $ castQWindowToQPaintDeviceWindow ptr'
+      cast' (M150.QWindowConstGc fptr' ptr') = QPaintDeviceWindowConstGc fptr' $ castQWindowToQPaintDeviceWindow ptr'
+instance QPaintDeviceWindowSuper M30.QObject where
+  downToQPaintDeviceWindow = castQPaintDeviceWindowToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QPaintDeviceWindowConst $ castQObjectToQPaintDeviceWindow ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QPaintDeviceWindowConstGc fptr' $ castQObjectToQPaintDeviceWindow ptr'
+instance QPaintDeviceWindowSuper M142.QSurface where
+  downToQPaintDeviceWindow = castQPaintDeviceWindowToNonconst . cast' . M142.castQSurfaceToConst
+    where
+      cast' (M142.QSurfaceConst ptr') = QPaintDeviceWindowConst $ castQSurfaceToQPaintDeviceWindow ptr'
+      cast' (M142.QSurfaceConstGc fptr' ptr') = QPaintDeviceWindowConstGc fptr' $ castQSurfaceToQPaintDeviceWindow ptr'
+instance QPaintDeviceWindowSuper M120.QPaintDevice where
+  downToQPaintDeviceWindow = castQPaintDeviceWindowToNonconst . cast' . M120.castQPaintDeviceToConst
+    where
+      cast' (M120.QPaintDeviceConst ptr') = QPaintDeviceWindowConst $ castQPaintDeviceToQPaintDeviceWindow ptr'
+      cast' (M120.QPaintDeviceConstGc fptr' ptr') = QPaintDeviceWindowConstGc fptr' $ castQPaintDeviceToQPaintDeviceWindow ptr'
+
+class QPaintDeviceWindowSuperConst a where
+  downToQPaintDeviceWindowConst :: a -> QPaintDeviceWindowConst
+
+instance QPaintDeviceWindowSuperConst M150.QWindowConst where
+  downToQPaintDeviceWindowConst = cast'
+    where
+      cast' (M150.QWindowConst ptr') = QPaintDeviceWindowConst $ castQWindowToQPaintDeviceWindow ptr'
+      cast' (M150.QWindowConstGc fptr' ptr') = QPaintDeviceWindowConstGc fptr' $ castQWindowToQPaintDeviceWindow ptr'
+instance QPaintDeviceWindowSuperConst M30.QObjectConst where
+  downToQPaintDeviceWindowConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QPaintDeviceWindowConst $ castQObjectToQPaintDeviceWindow ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QPaintDeviceWindowConstGc fptr' $ castQObjectToQPaintDeviceWindow ptr'
+instance QPaintDeviceWindowSuperConst M142.QSurfaceConst where
+  downToQPaintDeviceWindowConst = cast'
+    where
+      cast' (M142.QSurfaceConst ptr') = QPaintDeviceWindowConst $ castQSurfaceToQPaintDeviceWindow ptr'
+      cast' (M142.QSurfaceConstGc fptr' ptr') = QPaintDeviceWindowConstGc fptr' $ castQSurfaceToQPaintDeviceWindow ptr'
+instance QPaintDeviceWindowSuperConst M120.QPaintDeviceConst where
+  downToQPaintDeviceWindowConst = cast'
+    where
+      cast' (M120.QPaintDeviceConst ptr') = QPaintDeviceWindowConst $ castQPaintDeviceToQPaintDeviceWindow ptr'
+      cast' (M120.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QPaintEvent.hs
@@ -0,0 +1,195 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M16
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Gui.QRegion as M138
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QPaintEvent_newWithRect" newWithRect' ::  HoppyF.Ptr M38.QRectConst -> HoppyP.IO (HoppyF.Ptr QPaintEvent)
+foreign import ccall "genpop__QPaintEvent_newWithRegion" newWithRegion' ::  HoppyF.Ptr M138.QRegionConst -> HoppyP.IO (HoppyF.Ptr QPaintEvent)
+foreign import ccall "genpop__QPaintEvent_rect" rect' ::  HoppyF.Ptr QPaintEventConst -> HoppyP.IO (HoppyF.Ptr M38.QRectConst)
+foreign import ccall "genpop__QPaintEvent_region" region' ::  HoppyF.Ptr QPaintEventConst -> HoppyP.IO (HoppyF.Ptr M138.QRegionConst)
+foreign import ccall "gencast__QPaintEvent__QEvent" castQPaintEventToQEvent :: HoppyF.Ptr QPaintEventConst -> HoppyF.Ptr M16.QEventConst
+foreign import ccall "gencast__QEvent__QPaintEvent" castQEventToQPaintEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QPaintEventConstPtr a => QPaintEventValue a where
+#else
+instance QPaintEventConstPtr a => QPaintEventValue a where
+#endif
+  withQPaintEventPtr = HoppyP.flip ($) . toQPaintEventConst
+
+class (M16.QEventConstPtr this) => QPaintEventConstPtr this where
+  toQPaintEventConst :: this -> QPaintEventConst
+
+rect :: (QPaintEventValue arg'1) => arg'1 -> HoppyP.IO M38.QRectConst
+rect arg'1 =
+  withQPaintEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M38.QRectConst
+  (rect' arg'1')
+
+region :: (QPaintEventValue arg'1) => arg'1 -> HoppyP.IO M138.QRegionConst
+region arg'1 =
+  withQPaintEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M138.QRegionConst
+  (region' arg'1')
+
+class (QPaintEventConstPtr this, M16.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 M16.QEventConstPtr QPaintEventConst where
+  toQEventConst (QPaintEventConst ptr') = M16.QEventConst $ castQPaintEventToQEvent ptr'
+  toQEventConst (QPaintEventConstGc fptr' ptr') = M16.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 M16.QEventConstPtr QPaintEvent where
+  toQEventConst (QPaintEvent ptr') = M16.QEventConst $ castQPaintEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QPaintEvent -> HoppyF.Ptr QPaintEventConst) ptr'
+  toQEventConst (QPaintEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQPaintEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QPaintEvent -> HoppyF.Ptr QPaintEventConst) ptr'
+
+instance M16.QEventPtr QPaintEvent where
+  toQEvent (QPaintEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQPaintEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QPaintEvent -> HoppyF.Ptr QPaintEventConst) ptr'
+  toQEvent (QPaintEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQPaintEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QPaintEvent -> HoppyF.Ptr QPaintEventConst) ptr'
+
+newWithRect :: (M38.QRectValue arg'1) => arg'1 -> HoppyP.IO QPaintEvent
+newWithRect arg'1 =
+  M38.withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPaintEvent
+  (newWithRect' arg'1')
+
+newWithRegion :: (M138.QRegionValue arg'1) => arg'1 -> HoppyP.IO QPaintEvent
+newWithRegion arg'1 =
+  M138.withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPaintEvent
+  (newWithRegion' arg'1')
+
+class QPaintEventSuper a where
+  downToQPaintEvent :: a -> QPaintEvent
+
+instance QPaintEventSuper M16.QEvent where
+  downToQPaintEvent = castQPaintEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QPaintEventConst $ castQEventToQPaintEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QPaintEventConstGc fptr' $ castQEventToQPaintEvent ptr'
+
+class QPaintEventSuperConst a where
+  downToQPaintEventConst :: a -> QPaintEventConst
+
+instance QPaintEventSuperConst M16.QEventConst where
+  downToQPaintEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QPaintEventConst $ castQEventToQPaintEvent ptr'
+      cast' (M16.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QPainter.hs
@@ -0,0 +1,254 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  textAntialiasing,
+  smoothPixmapTransform,
+  highQualityAntialiasing,
+  nonCosmeticDefaultPen,
+  qt4CompatiblePainting,
+  ) 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.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QImage as M108
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M120
+import Prelude (($), (++), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QPainter_new" new' ::  HoppyP.IO (HoppyF.Ptr QPainter)
+foreign import ccall "genpop__QPainter_newWithDevice" newWithDevice' ::  HoppyF.Ptr M120.QPaintDevice -> HoppyP.IO (HoppyF.Ptr QPainter)
+foreign import ccall "genpop__QPainter_drawImageAtRaw" drawImageAtRaw' ::  HoppyF.Ptr QPainter -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M108.QImageConst -> HoppyP.IO ()
+foreign import ccall "genpop__QPainter_drawImageAtRawAll" drawImageAtRawAll' ::  HoppyF.Ptr QPainter -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M108.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 M38.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QPainterConstPtr a => QPainterValue a where
+#else
+instance QPainterConstPtr a => QPainterValue a where
+#endif
+  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 arg'1, M108.QImageValue arg'4) => arg'1 -> HoppyP.Int -> HoppyP.Int -> arg'4 -> HoppyP.IO ()
+drawImageAtRaw arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQPainter arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  M108.withQImagePtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (drawImageAtRaw' arg'1' arg'2' arg'3' arg'4')
+
+drawImageAtRawAll :: (QPainterPtr arg'1, M108.QImageValue arg'4, M58.IsQtImageConversionFlags arg'9) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  M108.withQImagePtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  let arg'6' = HoppyFHR.coerceIntegral arg'6 in
+  let arg'7' = HoppyFHR.coerceIntegral arg'7 in
+  let arg'8' = HoppyFHR.coerceIntegral arg'8 in
+  let arg'9' = M58.fromQtImageConversionFlags $ M58.toQtImageConversionFlags arg'9 in
+  (drawImageAtRawAll' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8' arg'9')
+
+fillRectWithGlobalColor :: (QPainterPtr arg'1, M38.QRectValue arg'2) => arg'1 -> arg'2 -> M58.QtGlobalColor -> HoppyP.IO ()
+fillRectWithGlobalColor arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQPainter arg'1) $ \arg'1' ->
+  M38.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (fillRectWithGlobalColor' arg'1' arg'2' arg'3')
+
+setRenderHint :: (QPainterPtr arg'1) => arg'1 -> QPainterRenderHint -> HoppyP.IO ()
+setRenderHint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPainter arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (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 :: (M120.QPaintDevicePtr arg'1) => arg'1 -> HoppyP.IO QPainter
+newWithDevice arg'1 =
+  HoppyFHR.withCppPtr (M120.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QPainterRenderHint where
+  fromEnum Antialiasing = 1
+  fromEnum TextAntialiasing = 2
+  fromEnum SmoothPixmapTransform = 4
+  fromEnum HighQualityAntialiasing = 8
+  fromEnum NonCosmeticDefaultPen = 16
+  fromEnum Qt4CompatiblePainting = 32
+  
+  toEnum (1) = Antialiasing
+  toEnum (2) = TextAntialiasing
+  toEnum (4) = SmoothPixmapTransform
+  toEnum (8) = HighQualityAntialiasing
+  toEnum (16) = NonCosmeticDefaultPen
+  toEnum (32) = Qt4CompatiblePainting
+  toEnum n' = HoppyP.error $ "Unknown QPainterRenderHint numeric value: " ++ HoppyP.show n'
+
+newtype QPainterRenderHints = QPainterRenderHints { fromQPainterRenderHints :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQPainterRenderHints a where
+  toQPainterRenderHints :: a -> QPainterRenderHints
+
+instance IsQPainterRenderHints (HoppyFC.CInt) where
+  toQPainterRenderHints = QPainterRenderHints
+instance IsQPainterRenderHints (HoppyP.Int) where
+  toQPainterRenderHints = QPainterRenderHints . HoppyFHR.coerceIntegral
+instance IsQPainterRenderHints QPainterRenderHints where
+  toQPainterRenderHints = HoppyP.id
+
+instance IsQPainterRenderHints QPainterRenderHint where
+  toQPainterRenderHints = QPainterRenderHints . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+antialiasing = QPainterRenderHints 1
+textAntialiasing = QPainterRenderHints 2
+smoothPixmapTransform = QPainterRenderHints 4
+highQualityAntialiasing = QPainterRenderHints 8
+nonCosmeticDefaultPen = QPainterRenderHints 16
+qt4CompatiblePainting = QPainterRenderHints 32
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QPainterPath.hs b/src/Graphics/UI/Qtah/Generated/Gui/QPainterPath.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QPainterPath.hs
@@ -0,0 +1,203 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 HoppyFHR.CBool
+foreign import ccall "genpop__QPainterPath_NE" nE' ::  HoppyF.Ptr QPainterPathConst -> HoppyF.Ptr QPainterPathConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QPainterPathConstPtr a => QPainterPathValue a where
+#else
+instance QPainterPathConstPtr a => QPainterPathValue a where
+#endif
+  withQPainterPathPtr = HoppyP.flip ($) . toQPainterPathConst
+
+class (HoppyFHR.CppPtr this) => QPainterPathConstPtr this where
+  toQPainterPathConst :: this -> QPainterPathConst
+
+eQ :: (QPainterPathValue arg'1, QPainterPathValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QPainterPathValue arg'1, QPainterPathValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QPainterPathConstPtr this) => QPainterPathPtr this where
+  toQPainterPath :: this -> QPainterPath
+
+addRectRaw :: (QPainterPathPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (addRectRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+aSSIGN :: (QPainterPathPtr arg'1, QPainterPathValue arg'2) => arg'1 -> 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QPen.hs
@@ -0,0 +1,200 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Gui.QColor as M92
+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 M92.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 HoppyFHR.CBool
+foreign import ccall "genpop__QPen_NE" nE' ::  HoppyF.Ptr QPenConst -> HoppyF.Ptr QPenConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QPenConstPtr a => QPenValue a where
+#else
+instance QPenConstPtr a => QPenValue a where
+#endif
+  withQPenPtr = HoppyP.flip ($) . toQPenConst
+
+class (HoppyFHR.CppPtr this) => QPenConstPtr this where
+  toQPenConst :: this -> QPenConst
+
+eQ :: (QPenValue arg'1, QPenValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QPenValue arg'1, QPenValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QPenConstPtr this) => QPenPtr this where
+  toQPen :: this -> QPen
+
+aSSIGN :: (QPenPtr arg'1, QPenValue arg'2) => arg'1 -> 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 :: (M92.QColorValue arg'1) => arg'1 -> HoppyP.IO QPen
+newWithColor arg'1 =
+  M92.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/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,355 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M34
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.QPoint as M78
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+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 M78.QVectorQPointConst -> HoppyP.IO (HoppyF.Ptr QPolygon)
+foreign import ccall "genpop__QPolygon_newWithRectangle" newWithRectangle' ::  HoppyF.Ptr M38.QRectConst -> HoppyFHR.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 M38.QRectConst)
+foreign import ccall "genpop__QPolygon_containsPoint" containsPoint' ::  HoppyF.Ptr QPolygonConst -> HoppyF.Ptr M34.QPointConst -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.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 M34.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 M34.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 M34.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 M34.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 HoppyFHR.CBool
+foreign import ccall "genpop__QPolygon_NE" nE' ::  HoppyF.Ptr QPolygonConst -> HoppyF.Ptr QPolygonConst -> HoppyP.IO HoppyFHR.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 M78.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QPolygonConstPtr a => QPolygonValue a where
+#else
+instance QPolygonConstPtr a => QPolygonValue a where
+#endif
+  withQPolygonPtr = HoppyP.flip ($) . toQPolygonConst
+
+class (M78.QVectorQPointConstPtr this) => QPolygonConstPtr this where
+  toQPolygonConst :: this -> QPolygonConst
+
+boundingRect :: (QPolygonValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+boundingRect arg'1 =
+  withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (boundingRect' arg'1')
+
+containsPoint :: (QPolygonValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> M58.QtFillRule -> HoppyP.IO HoppyP.Bool
+containsPoint arg'1 arg'2 arg'3 =
+  withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  HoppyP.fmap (/= 0)
+  (containsPoint' arg'1' arg'2' arg'3')
+
+intersected :: (QPolygonValue arg'1, QPolygonValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HPoint.HPoint
+point arg'1 arg'2 =
+  withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (point' arg'1' arg'2')
+
+subtracted :: (QPolygonValue arg'1, QPolygonValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QPolygon
+translatedByRaw arg'1 arg'2 arg'3 =
+  withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (HoppyFHR.decodeAndDelete . QPolygonConst) =<<
+  (translatedByRaw' arg'1' arg'2' arg'3')
+
+translatedByPoint :: (QPolygonValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QPolygon
+translatedByPoint arg'1 arg'2 =
+  withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QPolygonConst) =<<
+  (translatedByPoint' arg'1' arg'2')
+
+united :: (QPolygonValue arg'1, QPolygonValue arg'2) => arg'1 -> 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 arg'1, QPolygonValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QPolygonValue arg'1, QPolygonValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QPolygonConstPtr this, M78.QVectorQPointPtr this) => QPolygonPtr this where
+  toQPolygon :: this -> QPolygon
+
+putPoints :: (QPolygonPtr arg'1, QPolygonValue arg'4) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  withQPolygonPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (putPoints' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setPoint :: (QPolygonPtr arg'1, M34.QPointValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+setPoint arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQPolygon arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M34.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setPoint' arg'1' arg'2' arg'3')
+
+swap :: (QPolygonPtr arg'1, QPolygonPtr arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+translateByRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQPolygon arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (translateByRaw' arg'1' arg'2' arg'3')
+
+translateByPoint :: (QPolygonPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+translateByPoint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPolygon arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (translateByPoint' arg'1' arg'2')
+
+aSSIGN :: (QPolygonPtr arg'1, QPolygonValue arg'2) => arg'1 -> 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 M78.QVectorQPointConstPtr QPolygonConst where
+  toQVectorQPointConst (QPolygonConst ptr') = M78.QVectorQPointConst $ castQPolygonToQVectorQPoint ptr'
+  toQVectorQPointConst (QPolygonConstGc fptr' ptr') = M78.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 M78.QVectorQPointConstPtr QPolygon where
+  toQVectorQPointConst (QPolygon ptr') = M78.QVectorQPointConst $ castQPolygonToQVectorQPoint $ (HoppyF.castPtr :: HoppyF.Ptr QPolygon -> HoppyF.Ptr QPolygonConst) ptr'
+  toQVectorQPointConst (QPolygonGc fptr' ptr') = M78.QVectorQPointConstGc fptr' $ castQPolygonToQVectorQPoint $ (HoppyF.castPtr :: HoppyF.Ptr QPolygon -> HoppyF.Ptr QPolygonConst) ptr'
+
+instance M78.QVectorQPointPtr QPolygon where
+  toQVectorQPoint (QPolygon ptr') = M78.QVectorQPoint $ (HoppyF.castPtr :: HoppyF.Ptr M78.QVectorQPointConst -> HoppyF.Ptr M78.QVectorQPoint) $ castQPolygonToQVectorQPoint $ (HoppyF.castPtr :: HoppyF.Ptr QPolygon -> HoppyF.Ptr QPolygonConst) ptr'
+  toQVectorQPoint (QPolygonGc fptr' ptr') = M78.QVectorQPointGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M78.QVectorQPointConst -> HoppyF.Ptr M78.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 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  HoppyP.fmap QPolygon
+  (newWithSize' arg'1')
+
+newWithPoints :: (M78.QVectorQPointValue arg'1) => arg'1 -> HoppyP.IO QPolygon
+newWithPoints arg'1 =
+  M78.withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPolygon
+  (newWithPoints' arg'1')
+
+newWithRectangle :: (M38.QRectValue arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO QPolygon
+newWithRectangle arg'1 arg'2 =
+  M38.withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  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,348 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M36
+import qualified Graphics.UI.Qtah.Generated.Core.QRectF as M40
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.QPointF as M80
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QPolygon as M132
+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 M80.QVectorQPointFConst -> HoppyP.IO (HoppyF.Ptr QPolygonF)
+foreign import ccall "genpop__QPolygonF_newWithPolygon" newWithPolygon' ::  HoppyF.Ptr M132.QPolygonConst -> HoppyP.IO (HoppyF.Ptr QPolygonF)
+foreign import ccall "genpop__QPolygonF_newWithRectangle" newWithRectangle' ::  HoppyF.Ptr M40.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 M40.QRectFConst)
+foreign import ccall "genpop__QPolygonF_containsPoint" containsPoint' ::  HoppyF.Ptr QPolygonFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.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 HoppyFHR.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 M132.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 M36.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 M36.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 HoppyFHR.CBool
+foreign import ccall "genpop__QPolygonF_NE" nE' ::  HoppyF.Ptr QPolygonFConst -> HoppyF.Ptr QPolygonFConst -> HoppyP.IO HoppyFHR.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 M80.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QPolygonFConstPtr a => QPolygonFValue a where
+#else
+instance QPolygonFConstPtr a => QPolygonFValue a where
+#endif
+  withQPolygonFPtr = HoppyP.flip ($) . toQPolygonFConst
+
+class (M80.QVectorQPointFConstPtr this) => QPolygonFConstPtr this where
+  toQPolygonFConst :: this -> QPolygonFConst
+
+boundingRect :: (QPolygonFValue arg'1) => arg'1 -> HoppyP.IO M40.QRectF
+boundingRect arg'1 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M40.QRectFConst) =<<
+  (boundingRect' arg'1')
+
+containsPoint :: (QPolygonFValue arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> M58.QtFillRule -> HoppyP.IO HoppyP.Bool
+containsPoint arg'1 arg'2 arg'3 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  HoppyP.fmap (/= 0)
+  (containsPoint' arg'1' arg'2' arg'3')
+
+intersected :: (QPolygonFValue arg'1, QPolygonFValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isClosed arg'1 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isClosed' arg'1')
+
+subtracted :: (QPolygonFValue arg'1, QPolygonFValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.IO M132.QPolygon
+toPolygon arg'1 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M132.QPolygonConst) =<<
+  (toPolygon' arg'1')
+
+translatedByRaw :: (QPolygonFValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QPolygonF
+translatedByRaw arg'1 arg'2 arg'3 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (HoppyFHR.decodeAndDelete . QPolygonFConst) =<<
+  (translatedByRaw' arg'1' arg'2' arg'3')
+
+translatedByPoint :: (QPolygonFValue arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QPolygonF
+translatedByPoint arg'1 arg'2 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QPolygonFConst) =<<
+  (translatedByPoint' arg'1' arg'2')
+
+united :: (QPolygonFValue arg'1, QPolygonFValue arg'2) => arg'1 -> 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 arg'1, QPolygonFValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QPolygonFValue arg'1, QPolygonFValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QPolygonFConstPtr this, M80.QVectorQPointFPtr this) => QPolygonFPtr this where
+  toQPolygonF :: this -> QPolygonF
+
+swap :: (QPolygonFPtr arg'1, QPolygonFPtr arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+translateByRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQPolygonF arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (translateByRaw' arg'1' arg'2' arg'3')
+
+translateByPoint :: (QPolygonFPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+translateByPoint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPolygonF arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (translateByPoint' arg'1' arg'2')
+
+aSSIGN :: (QPolygonFPtr arg'1, QPolygonFValue arg'2) => arg'1 -> 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 M80.QVectorQPointFConstPtr QPolygonFConst where
+  toQVectorQPointFConst (QPolygonFConst ptr') = M80.QVectorQPointFConst $ castQPolygonFToQVectorQPointF ptr'
+  toQVectorQPointFConst (QPolygonFConstGc fptr' ptr') = M80.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 M80.QVectorQPointFConstPtr QPolygonF where
+  toQVectorQPointFConst (QPolygonF ptr') = M80.QVectorQPointFConst $ castQPolygonFToQVectorQPointF $ (HoppyF.castPtr :: HoppyF.Ptr QPolygonF -> HoppyF.Ptr QPolygonFConst) ptr'
+  toQVectorQPointFConst (QPolygonFGc fptr' ptr') = M80.QVectorQPointFConstGc fptr' $ castQPolygonFToQVectorQPointF $ (HoppyF.castPtr :: HoppyF.Ptr QPolygonF -> HoppyF.Ptr QPolygonFConst) ptr'
+
+instance M80.QVectorQPointFPtr QPolygonF where
+  toQVectorQPointF (QPolygonF ptr') = M80.QVectorQPointF $ (HoppyF.castPtr :: HoppyF.Ptr M80.QVectorQPointFConst -> HoppyF.Ptr M80.QVectorQPointF) $ castQPolygonFToQVectorQPointF $ (HoppyF.castPtr :: HoppyF.Ptr QPolygonF -> HoppyF.Ptr QPolygonFConst) ptr'
+  toQVectorQPointF (QPolygonFGc fptr' ptr') = M80.QVectorQPointFGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M80.QVectorQPointFConst -> HoppyF.Ptr M80.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 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  HoppyP.fmap QPolygonF
+  (newWithSize' arg'1')
+
+newWithPoints :: (M80.QVectorQPointFValue arg'1) => arg'1 -> HoppyP.IO QPolygonF
+newWithPoints arg'1 =
+  M80.withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPolygonF
+  (newWithPoints' arg'1')
+
+newWithPolygon :: (M132.QPolygonValue arg'1) => arg'1 -> HoppyP.IO QPolygonF
+newWithPolygon arg'1 =
+  M132.withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPolygonF
+  (newWithPolygon' arg'1')
+
+newWithRectangle :: (M40.QRectFValue arg'1) => arg'1 -> HoppyP.IO QPolygonF
+newWithRectangle arg'1 =
+  M40.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QRasterWindow.hs
@@ -0,0 +1,284 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M120
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDeviceWindow as M122
+import qualified Graphics.UI.Qtah.Generated.Gui.QSurface as M142
+import qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M150
+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 M150.QWindow -> HoppyP.IO (HoppyF.Ptr QRasterWindow)
+foreign import ccall "gencast__QRasterWindow__QPaintDeviceWindow" castQRasterWindowToQPaintDeviceWindow :: HoppyF.Ptr QRasterWindowConst -> HoppyF.Ptr M122.QPaintDeviceWindowConst
+foreign import ccall "gencast__QPaintDeviceWindow__QRasterWindow" castQPaintDeviceWindowToQRasterWindow :: HoppyF.Ptr M122.QPaintDeviceWindowConst -> HoppyF.Ptr QRasterWindowConst
+foreign import ccall "gencast__QRasterWindow__QWindow" castQRasterWindowToQWindow :: HoppyF.Ptr QRasterWindowConst -> HoppyF.Ptr M150.QWindowConst
+foreign import ccall "gencast__QWindow__QRasterWindow" castQWindowToQRasterWindow :: HoppyF.Ptr M150.QWindowConst -> HoppyF.Ptr QRasterWindowConst
+foreign import ccall "gencast__QRasterWindow__QObject" castQRasterWindowToQObject :: HoppyF.Ptr QRasterWindowConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QRasterWindow" castQObjectToQRasterWindow :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr QRasterWindowConst
+foreign import ccall "gencast__QRasterWindow__QSurface" castQRasterWindowToQSurface :: HoppyF.Ptr QRasterWindowConst -> HoppyF.Ptr M142.QSurfaceConst
+foreign import ccall "gencast__QSurface__QRasterWindow" castQSurfaceToQRasterWindow :: HoppyF.Ptr M142.QSurfaceConst -> HoppyF.Ptr QRasterWindowConst
+foreign import ccall "gencast__QRasterWindow__QPaintDevice" castQRasterWindowToQPaintDevice :: HoppyF.Ptr QRasterWindowConst -> HoppyF.Ptr M120.QPaintDeviceConst
+foreign import ccall "gencast__QPaintDevice__QRasterWindow" castQPaintDeviceToQRasterWindow :: HoppyF.Ptr M120.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QRasterWindowConstPtr a => QRasterWindowValue a where
+#else
+instance QRasterWindowConstPtr a => QRasterWindowValue a where
+#endif
+  withQRasterWindowPtr = HoppyP.flip ($) . toQRasterWindowConst
+
+class (M122.QPaintDeviceWindowConstPtr this) => QRasterWindowConstPtr this where
+  toQRasterWindowConst :: this -> QRasterWindowConst
+
+class (QRasterWindowConstPtr this, M122.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 M122.QPaintDeviceWindowConstPtr QRasterWindowConst where
+  toQPaintDeviceWindowConst (QRasterWindowConst ptr') = M122.QPaintDeviceWindowConst $ castQRasterWindowToQPaintDeviceWindow ptr'
+  toQPaintDeviceWindowConst (QRasterWindowConstGc fptr' ptr') = M122.QPaintDeviceWindowConstGc fptr' $ castQRasterWindowToQPaintDeviceWindow ptr'
+
+instance M150.QWindowConstPtr QRasterWindowConst where
+  toQWindowConst (QRasterWindowConst ptr') = M150.QWindowConst $ castQRasterWindowToQWindow ptr'
+  toQWindowConst (QRasterWindowConstGc fptr' ptr') = M150.QWindowConstGc fptr' $ castQRasterWindowToQWindow ptr'
+
+instance M30.QObjectConstPtr QRasterWindowConst where
+  toQObjectConst (QRasterWindowConst ptr') = M30.QObjectConst $ castQRasterWindowToQObject ptr'
+  toQObjectConst (QRasterWindowConstGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQRasterWindowToQObject ptr'
+
+instance M142.QSurfaceConstPtr QRasterWindowConst where
+  toQSurfaceConst (QRasterWindowConst ptr') = M142.QSurfaceConst $ castQRasterWindowToQSurface ptr'
+  toQSurfaceConst (QRasterWindowConstGc fptr' ptr') = M142.QSurfaceConstGc fptr' $ castQRasterWindowToQSurface ptr'
+
+instance M120.QPaintDeviceConstPtr QRasterWindowConst where
+  toQPaintDeviceConst (QRasterWindowConst ptr') = M120.QPaintDeviceConst $ castQRasterWindowToQPaintDevice ptr'
+  toQPaintDeviceConst (QRasterWindowConstGc fptr' ptr') = M120.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 M122.QPaintDeviceWindowConstPtr QRasterWindow where
+  toQPaintDeviceWindowConst (QRasterWindow ptr') = M122.QPaintDeviceWindowConst $ castQRasterWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQPaintDeviceWindowConst (QRasterWindowGc fptr' ptr') = M122.QPaintDeviceWindowConstGc fptr' $ castQRasterWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M122.QPaintDeviceWindowPtr QRasterWindow where
+  toQPaintDeviceWindow (QRasterWindow ptr') = M122.QPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr M122.QPaintDeviceWindowConst -> HoppyF.Ptr M122.QPaintDeviceWindow) $ castQRasterWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQPaintDeviceWindow (QRasterWindowGc fptr' ptr') = M122.QPaintDeviceWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M122.QPaintDeviceWindowConst -> HoppyF.Ptr M122.QPaintDeviceWindow) $ castQRasterWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M150.QWindowConstPtr QRasterWindow where
+  toQWindowConst (QRasterWindow ptr') = M150.QWindowConst $ castQRasterWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQWindowConst (QRasterWindowGc fptr' ptr') = M150.QWindowConstGc fptr' $ castQRasterWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M150.QWindowPtr QRasterWindow where
+  toQWindow (QRasterWindow ptr') = M150.QWindow $ (HoppyF.castPtr :: HoppyF.Ptr M150.QWindowConst -> HoppyF.Ptr M150.QWindow) $ castQRasterWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQWindow (QRasterWindowGc fptr' ptr') = M150.QWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M150.QWindowConst -> HoppyF.Ptr M150.QWindow) $ castQRasterWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M30.QObjectConstPtr QRasterWindow where
+  toQObjectConst (QRasterWindow ptr') = M30.QObjectConst $ castQRasterWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQObjectConst (QRasterWindowGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQRasterWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M30.QObjectPtr QRasterWindow where
+  toQObject (QRasterWindow ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQRasterWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQObject (QRasterWindowGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQRasterWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M142.QSurfaceConstPtr QRasterWindow where
+  toQSurfaceConst (QRasterWindow ptr') = M142.QSurfaceConst $ castQRasterWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQSurfaceConst (QRasterWindowGc fptr' ptr') = M142.QSurfaceConstGc fptr' $ castQRasterWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M142.QSurfacePtr QRasterWindow where
+  toQSurface (QRasterWindow ptr') = M142.QSurface $ (HoppyF.castPtr :: HoppyF.Ptr M142.QSurfaceConst -> HoppyF.Ptr M142.QSurface) $ castQRasterWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQSurface (QRasterWindowGc fptr' ptr') = M142.QSurfaceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M142.QSurfaceConst -> HoppyF.Ptr M142.QSurface) $ castQRasterWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M120.QPaintDeviceConstPtr QRasterWindow where
+  toQPaintDeviceConst (QRasterWindow ptr') = M120.QPaintDeviceConst $ castQRasterWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQPaintDeviceConst (QRasterWindowGc fptr' ptr') = M120.QPaintDeviceConstGc fptr' $ castQRasterWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M120.QPaintDevicePtr QRasterWindow where
+  toQPaintDevice (QRasterWindow ptr') = M120.QPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr M120.QPaintDeviceConst -> HoppyF.Ptr M120.QPaintDevice) $ castQRasterWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQPaintDevice (QRasterWindowGc fptr' ptr') = M120.QPaintDeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M120.QPaintDeviceConst -> HoppyF.Ptr M120.QPaintDevice) $ castQRasterWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+new ::  HoppyP.IO QRasterWindow
+new =
+  HoppyP.fmap QRasterWindow
+  (new')
+
+newWithParent :: (M150.QWindowPtr arg'1) => arg'1 -> HoppyP.IO QRasterWindow
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M150.toQWindow arg'1) $ \arg'1' ->
+  HoppyP.fmap QRasterWindow
+  (newWithParent' arg'1')
+
+class QRasterWindowSuper a where
+  downToQRasterWindow :: a -> QRasterWindow
+
+instance QRasterWindowSuper M122.QPaintDeviceWindow where
+  downToQRasterWindow = castQRasterWindowToNonconst . cast' . M122.castQPaintDeviceWindowToConst
+    where
+      cast' (M122.QPaintDeviceWindowConst ptr') = QRasterWindowConst $ castQPaintDeviceWindowToQRasterWindow ptr'
+      cast' (M122.QPaintDeviceWindowConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQPaintDeviceWindowToQRasterWindow ptr'
+instance QRasterWindowSuper M150.QWindow where
+  downToQRasterWindow = castQRasterWindowToNonconst . cast' . M150.castQWindowToConst
+    where
+      cast' (M150.QWindowConst ptr') = QRasterWindowConst $ castQWindowToQRasterWindow ptr'
+      cast' (M150.QWindowConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQWindowToQRasterWindow ptr'
+instance QRasterWindowSuper M30.QObject where
+  downToQRasterWindow = castQRasterWindowToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QRasterWindowConst $ castQObjectToQRasterWindow ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQObjectToQRasterWindow ptr'
+instance QRasterWindowSuper M142.QSurface where
+  downToQRasterWindow = castQRasterWindowToNonconst . cast' . M142.castQSurfaceToConst
+    where
+      cast' (M142.QSurfaceConst ptr') = QRasterWindowConst $ castQSurfaceToQRasterWindow ptr'
+      cast' (M142.QSurfaceConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQSurfaceToQRasterWindow ptr'
+instance QRasterWindowSuper M120.QPaintDevice where
+  downToQRasterWindow = castQRasterWindowToNonconst . cast' . M120.castQPaintDeviceToConst
+    where
+      cast' (M120.QPaintDeviceConst ptr') = QRasterWindowConst $ castQPaintDeviceToQRasterWindow ptr'
+      cast' (M120.QPaintDeviceConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQPaintDeviceToQRasterWindow ptr'
+
+class QRasterWindowSuperConst a where
+  downToQRasterWindowConst :: a -> QRasterWindowConst
+
+instance QRasterWindowSuperConst M122.QPaintDeviceWindowConst where
+  downToQRasterWindowConst = cast'
+    where
+      cast' (M122.QPaintDeviceWindowConst ptr') = QRasterWindowConst $ castQPaintDeviceWindowToQRasterWindow ptr'
+      cast' (M122.QPaintDeviceWindowConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQPaintDeviceWindowToQRasterWindow ptr'
+instance QRasterWindowSuperConst M150.QWindowConst where
+  downToQRasterWindowConst = cast'
+    where
+      cast' (M150.QWindowConst ptr') = QRasterWindowConst $ castQWindowToQRasterWindow ptr'
+      cast' (M150.QWindowConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQWindowToQRasterWindow ptr'
+instance QRasterWindowSuperConst M30.QObjectConst where
+  downToQRasterWindowConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QRasterWindowConst $ castQObjectToQRasterWindow ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQObjectToQRasterWindow ptr'
+instance QRasterWindowSuperConst M142.QSurfaceConst where
+  downToQRasterWindowConst = cast'
+    where
+      cast' (M142.QSurfaceConst ptr') = QRasterWindowConst $ castQSurfaceToQRasterWindow ptr'
+      cast' (M142.QSurfaceConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQSurfaceToQRasterWindow ptr'
+instance QRasterWindowSuperConst M120.QPaintDeviceConst where
+  downToQRasterWindowConst = cast'
+    where
+      cast' (M120.QPaintDeviceConst ptr') = QRasterWindowConst $ castQPaintDeviceToQRasterWindow ptr'
+      cast' (M120.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,396 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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 M34
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+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_newFromRect" newFromRect' ::  HoppyF.Ptr M38.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 M38.QRectConst)
+foreign import ccall "genpop__QRegion_containsPoint" containsPoint' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QRegion_containsRect" containsRect' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr M38.QRectConst -> HoppyP.IO HoppyFHR.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 M38.QRectConst -> HoppyP.IO (HoppyF.Ptr QRegionConst)
+foreign import ccall "genpop__QRegion_intersects" intersects' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr QRegionConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QRegion_intersectsRect" intersectsRect' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr M38.QRectConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QRegion_isEmpty" isEmpty' ::  HoppyF.Ptr QRegionConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QRegion_isNull" isNull' ::  HoppyF.Ptr QRegionConst -> HoppyP.IO HoppyFHR.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 M34.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 M34.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 M38.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 HoppyFHR.CBool
+foreign import ccall "genpop__QRegion_NE" nE' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr QRegionConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QRegionConstPtr a => QRegionValue a where
+#else
+instance QRegionConstPtr a => QRegionValue a where
+#endif
+  withQRegionPtr = HoppyP.flip ($) . toQRegionConst
+
+class (HoppyFHR.CppPtr this) => QRegionConstPtr this where
+  toQRegionConst :: this -> QRegionConst
+
+boundingRect :: (QRegionValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+boundingRect arg'1 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (boundingRect' arg'1')
+
+containsPoint :: (QRegionValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+containsPoint arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (containsPoint' arg'1' arg'2')
+
+containsRect :: (QRegionValue arg'1, M38.QRectValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+containsRect arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M38.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (containsRect' arg'1' arg'2')
+
+intersected :: (QRegionValue arg'1, QRegionValue arg'2) => arg'1 -> 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 arg'1, M38.QRectValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QRegion
+intersectedWithRect arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M38.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRegionConst) =<<
+  (intersectedWithRect' arg'1' arg'2')
+
+intersects :: (QRegionValue arg'1, QRegionValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (intersects' arg'1' arg'2')
+
+intersectsRect :: (QRegionValue arg'1, M38.QRectValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+intersectsRect arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M38.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (intersectsRect' arg'1' arg'2')
+
+isEmpty :: (QRegionValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+isNull :: (QRegionValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isNull arg'1 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isNull' arg'1')
+
+rectCount :: (QRegionValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+rectCount arg'1 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (rectCount' arg'1')
+
+subtracted :: (QRegionValue arg'1, QRegionValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QRegion
+translatedByCoords arg'1 arg'2 arg'3 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (HoppyFHR.decodeAndDelete . QRegionConst) =<<
+  (translatedByCoords' arg'1' arg'2' arg'3')
+
+translatedByPoint :: (QRegionValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QRegion
+translatedByPoint arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRegionConst) =<<
+  (translatedByPoint' arg'1' arg'2')
+
+united :: (QRegionValue arg'1, QRegionValue arg'2) => arg'1 -> 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 arg'1, M38.QRectValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QRegion
+unitedWithRect arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M38.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRegionConst) =<<
+  (unitedWithRect' arg'1' arg'2')
+
+xored :: (QRegionValue arg'1, QRegionValue arg'2) => arg'1 -> 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 arg'1, QRegionValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QRegionValue arg'1, QRegionValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QRegionConstPtr this) => QRegionPtr this where
+  toQRegion :: this -> QRegion
+
+swap :: (QRegionPtr arg'1, QRegionPtr arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+translateByCoords arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQRegion arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (translateByCoords' arg'1' arg'2' arg'3')
+
+translateByPoint :: (QRegionPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+translateByPoint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRegion arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (translateByPoint' arg'1' arg'2')
+
+aSSIGN :: (QRegionPtr arg'1, QRegionValue arg'2) => arg'1 -> 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 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'5 in
+  HoppyP.fmap QRegion
+  (newFromPoints' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+newFromRect :: (M38.QRectValue arg'1) => arg'1 -> QRegionRegionType -> HoppyP.IO QRegion
+newFromRect arg'1 arg'2 =
+  M38.withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QRegionRegionType where
+  fromEnum Rectangle = 0
+  fromEnum Ellipse = 1
+  
+  toEnum (0) = Rectangle
+  toEnum (1) = Ellipse
+  toEnum n' = HoppyP.error $ "Unknown QRegionRegionType numeric value: " ++ HoppyP.show n'
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,168 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M16
+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 M16.QEventConst
+foreign import ccall "gencast__QEvent__QShowEvent" castQEventToQShowEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QShowEventConstPtr a => QShowEventValue a where
+#else
+instance QShowEventConstPtr a => QShowEventValue a where
+#endif
+  withQShowEventPtr = HoppyP.flip ($) . toQShowEventConst
+
+class (M16.QEventConstPtr this) => QShowEventConstPtr this where
+  toQShowEventConst :: this -> QShowEventConst
+
+class (QShowEventConstPtr this, M16.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 M16.QEventConstPtr QShowEventConst where
+  toQEventConst (QShowEventConst ptr') = M16.QEventConst $ castQShowEventToQEvent ptr'
+  toQEventConst (QShowEventConstGc fptr' ptr') = M16.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 M16.QEventConstPtr QShowEvent where
+  toQEventConst (QShowEvent ptr') = M16.QEventConst $ castQShowEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QShowEvent -> HoppyF.Ptr QShowEventConst) ptr'
+  toQEventConst (QShowEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQShowEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QShowEvent -> HoppyF.Ptr QShowEventConst) ptr'
+
+instance M16.QEventPtr QShowEvent where
+  toQEvent (QShowEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQShowEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QShowEvent -> HoppyF.Ptr QShowEventConst) ptr'
+  toQEvent (QShowEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.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 M16.QEvent where
+  downToQShowEvent = castQShowEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QShowEventConst $ castQEventToQShowEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QShowEventConstGc fptr' $ castQEventToQShowEvent ptr'
+
+class QShowEventSuperConst a where
+  downToQShowEventConst :: a -> QShowEventConst
+
+instance QShowEventSuperConst M16.QEventConst where
+  downToQShowEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QShowEventConst $ castQEventToQShowEvent ptr'
+      cast' (M16.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/QSurface.hs b/src/Graphics/UI/Qtah/Generated/Gui/QSurface.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QSurface.hs
@@ -0,0 +1,200 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M42
+import Prelude (($), (++), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QSurface_size" size' ::  HoppyF.Ptr QSurfaceConst -> HoppyP.IO (HoppyF.Ptr M42.QSizeConst)
+foreign import ccall "genpop__QSurface_supportsOpenGL" supportsOpenGL' ::  HoppyF.Ptr QSurfaceConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QSurfaceConstPtr a => QSurfaceValue a where
+#else
+instance QSurfaceConstPtr a => QSurfaceValue a where
+#endif
+  withQSurfacePtr = HoppyP.flip ($) . toQSurfaceConst
+
+class (HoppyFHR.CppPtr this) => QSurfaceConstPtr this where
+  toQSurfaceConst :: this -> QSurfaceConst
+
+size :: (QSurfaceValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+size arg'1 =
+  withQSurfacePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (size' arg'1')
+
+supportsOpenGL :: (QSurfaceValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+supportsOpenGL arg'1 =
+  withQSurfacePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (supportsOpenGL' arg'1')
+
+surfaceClass :: (QSurfaceValue arg'1) => arg'1 -> HoppyP.IO QSurfaceSurfaceClass
+surfaceClass arg'1 =
+  withQSurfacePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (surfaceClass' arg'1')
+
+surfaceType :: (QSurfaceValue arg'1) => arg'1 -> HoppyP.IO QSurfaceSurfaceType
+surfaceType arg'1 =
+  withQSurfacePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QSurfaceSurfaceClass where
+  fromEnum Window = 0
+  fromEnum Offscreen = 1
+  
+  toEnum (0) = Window
+  toEnum (1) = Offscreen
+  toEnum n' = HoppyP.error $ "Unknown QSurfaceSurfaceClass numeric value: " ++ HoppyP.show n'
+
+data QSurfaceSurfaceType =
+  RasterSurface
+  | OpenGLSurface
+  | RasterGLSurface
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QSurfaceSurfaceType where
+  fromEnum RasterSurface = 0
+  fromEnum OpenGLSurface = 1
+  fromEnum RasterGLSurface = 2
+  
+  toEnum (0) = RasterSurface
+  toEnum (1) = OpenGLSurface
+  toEnum (2) = RasterGLSurface
+  toEnum n' = HoppyP.error $ "Unknown QSurfaceSurfaceType numeric value: " ++ HoppyP.show n'
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QTransform.hs b/src/Graphics/UI/Qtah/Generated/Gui/QTransform.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QTransform.hs
@@ -0,0 +1,198 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 HoppyFHR.CBool
+foreign import ccall "genpop__QTransform_NE" nE' ::  HoppyF.Ptr QTransformConst -> HoppyF.Ptr QTransformConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QTransformConstPtr a => QTransformValue a where
+#else
+instance QTransformConstPtr a => QTransformValue a where
+#endif
+  withQTransformPtr = HoppyP.flip ($) . toQTransformConst
+
+class (HoppyFHR.CppPtr this) => QTransformConstPtr this where
+  toQTransformConst :: this -> QTransformConst
+
+eQ :: (QTransformValue arg'1, QTransformValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QTransformValue arg'1, QTransformValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QTransformConstPtr this) => QTransformPtr this where
+  toQTransform :: this -> QTransform
+
+aSSIGN :: (QTransformPtr arg'1, QTransformValue arg'2) => arg'1 -> 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 =
+  let arg'1' = HoppyP.realToFrac arg'1 in
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  let arg'6' = HoppyP.realToFrac arg'6 in
+  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,198 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QValidator (
+  castQValidatorToQObject,
+  castQObjectToQValidator,
+  QValidatorValue (..),
+  QValidatorConstPtr (..),
+  fixup,
+  validate,
+  QValidatorPtr (..),
+  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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import Prelude (($), (++), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QValidator_fixup" fixup' ::  HoppyF.Ptr QValidatorConst -> HoppyF.Ptr M46.QString -> HoppyP.IO ()
+foreign import ccall "genpop__QValidator_validate" validate' ::  HoppyF.Ptr QValidatorConst -> HoppyF.Ptr M46.QString -> HoppyF.Ptr HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gencast__QValidator__QObject" castQValidatorToQObject :: HoppyF.Ptr QValidatorConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QValidator" castQObjectToQValidator :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QValidatorConstPtr a => QValidatorValue a where
+#else
+instance QValidatorConstPtr a => QValidatorValue a where
+#endif
+  withQValidatorPtr = HoppyP.flip ($) . toQValidatorConst
+
+class (M30.QObjectConstPtr this) => QValidatorConstPtr this where
+  toQValidatorConst :: this -> QValidatorConst
+
+fixup :: (QValidatorValue arg'1, M46.QStringPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+fixup arg'1 arg'2 =
+  withQValidatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M46.toQString arg'2) $ \arg'2' ->
+  (fixup' arg'1' arg'2')
+
+validate :: (QValidatorValue arg'1, M46.QStringPtr arg'2) => arg'1 -> 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 (M46.toQString arg'2) $ \arg'2' ->
+  let arg'3' = arg'3 in
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (validate' arg'1' arg'2' arg'3')
+
+class (QValidatorConstPtr this, M30.QObjectPtr this) => QValidatorPtr this where
+  toQValidator :: this -> QValidator
+
+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 M30.QObjectConstPtr QValidatorConst where
+  toQObjectConst (QValidatorConst ptr') = M30.QObjectConst $ castQValidatorToQObject ptr'
+  toQObjectConst (QValidatorConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr QValidator where
+  toQObjectConst (QValidator ptr') = M30.QObjectConst $ castQValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QValidator -> HoppyF.Ptr QValidatorConst) ptr'
+  toQObjectConst (QValidatorGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QValidator -> HoppyF.Ptr QValidatorConst) ptr'
+
+instance M30.QObjectPtr QValidator where
+  toQObject (QValidator ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QValidator -> HoppyF.Ptr QValidatorConst) ptr'
+  toQObject (QValidatorGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QValidator -> HoppyF.Ptr QValidatorConst) ptr'
+
+class QValidatorSuper a where
+  downToQValidator :: a -> QValidator
+
+instance QValidatorSuper M30.QObject where
+  downToQValidator = castQValidatorToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QValidatorConst $ castQObjectToQValidator ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QValidatorConstGc fptr' $ castQObjectToQValidator ptr'
+
+class QValidatorSuperConst a where
+  downToQValidatorConst :: a -> QValidatorConst
+
+instance QValidatorSuperConst M30.QObjectConst where
+  downToQValidatorConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QValidatorConst $ castQObjectToQValidator ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QValidatorState where
+  fromEnum Invalid = 0
+  fromEnum Intermediate = 1
+  fromEnum Acceptable = 2
+  
+  toEnum (0) = Invalid
+  toEnum (1) = Intermediate
+  toEnum (2) = Acceptable
+  toEnum n' = HoppyP.error $ "Unknown QValidatorState numeric value: " ++ HoppyP.show n'
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,321 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Generated.Core.QEvent as M16
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M36
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QInputEvent as M110
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QWheelEvent_new" new' ::  HoppyF.Ptr M36.QPointFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyF.Ptr M34.QPointConst -> HoppyF.Ptr M34.QPointConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QWheelEvent)
+foreign import ccall "genpop__QWheelEvent_newWithPhase" newWithPhase' ::  HoppyF.Ptr M36.QPointFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyF.Ptr M34.QPointConst -> HoppyF.Ptr M34.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 M34.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 M34.QPointConst)
+foreign import ccall "genpop__QWheelEvent_globalPosF" globalPosF' ::  HoppyF.Ptr QWheelEventConst -> HoppyP.IO (HoppyF.Ptr M36.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 M34.QPointConst)
+foreign import ccall "genpop__QWheelEvent_pos" pos' ::  HoppyF.Ptr QWheelEventConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QWheelEvent_posF" posF' ::  HoppyF.Ptr QWheelEventConst -> HoppyP.IO (HoppyF.Ptr M36.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 M110.QInputEventConst
+foreign import ccall "gencast__QInputEvent__QWheelEvent" castQInputEventToQWheelEvent :: HoppyF.Ptr M110.QInputEventConst -> HoppyF.Ptr QWheelEventConst
+foreign import ccall "gencast__QWheelEvent__QEvent" castQWheelEventToQEvent :: HoppyF.Ptr QWheelEventConst -> HoppyF.Ptr M16.QEventConst
+foreign import ccall "gencast__QEvent__QWheelEvent" castQEventToQWheelEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QWheelEventConstPtr a => QWheelEventValue a where
+#else
+instance QWheelEventConstPtr a => QWheelEventValue a where
+#endif
+  withQWheelEventPtr = HoppyP.flip ($) . toQWheelEventConst
+
+class (M110.QInputEventConstPtr this) => QWheelEventConstPtr this where
+  toQWheelEventConst :: this -> QWheelEventConst
+
+angleDelta :: (QWheelEventValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+angleDelta arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (angleDelta' arg'1')
+
+buttons :: (QWheelEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtMouseButtons
+buttons arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtMouseButtons
+  (buttons' arg'1')
+
+globalPos :: (QWheelEventValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+globalPos arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (globalPos' arg'1')
+
+globalPosF :: (QWheelEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+globalPosF arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (globalPosF' arg'1')
+
+globalX :: (QWheelEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+globalX arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (globalX' arg'1')
+
+globalY :: (QWheelEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+globalY arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (globalY' arg'1')
+
+phase :: (QWheelEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtScrollPhase
+phase arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (phase' arg'1')
+
+pixelDelta :: (QWheelEventValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+pixelDelta arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (pixelDelta' arg'1')
+
+pos :: (QWheelEventValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+pos arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (pos' arg'1')
+
+posF :: (QWheelEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+posF arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (posF' arg'1')
+
+x :: (QWheelEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+x arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (x' arg'1')
+
+y :: (QWheelEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+y arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (y' arg'1')
+
+class (QWheelEventConstPtr this, M110.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 M110.QInputEventConstPtr QWheelEventConst where
+  toQInputEventConst (QWheelEventConst ptr') = M110.QInputEventConst $ castQWheelEventToQInputEvent ptr'
+  toQInputEventConst (QWheelEventConstGc fptr' ptr') = M110.QInputEventConstGc fptr' $ castQWheelEventToQInputEvent ptr'
+
+instance M16.QEventConstPtr QWheelEventConst where
+  toQEventConst (QWheelEventConst ptr') = M16.QEventConst $ castQWheelEventToQEvent ptr'
+  toQEventConst (QWheelEventConstGc fptr' ptr') = M16.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 M110.QInputEventConstPtr QWheelEvent where
+  toQInputEventConst (QWheelEvent ptr') = M110.QInputEventConst $ castQWheelEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+  toQInputEventConst (QWheelEventGc fptr' ptr') = M110.QInputEventConstGc fptr' $ castQWheelEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+
+instance M110.QInputEventPtr QWheelEvent where
+  toQInputEvent (QWheelEvent ptr') = M110.QInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr M110.QInputEventConst -> HoppyF.Ptr M110.QInputEvent) $ castQWheelEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+  toQInputEvent (QWheelEventGc fptr' ptr') = M110.QInputEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M110.QInputEventConst -> HoppyF.Ptr M110.QInputEvent) $ castQWheelEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+
+instance M16.QEventConstPtr QWheelEvent where
+  toQEventConst (QWheelEvent ptr') = M16.QEventConst $ castQWheelEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+  toQEventConst (QWheelEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQWheelEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+
+instance M16.QEventPtr QWheelEvent where
+  toQEvent (QWheelEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQWheelEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+  toQEvent (QWheelEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQWheelEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+
+new :: (M36.QPointFValue arg'1, M36.QPointFValue arg'2, M34.QPointValue arg'3, M34.QPointValue arg'4, M58.IsQtMouseButtons arg'7, M58.IsQtKeyboardModifiers arg'8) => arg'1 -> arg'2 -> arg'3 -> arg'4 -> HoppyP.Int -> M58.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 =
+  M36.withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M34.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M34.withQPointPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  let arg'6' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'6 in
+  let arg'7' = M58.fromQtMouseButtons $ M58.toQtMouseButtons arg'7 in
+  let arg'8' = M58.fromQtKeyboardModifiers $ M58.toQtKeyboardModifiers arg'8 in
+  HoppyP.fmap QWheelEvent
+  (new' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8')
+
+newWithPhase :: (M36.QPointFValue arg'1, M36.QPointFValue arg'2, M34.QPointValue arg'3, M34.QPointValue arg'4, M58.IsQtMouseButtons arg'7, M58.IsQtKeyboardModifiers arg'8) => arg'1 -> arg'2 -> arg'3 -> arg'4 -> HoppyP.Int -> M58.QtOrientation -> arg'7 -> arg'8 -> M58.QtScrollPhase -> HoppyP.IO QWheelEvent
+newWithPhase arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 arg'8 arg'9 =
+  M36.withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M34.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M34.withQPointPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  let arg'6' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'6 in
+  let arg'7' = M58.fromQtMouseButtons $ M58.toQtMouseButtons arg'7 in
+  let arg'8' = M58.fromQtKeyboardModifiers $ M58.toQtKeyboardModifiers arg'8 in
+  let arg'9' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'9 in
+  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 M110.QInputEvent where
+  downToQWheelEvent = castQWheelEventToNonconst . cast' . M110.castQInputEventToConst
+    where
+      cast' (M110.QInputEventConst ptr') = QWheelEventConst $ castQInputEventToQWheelEvent ptr'
+      cast' (M110.QInputEventConstGc fptr' ptr') = QWheelEventConstGc fptr' $ castQInputEventToQWheelEvent ptr'
+instance QWheelEventSuper M16.QEvent where
+  downToQWheelEvent = castQWheelEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QWheelEventConst $ castQEventToQWheelEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QWheelEventConstGc fptr' $ castQEventToQWheelEvent ptr'
+
+class QWheelEventSuperConst a where
+  downToQWheelEventConst :: a -> QWheelEventConst
+
+instance QWheelEventSuperConst M110.QInputEventConst where
+  downToQWheelEventConst = cast'
+    where
+      cast' (M110.QInputEventConst ptr') = QWheelEventConst $ castQInputEventToQWheelEvent ptr'
+      cast' (M110.QInputEventConstGc fptr' ptr') = QWheelEventConstGc fptr' $ castQInputEventToQWheelEvent ptr'
+instance QWheelEventSuperConst M16.QEventConst where
+  downToQWheelEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QWheelEventConst $ castQEventToQWheelEvent ptr'
+      cast' (M16.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QWindow.hs
@@ -0,0 +1,955 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QWindow (
+  castQWindowToQObject,
+  castQObjectToQWindow,
+  castQWindowToQSurface,
+  castQSurfaceToQWindow,
+  QWindowValue (..),
+  QWindowConstPtr (..),
+  baseSize,
+  contentOrientation,
+  devicePixelRatio,
+  filePath,
+  flags,
+  focusObject,
+  frameGeometry,
+  frameMargins,
+  framePosition,
+  geometry,
+  height,
+  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,
+  destroy,
+  setFilePath,
+  setFlags,
+  setFramePosition,
+  setGeometry,
+  setHeight,
+  hide,
+  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,
+  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.Generated.Core.QMargins as M24
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M42
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QRegion as M138
+import qualified Graphics.UI.Qtah.Generated.Gui.QSurface as M142
+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 M42.QSizeConst)
+foreign import ccall "genpop__QWindow_setBaseSize" setBaseSize' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M42.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_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 M46.QStringConst)
+foreign import ccall "genpop__QWindow_setFilePath" setFilePath' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M46.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 M30.QObject)
+foreign import ccall "genpop__QWindow_frameGeometry" frameGeometry' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M38.QRectConst)
+foreign import ccall "genpop__QWindow_frameMargins" frameMargins' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M24.QMarginsConst)
+foreign import ccall "genpop__QWindow_framePosition" framePosition' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QWindow_setFramePosition" setFramePosition' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_geometry" geometry' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M38.QRectConst)
+foreign import ccall "genpop__QWindow_setGeometry" setGeometry' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M38.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_isActive" isActive' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QWindow_isAncestorOf" isAncestorOf' ::  HoppyF.Ptr QWindowConst -> HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QWindow_isExposed" isExposed' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QWindow_isModal" isModal' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QWindow_isTopLevel" isTopLevel' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFHR.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 M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QWindow_mapToGlobal" mapToGlobal' ::  HoppyF.Ptr QWindowConst -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QWindow_mask" mask' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M138.QRegionConst)
+foreign import ccall "genpop__QWindow_setMask" setMask' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M138.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 M42.QSizeConst)
+foreign import ccall "genpop__QWindow_setMaximumSize" setMaximumSize' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M42.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 M42.QSizeConst)
+foreign import ccall "genpop__QWindow_setMinimumSize" setMinimumSize' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M42.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 M34.QPointConst)
+foreign import ccall "genpop__QWindow_setPosition" setPosition' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M34.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 M42.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 -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_setMouseGrabEnabled" setMouseGrabEnabled' ::  HoppyF.Ptr QWindow -> HoppyFHR.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 M42.QSizeConst)
+foreign import ccall "genpop__QWindow_setSizeIncrement" setSizeIncrement' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M42.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_title" title' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QWindow_setTitle" setTitle' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M46.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 HoppyFHR.CBool
+foreign import ccall "genpop__QWindow_setVisible" setVisible' ::  HoppyF.Ptr QWindow -> HoppyFHR.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 "gencast__QWindow__QObject" castQWindowToQObject :: HoppyF.Ptr QWindowConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QWindow" castQObjectToQWindow :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr QWindowConst
+foreign import ccall "gencast__QWindow__QSurface" castQWindowToQSurface :: HoppyF.Ptr QWindowConst -> HoppyF.Ptr M142.QSurfaceConst
+foreign import ccall "gencast__QSurface__QWindow" castQSurfaceToQWindow :: HoppyF.Ptr M142.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QWindowConstPtr a => QWindowValue a where
+#else
+instance QWindowConstPtr a => QWindowValue a where
+#endif
+  withQWindowPtr = HoppyP.flip ($) . toQWindowConst
+
+class (M30.QObjectConstPtr this, M142.QSurfaceConstPtr this) => QWindowConstPtr this where
+  toQWindowConst :: this -> QWindowConst
+
+baseSize :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+baseSize arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (baseSize' arg'1')
+
+contentOrientation :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO M58.QtScreenOrientation
+contentOrientation arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (contentOrientation' arg'1')
+
+devicePixelRatio :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+devicePixelRatio arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (devicePixelRatio' arg'1')
+
+filePath :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+filePath arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (filePath' arg'1')
+
+flags :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO M58.QtWindowFlags
+flags arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtWindowFlags
+  (flags' arg'1')
+
+focusObject :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO M30.QObject
+focusObject arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M30.QObject
+  (focusObject' arg'1')
+
+frameGeometry :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+frameGeometry arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (frameGeometry' arg'1')
+
+frameMargins :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HMargins.HMargins
+frameMargins arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M24.QMarginsConst) =<<
+  (frameMargins' arg'1')
+
+framePosition :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+framePosition arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (framePosition' arg'1')
+
+geometry :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+geometry arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (geometry' arg'1')
+
+height :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+height arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (height' arg'1')
+
+isActive :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isActive arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isActive' arg'1')
+
+isAncestorOf :: (QWindowValue arg'1, QWindowPtr arg'2) => arg'1 -> 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' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  HoppyP.fmap (/= 0)
+  (isAncestorOf' arg'1' arg'2' arg'3')
+
+isExposed :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isExposed arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isExposed' arg'1')
+
+isModal :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isModal arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isModal' arg'1')
+
+isTopLevel :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isTopLevel arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isTopLevel' arg'1')
+
+mapFromGlobal :: (QWindowValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HPoint.HPoint
+mapFromGlobal arg'1 arg'2 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (mapFromGlobal' arg'1' arg'2')
+
+mapToGlobal :: (QWindowValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HPoint.HPoint
+mapToGlobal arg'1 arg'2 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (mapToGlobal' arg'1' arg'2')
+
+mask :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO M138.QRegion
+mask arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M138.QRegionConst) =<<
+  (mask' arg'1')
+
+maximumHeight :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+maximumHeight arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (maximumHeight' arg'1')
+
+maximumSize :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+maximumSize arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (maximumSize' arg'1')
+
+maximumWidth :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+maximumWidth arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (maximumWidth' arg'1')
+
+minimumHeight :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+minimumHeight arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (minimumHeight' arg'1')
+
+minimumSize :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+minimumSize arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (minimumSize' arg'1')
+
+minimumWidth :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+minimumWidth arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (minimumWidth' arg'1')
+
+modality :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO M58.QtWindowModality
+modality arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (modality' arg'1')
+
+opacity :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+opacity arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (opacity' arg'1')
+
+parent :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO QWindow
+parent arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWindow
+  (parent' arg'1')
+
+position :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+position arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (position' arg'1')
+
+sizeIncrement :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+sizeIncrement arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (sizeIncrement' arg'1')
+
+title :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+title arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (title' arg'1')
+
+transientParent :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO QWindow
+transientParent arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWindow
+  (transientParent' arg'1')
+
+getType :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO M58.QtWindowType
+getType arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (getType' arg'1')
+
+visibility :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO QWindowVisibility
+visibility arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (visibility' arg'1')
+
+isVisible :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isVisible arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isVisible' arg'1')
+
+width :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+width arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (width' arg'1')
+
+windowState :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO M58.QtWindowState
+windowState arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (windowState' arg'1')
+
+x :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+x arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (x' arg'1')
+
+y :: (QWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+y arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (y' arg'1')
+
+class (QWindowConstPtr this, M30.QObjectPtr this, M142.QSurfacePtr this) => QWindowPtr this where
+  toQWindow :: this -> QWindow
+
+alert :: (QWindowPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+alert arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (alert' arg'1' arg'2')
+
+setBaseSize :: (QWindowPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setBaseSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBaseSize' arg'1' arg'2')
+
+close :: (QWindowPtr arg'1) => arg'1 -> HoppyP.IO ()
+close arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (close' arg'1')
+
+create :: (QWindowPtr arg'1) => arg'1 -> HoppyP.IO ()
+create arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (create' arg'1')
+
+destroy :: (QWindowPtr arg'1) => arg'1 -> HoppyP.IO ()
+destroy arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (destroy' arg'1')
+
+setFilePath :: (QWindowPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setFilePath arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFilePath' arg'1' arg'2')
+
+setFlags :: (QWindowPtr arg'1, M58.IsQtWindowFlags arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtWindowFlags $ M58.toQtWindowFlags arg'2 in
+  (setFlags' arg'1' arg'2')
+
+setFramePosition :: (QWindowPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setFramePosition arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFramePosition' arg'1' arg'2')
+
+setGeometry :: (QWindowPtr arg'1, M38.QRectValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setGeometry arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M38.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setGeometry' arg'1' arg'2')
+
+setHeight :: (QWindowPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setHeight' arg'1' arg'2')
+
+hide :: (QWindowPtr arg'1) => arg'1 -> HoppyP.IO ()
+hide arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (hide' arg'1')
+
+lower :: (QWindowPtr arg'1) => arg'1 -> HoppyP.IO ()
+lower arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (lower' arg'1')
+
+setMask :: (QWindowPtr arg'1, M138.QRegionValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setMask arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M138.withQRegionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setMask' arg'1' arg'2')
+
+setMaximumHeight :: (QWindowPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setMaximumHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setMaximumHeight' arg'1' arg'2')
+
+setMaximumSize :: (QWindowPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setMaximumSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setMaximumSize' arg'1' arg'2')
+
+setMaximumWidth :: (QWindowPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setMaximumWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setMaximumWidth' arg'1' arg'2')
+
+setMinimumHeight :: (QWindowPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setMinimumHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setMinimumHeight' arg'1' arg'2')
+
+setMinimumSize :: (QWindowPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setMinimumSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setMinimumSize' arg'1' arg'2')
+
+setMinimumWidth :: (QWindowPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setMinimumWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setMinimumWidth' arg'1' arg'2')
+
+setModality :: (QWindowPtr arg'1) => arg'1 -> M58.QtWindowModality -> HoppyP.IO ()
+setModality arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setModality' arg'1' arg'2')
+
+setOpacity :: (QWindowPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setOpacity arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setOpacity' arg'1' arg'2')
+
+setParent :: (QWindowPtr arg'1, QWindowPtr arg'2) => arg'1 -> 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 arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setPosition arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPosition' arg'1' arg'2')
+
+raise :: (QWindowPtr arg'1) => arg'1 -> HoppyP.IO ()
+raise arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (raise' arg'1')
+
+reportContentOrientationChange :: (QWindowPtr arg'1) => arg'1 -> M58.QtScreenOrientation -> HoppyP.IO ()
+reportContentOrientationChange arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (reportContentOrientationChange' arg'1' arg'2')
+
+requestActivate :: (QWindowPtr arg'1) => arg'1 -> HoppyP.IO ()
+requestActivate arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (requestActivate' arg'1')
+
+requestUpdate :: (QWindowPtr arg'1) => arg'1 -> HoppyP.IO ()
+requestUpdate arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (requestUpdate' arg'1')
+
+resize :: (QWindowPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (resize' arg'1' arg'2')
+
+resizeRaw :: (QWindowPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+resizeRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (resizeRaw' arg'1' arg'2' arg'3')
+
+setGeometryRaw :: (QWindowPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (setGeometryRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setKeyboardGrabEnabled :: (QWindowPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setKeyboardGrabEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setKeyboardGrabEnabled' arg'1' arg'2')
+
+setMouseGrabEnabled :: (QWindowPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setMouseGrabEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setMouseGrabEnabled' arg'1' arg'2')
+
+setPositionRaw :: (QWindowPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setPositionRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setPositionRaw' arg'1' arg'2' arg'3')
+
+setSurfaceType :: (QWindowPtr arg'1) => arg'1 -> M142.QSurfaceSurfaceType -> HoppyP.IO ()
+setSurfaceType arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setSurfaceType' arg'1' arg'2')
+
+show :: (QWindowPtr arg'1) => arg'1 -> HoppyP.IO ()
+show arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (show' arg'1')
+
+showFullScreen :: (QWindowPtr arg'1) => arg'1 -> HoppyP.IO ()
+showFullScreen arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (showFullScreen' arg'1')
+
+showMaximized :: (QWindowPtr arg'1) => arg'1 -> HoppyP.IO ()
+showMaximized arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (showMaximized' arg'1')
+
+showMinimized :: (QWindowPtr arg'1) => arg'1 -> HoppyP.IO ()
+showMinimized arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (showMinimized' arg'1')
+
+showNormal :: (QWindowPtr arg'1) => arg'1 -> HoppyP.IO ()
+showNormal arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (showNormal' arg'1')
+
+setSizeIncrement :: (QWindowPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setSizeIncrement arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSizeIncrement' arg'1' arg'2')
+
+setTitle :: (QWindowPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setTitle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTitle' arg'1' arg'2')
+
+setTransientParent :: (QWindowPtr arg'1, QWindowPtr arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.IO ()
+unsetCursor arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (unsetCursor' arg'1')
+
+setVisibility :: (QWindowPtr arg'1) => arg'1 -> QWindowVisibility -> HoppyP.IO ()
+setVisibility arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setVisibility' arg'1' arg'2')
+
+setVisible :: (QWindowPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setVisible' arg'1' arg'2')
+
+setWidth :: (QWindowPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setWidth' arg'1' arg'2')
+
+setWindowState :: (QWindowPtr arg'1) => arg'1 -> M58.QtWindowState -> HoppyP.IO ()
+setWindowState arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setWindowState' arg'1' arg'2')
+
+setX :: (QWindowPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setX arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setX' arg'1' arg'2')
+
+setY :: (QWindowPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setY arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setY' 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 M30.QObjectConstPtr QWindowConst where
+  toQObjectConst (QWindowConst ptr') = M30.QObjectConst $ castQWindowToQObject ptr'
+  toQObjectConst (QWindowConstGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQWindowToQObject ptr'
+
+instance M142.QSurfaceConstPtr QWindowConst where
+  toQSurfaceConst (QWindowConst ptr') = M142.QSurfaceConst $ castQWindowToQSurface ptr'
+  toQSurfaceConst (QWindowConstGc fptr' ptr') = M142.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 M30.QObjectConstPtr QWindow where
+  toQObjectConst (QWindow ptr') = M30.QObjectConst $ castQWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QWindow -> HoppyF.Ptr QWindowConst) ptr'
+  toQObjectConst (QWindowGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QWindow -> HoppyF.Ptr QWindowConst) ptr'
+
+instance M30.QObjectPtr QWindow where
+  toQObject (QWindow ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QWindow -> HoppyF.Ptr QWindowConst) ptr'
+  toQObject (QWindowGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QWindow -> HoppyF.Ptr QWindowConst) ptr'
+
+instance M142.QSurfaceConstPtr QWindow where
+  toQSurfaceConst (QWindow ptr') = M142.QSurfaceConst $ castQWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QWindow -> HoppyF.Ptr QWindowConst) ptr'
+  toQSurfaceConst (QWindowGc fptr' ptr') = M142.QSurfaceConstGc fptr' $ castQWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QWindow -> HoppyF.Ptr QWindowConst) ptr'
+
+instance M142.QSurfacePtr QWindow where
+  toQSurface (QWindow ptr') = M142.QSurface $ (HoppyF.castPtr :: HoppyF.Ptr M142.QSurfaceConst -> HoppyF.Ptr M142.QSurface) $ castQWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QWindow -> HoppyF.Ptr QWindowConst) ptr'
+  toQSurface (QWindowGc fptr' ptr') = M142.QSurfaceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M142.QSurfaceConst -> HoppyF.Ptr M142.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 M30.QObject where
+  downToQWindow = castQWindowToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QWindowConst $ castQObjectToQWindow ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QWindowConstGc fptr' $ castQObjectToQWindow ptr'
+instance QWindowSuper M142.QSurface where
+  downToQWindow = castQWindowToNonconst . cast' . M142.castQSurfaceToConst
+    where
+      cast' (M142.QSurfaceConst ptr') = QWindowConst $ castQSurfaceToQWindow ptr'
+      cast' (M142.QSurfaceConstGc fptr' ptr') = QWindowConstGc fptr' $ castQSurfaceToQWindow ptr'
+
+class QWindowSuperConst a where
+  downToQWindowConst :: a -> QWindowConst
+
+instance QWindowSuperConst M30.QObjectConst where
+  downToQWindowConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QWindowConst $ castQObjectToQWindow ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QWindowConstGc fptr' $ castQObjectToQWindow ptr'
+instance QWindowSuperConst M142.QSurfaceConst where
+  downToQWindowConst = cast'
+    where
+      cast' (M142.QSurfaceConst ptr') = QWindowConst $ castQSurfaceToQWindow ptr'
+      cast' (M142.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QWindowAncestorMode where
+  fromEnum ExcludeTransients = 0
+  fromEnum IncludeTransients = 1
+  
+  toEnum (0) = ExcludeTransients
+  toEnum (1) = IncludeTransients
+  toEnum n' = HoppyP.error $ "Unknown QWindowAncestorMode numeric value: " ++ HoppyP.show n'
+
+data QWindowVisibility =
+  Hidden
+  | AutomaticVisibility
+  | Windowed
+  | Minimized
+  | Maximized
+  | FullScreen
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QWindowVisibility where
+  fromEnum Hidden = 0
+  fromEnum AutomaticVisibility = 1
+  fromEnum Windowed = 2
+  fromEnum Minimized = 3
+  fromEnum Maximized = 4
+  fromEnum FullScreen = 5
+  
+  toEnum (0) = Hidden
+  toEnum (1) = AutomaticVisibility
+  toEnum (2) = Windowed
+  toEnum (3) = Minimized
+  toEnum (4) = Maximized
+  toEnum (5) = FullScreen
+  toEnum n' = HoppyP.error $ "Unknown QWindowVisibility numeric value: " ++ HoppyP.show n'
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QtahOpenGLWindow.hs b/src/Graphics/UI/Qtah/Generated/Gui/QtahOpenGLWindow.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QtahOpenGLWindow.hs
@@ -0,0 +1,362 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Graphics.UI.Qtah.Generated.Gui.QOpenGLWindow as M118
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M120
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDeviceWindow as M122
+import qualified Graphics.UI.Qtah.Generated.Gui.QSurface as M142
+import qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M150
+import qualified Graphics.UI.Qtah.Internal.Callback as M156
+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 M150.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 M118.QOpenGLWindowConst
+foreign import ccall "gencast__QOpenGLWindow__QtahOpenGLWindow" castQOpenGLWindowToQtahOpenGLWindow :: HoppyF.Ptr M118.QOpenGLWindowConst -> HoppyF.Ptr QtahOpenGLWindowConst
+foreign import ccall "gencast__QtahOpenGLWindow__QPaintDeviceWindow" castQtahOpenGLWindowToQPaintDeviceWindow :: HoppyF.Ptr QtahOpenGLWindowConst -> HoppyF.Ptr M122.QPaintDeviceWindowConst
+foreign import ccall "gencast__QPaintDeviceWindow__QtahOpenGLWindow" castQPaintDeviceWindowToQtahOpenGLWindow :: HoppyF.Ptr M122.QPaintDeviceWindowConst -> HoppyF.Ptr QtahOpenGLWindowConst
+foreign import ccall "gencast__QtahOpenGLWindow__QWindow" castQtahOpenGLWindowToQWindow :: HoppyF.Ptr QtahOpenGLWindowConst -> HoppyF.Ptr M150.QWindowConst
+foreign import ccall "gencast__QWindow__QtahOpenGLWindow" castQWindowToQtahOpenGLWindow :: HoppyF.Ptr M150.QWindowConst -> HoppyF.Ptr QtahOpenGLWindowConst
+foreign import ccall "gencast__QtahOpenGLWindow__QObject" castQtahOpenGLWindowToQObject :: HoppyF.Ptr QtahOpenGLWindowConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QtahOpenGLWindow" castQObjectToQtahOpenGLWindow :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr QtahOpenGLWindowConst
+foreign import ccall "gencast__QtahOpenGLWindow__QSurface" castQtahOpenGLWindowToQSurface :: HoppyF.Ptr QtahOpenGLWindowConst -> HoppyF.Ptr M142.QSurfaceConst
+foreign import ccall "gencast__QSurface__QtahOpenGLWindow" castQSurfaceToQtahOpenGLWindow :: HoppyF.Ptr M142.QSurfaceConst -> HoppyF.Ptr QtahOpenGLWindowConst
+foreign import ccall "gencast__QtahOpenGLWindow__QPaintDevice" castQtahOpenGLWindowToQPaintDevice :: HoppyF.Ptr QtahOpenGLWindowConst -> HoppyF.Ptr M120.QPaintDeviceConst
+foreign import ccall "gencast__QPaintDevice__QtahOpenGLWindow" castQPaintDeviceToQtahOpenGLWindow :: HoppyF.Ptr M120.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QtahOpenGLWindowConstPtr a => QtahOpenGLWindowValue a where
+#else
+instance QtahOpenGLWindowConstPtr a => QtahOpenGLWindowValue a where
+#endif
+  withQtahOpenGLWindowPtr = HoppyP.flip ($) . toQtahOpenGLWindowConst
+
+class (M118.QOpenGLWindowConstPtr this) => QtahOpenGLWindowConstPtr this where
+  toQtahOpenGLWindowConst :: this -> QtahOpenGLWindowConst
+
+class (QtahOpenGLWindowConstPtr this, M118.QOpenGLWindowPtr this) => QtahOpenGLWindowPtr this where
+  toQtahOpenGLWindow :: this -> QtahOpenGLWindow
+
+onInitializeGL :: (QtahOpenGLWindowPtr arg'1) => arg'1 -> HoppyP.IO () -> HoppyP.IO ()
+onInitializeGL arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQtahOpenGLWindow arg'1) $ \arg'1' ->
+  M156.callbackVoid_new arg'2 >>= \arg'2' ->
+  (onInitializeGL' arg'1' arg'2')
+
+onPaintGL :: (QtahOpenGLWindowPtr arg'1) => arg'1 -> HoppyP.IO () -> HoppyP.IO ()
+onPaintGL arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQtahOpenGLWindow arg'1) $ \arg'1' ->
+  M156.callbackVoid_new arg'2 >>= \arg'2' ->
+  (onPaintGL' arg'1' arg'2')
+
+onPaintOverGL :: (QtahOpenGLWindowPtr arg'1) => arg'1 -> HoppyP.IO () -> HoppyP.IO ()
+onPaintOverGL arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQtahOpenGLWindow arg'1) $ \arg'1' ->
+  M156.callbackVoid_new arg'2 >>= \arg'2' ->
+  (onPaintOverGL' arg'1' arg'2')
+
+onPaintUnderGL :: (QtahOpenGLWindowPtr arg'1) => arg'1 -> HoppyP.IO () -> HoppyP.IO ()
+onPaintUnderGL arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQtahOpenGLWindow arg'1) $ \arg'1' ->
+  M156.callbackVoid_new arg'2 >>= \arg'2' ->
+  (onPaintUnderGL' arg'1' arg'2')
+
+onResizeGL :: (QtahOpenGLWindowPtr arg'1) => arg'1 -> (HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO ()
+onResizeGL arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQtahOpenGLWindow arg'1) $ \arg'1' ->
+  M156.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 M118.QOpenGLWindowConstPtr QtahOpenGLWindowConst where
+  toQOpenGLWindowConst (QtahOpenGLWindowConst ptr') = M118.QOpenGLWindowConst $ castQtahOpenGLWindowToQOpenGLWindow ptr'
+  toQOpenGLWindowConst (QtahOpenGLWindowConstGc fptr' ptr') = M118.QOpenGLWindowConstGc fptr' $ castQtahOpenGLWindowToQOpenGLWindow ptr'
+
+instance M122.QPaintDeviceWindowConstPtr QtahOpenGLWindowConst where
+  toQPaintDeviceWindowConst (QtahOpenGLWindowConst ptr') = M122.QPaintDeviceWindowConst $ castQtahOpenGLWindowToQPaintDeviceWindow ptr'
+  toQPaintDeviceWindowConst (QtahOpenGLWindowConstGc fptr' ptr') = M122.QPaintDeviceWindowConstGc fptr' $ castQtahOpenGLWindowToQPaintDeviceWindow ptr'
+
+instance M150.QWindowConstPtr QtahOpenGLWindowConst where
+  toQWindowConst (QtahOpenGLWindowConst ptr') = M150.QWindowConst $ castQtahOpenGLWindowToQWindow ptr'
+  toQWindowConst (QtahOpenGLWindowConstGc fptr' ptr') = M150.QWindowConstGc fptr' $ castQtahOpenGLWindowToQWindow ptr'
+
+instance M30.QObjectConstPtr QtahOpenGLWindowConst where
+  toQObjectConst (QtahOpenGLWindowConst ptr') = M30.QObjectConst $ castQtahOpenGLWindowToQObject ptr'
+  toQObjectConst (QtahOpenGLWindowConstGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQtahOpenGLWindowToQObject ptr'
+
+instance M142.QSurfaceConstPtr QtahOpenGLWindowConst where
+  toQSurfaceConst (QtahOpenGLWindowConst ptr') = M142.QSurfaceConst $ castQtahOpenGLWindowToQSurface ptr'
+  toQSurfaceConst (QtahOpenGLWindowConstGc fptr' ptr') = M142.QSurfaceConstGc fptr' $ castQtahOpenGLWindowToQSurface ptr'
+
+instance M120.QPaintDeviceConstPtr QtahOpenGLWindowConst where
+  toQPaintDeviceConst (QtahOpenGLWindowConst ptr') = M120.QPaintDeviceConst $ castQtahOpenGLWindowToQPaintDevice ptr'
+  toQPaintDeviceConst (QtahOpenGLWindowConstGc fptr' ptr') = M120.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 M118.QOpenGLWindowConstPtr QtahOpenGLWindow where
+  toQOpenGLWindowConst (QtahOpenGLWindow ptr') = M118.QOpenGLWindowConst $ castQtahOpenGLWindowToQOpenGLWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQOpenGLWindowConst (QtahOpenGLWindowGc fptr' ptr') = M118.QOpenGLWindowConstGc fptr' $ castQtahOpenGLWindowToQOpenGLWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M118.QOpenGLWindowPtr QtahOpenGLWindow where
+  toQOpenGLWindow (QtahOpenGLWindow ptr') = M118.QOpenGLWindow $ (HoppyF.castPtr :: HoppyF.Ptr M118.QOpenGLWindowConst -> HoppyF.Ptr M118.QOpenGLWindow) $ castQtahOpenGLWindowToQOpenGLWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQOpenGLWindow (QtahOpenGLWindowGc fptr' ptr') = M118.QOpenGLWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M118.QOpenGLWindowConst -> HoppyF.Ptr M118.QOpenGLWindow) $ castQtahOpenGLWindowToQOpenGLWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M122.QPaintDeviceWindowConstPtr QtahOpenGLWindow where
+  toQPaintDeviceWindowConst (QtahOpenGLWindow ptr') = M122.QPaintDeviceWindowConst $ castQtahOpenGLWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQPaintDeviceWindowConst (QtahOpenGLWindowGc fptr' ptr') = M122.QPaintDeviceWindowConstGc fptr' $ castQtahOpenGLWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M122.QPaintDeviceWindowPtr QtahOpenGLWindow where
+  toQPaintDeviceWindow (QtahOpenGLWindow ptr') = M122.QPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr M122.QPaintDeviceWindowConst -> HoppyF.Ptr M122.QPaintDeviceWindow) $ castQtahOpenGLWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQPaintDeviceWindow (QtahOpenGLWindowGc fptr' ptr') = M122.QPaintDeviceWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M122.QPaintDeviceWindowConst -> HoppyF.Ptr M122.QPaintDeviceWindow) $ castQtahOpenGLWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M150.QWindowConstPtr QtahOpenGLWindow where
+  toQWindowConst (QtahOpenGLWindow ptr') = M150.QWindowConst $ castQtahOpenGLWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQWindowConst (QtahOpenGLWindowGc fptr' ptr') = M150.QWindowConstGc fptr' $ castQtahOpenGLWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M150.QWindowPtr QtahOpenGLWindow where
+  toQWindow (QtahOpenGLWindow ptr') = M150.QWindow $ (HoppyF.castPtr :: HoppyF.Ptr M150.QWindowConst -> HoppyF.Ptr M150.QWindow) $ castQtahOpenGLWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQWindow (QtahOpenGLWindowGc fptr' ptr') = M150.QWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M150.QWindowConst -> HoppyF.Ptr M150.QWindow) $ castQtahOpenGLWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M30.QObjectConstPtr QtahOpenGLWindow where
+  toQObjectConst (QtahOpenGLWindow ptr') = M30.QObjectConst $ castQtahOpenGLWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQObjectConst (QtahOpenGLWindowGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQtahOpenGLWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M30.QObjectPtr QtahOpenGLWindow where
+  toQObject (QtahOpenGLWindow ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQtahOpenGLWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQObject (QtahOpenGLWindowGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQtahOpenGLWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M142.QSurfaceConstPtr QtahOpenGLWindow where
+  toQSurfaceConst (QtahOpenGLWindow ptr') = M142.QSurfaceConst $ castQtahOpenGLWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQSurfaceConst (QtahOpenGLWindowGc fptr' ptr') = M142.QSurfaceConstGc fptr' $ castQtahOpenGLWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M142.QSurfacePtr QtahOpenGLWindow where
+  toQSurface (QtahOpenGLWindow ptr') = M142.QSurface $ (HoppyF.castPtr :: HoppyF.Ptr M142.QSurfaceConst -> HoppyF.Ptr M142.QSurface) $ castQtahOpenGLWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQSurface (QtahOpenGLWindowGc fptr' ptr') = M142.QSurfaceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M142.QSurfaceConst -> HoppyF.Ptr M142.QSurface) $ castQtahOpenGLWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M120.QPaintDeviceConstPtr QtahOpenGLWindow where
+  toQPaintDeviceConst (QtahOpenGLWindow ptr') = M120.QPaintDeviceConst $ castQtahOpenGLWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQPaintDeviceConst (QtahOpenGLWindowGc fptr' ptr') = M120.QPaintDeviceConstGc fptr' $ castQtahOpenGLWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M120.QPaintDevicePtr QtahOpenGLWindow where
+  toQPaintDevice (QtahOpenGLWindow ptr') = M120.QPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr M120.QPaintDeviceConst -> HoppyF.Ptr M120.QPaintDevice) $ castQtahOpenGLWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQPaintDevice (QtahOpenGLWindowGc fptr' ptr') = M120.QPaintDeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M120.QPaintDeviceConst -> HoppyF.Ptr M120.QPaintDevice) $ castQtahOpenGLWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+new ::  HoppyP.IO QtahOpenGLWindow
+new =
+  HoppyP.fmap QtahOpenGLWindow
+  (new')
+
+newWithUpdateBehavior ::  M118.QOpenGLWindowUpdateBehavior -> HoppyP.IO QtahOpenGLWindow
+newWithUpdateBehavior arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  HoppyP.fmap QtahOpenGLWindow
+  (newWithUpdateBehavior' arg'1')
+
+newWithUpdateBehaviorAndParent :: (M150.QWindowPtr arg'2) => M118.QOpenGLWindowUpdateBehavior -> arg'2 -> HoppyP.IO QtahOpenGLWindow
+newWithUpdateBehaviorAndParent arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  HoppyFHR.withCppPtr (M150.toQWindow arg'2) $ \arg'2' ->
+  HoppyP.fmap QtahOpenGLWindow
+  (newWithUpdateBehaviorAndParent' arg'1' arg'2')
+
+class QtahOpenGLWindowSuper a where
+  downToQtahOpenGLWindow :: a -> QtahOpenGLWindow
+
+instance QtahOpenGLWindowSuper M118.QOpenGLWindow where
+  downToQtahOpenGLWindow = castQtahOpenGLWindowToNonconst . cast' . M118.castQOpenGLWindowToConst
+    where
+      cast' (M118.QOpenGLWindowConst ptr') = QtahOpenGLWindowConst $ castQOpenGLWindowToQtahOpenGLWindow ptr'
+      cast' (M118.QOpenGLWindowConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQOpenGLWindowToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuper M122.QPaintDeviceWindow where
+  downToQtahOpenGLWindow = castQtahOpenGLWindowToNonconst . cast' . M122.castQPaintDeviceWindowToConst
+    where
+      cast' (M122.QPaintDeviceWindowConst ptr') = QtahOpenGLWindowConst $ castQPaintDeviceWindowToQtahOpenGLWindow ptr'
+      cast' (M122.QPaintDeviceWindowConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQPaintDeviceWindowToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuper M150.QWindow where
+  downToQtahOpenGLWindow = castQtahOpenGLWindowToNonconst . cast' . M150.castQWindowToConst
+    where
+      cast' (M150.QWindowConst ptr') = QtahOpenGLWindowConst $ castQWindowToQtahOpenGLWindow ptr'
+      cast' (M150.QWindowConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQWindowToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuper M30.QObject where
+  downToQtahOpenGLWindow = castQtahOpenGLWindowToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QtahOpenGLWindowConst $ castQObjectToQtahOpenGLWindow ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQObjectToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuper M142.QSurface where
+  downToQtahOpenGLWindow = castQtahOpenGLWindowToNonconst . cast' . M142.castQSurfaceToConst
+    where
+      cast' (M142.QSurfaceConst ptr') = QtahOpenGLWindowConst $ castQSurfaceToQtahOpenGLWindow ptr'
+      cast' (M142.QSurfaceConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQSurfaceToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuper M120.QPaintDevice where
+  downToQtahOpenGLWindow = castQtahOpenGLWindowToNonconst . cast' . M120.castQPaintDeviceToConst
+    where
+      cast' (M120.QPaintDeviceConst ptr') = QtahOpenGLWindowConst $ castQPaintDeviceToQtahOpenGLWindow ptr'
+      cast' (M120.QPaintDeviceConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQPaintDeviceToQtahOpenGLWindow ptr'
+
+class QtahOpenGLWindowSuperConst a where
+  downToQtahOpenGLWindowConst :: a -> QtahOpenGLWindowConst
+
+instance QtahOpenGLWindowSuperConst M118.QOpenGLWindowConst where
+  downToQtahOpenGLWindowConst = cast'
+    where
+      cast' (M118.QOpenGLWindowConst ptr') = QtahOpenGLWindowConst $ castQOpenGLWindowToQtahOpenGLWindow ptr'
+      cast' (M118.QOpenGLWindowConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQOpenGLWindowToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuperConst M122.QPaintDeviceWindowConst where
+  downToQtahOpenGLWindowConst = cast'
+    where
+      cast' (M122.QPaintDeviceWindowConst ptr') = QtahOpenGLWindowConst $ castQPaintDeviceWindowToQtahOpenGLWindow ptr'
+      cast' (M122.QPaintDeviceWindowConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQPaintDeviceWindowToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuperConst M150.QWindowConst where
+  downToQtahOpenGLWindowConst = cast'
+    where
+      cast' (M150.QWindowConst ptr') = QtahOpenGLWindowConst $ castQWindowToQtahOpenGLWindow ptr'
+      cast' (M150.QWindowConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQWindowToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuperConst M30.QObjectConst where
+  downToQtahOpenGLWindowConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QtahOpenGLWindowConst $ castQObjectToQtahOpenGLWindow ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQObjectToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuperConst M142.QSurfaceConst where
+  downToQtahOpenGLWindowConst = cast'
+    where
+      cast' (M142.QSurfaceConst ptr') = QtahOpenGLWindowConst $ castQSurfaceToQtahOpenGLWindow ptr'
+      cast' (M142.QSurfaceConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQSurfaceToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuperConst M120.QPaintDeviceConst where
+  downToQtahOpenGLWindowConst = cast'
+    where
+      cast' (M120.QPaintDeviceConst ptr') = QtahOpenGLWindowConst $ castQPaintDeviceToQtahOpenGLWindow ptr'
+      cast' (M120.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QtahRasterWindow.hs
@@ -0,0 +1,321 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M120
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDeviceWindow as M122
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintEvent as M124
+import qualified Graphics.UI.Qtah.Generated.Gui.QRasterWindow as M136
+import qualified Graphics.UI.Qtah.Generated.Gui.QSurface as M142
+import qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M150
+import qualified Graphics.UI.Qtah.Internal.Callback as M156
+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 M150.QWindow -> HoppyP.IO (HoppyF.Ptr QtahRasterWindow)
+foreign import ccall "genpop__QtahRasterWindow_onPaintEvent" onPaintEvent' ::  HoppyF.Ptr QtahRasterWindow -> HoppyFHR.CCallback (HoppyF.Ptr M124.QPaintEvent -> HoppyP.IO ()) -> HoppyP.IO ()
+foreign import ccall "gencast__QtahRasterWindow__QRasterWindow" castQtahRasterWindowToQRasterWindow :: HoppyF.Ptr QtahRasterWindowConst -> HoppyF.Ptr M136.QRasterWindowConst
+foreign import ccall "gencast__QRasterWindow__QtahRasterWindow" castQRasterWindowToQtahRasterWindow :: HoppyF.Ptr M136.QRasterWindowConst -> HoppyF.Ptr QtahRasterWindowConst
+foreign import ccall "gencast__QtahRasterWindow__QPaintDeviceWindow" castQtahRasterWindowToQPaintDeviceWindow :: HoppyF.Ptr QtahRasterWindowConst -> HoppyF.Ptr M122.QPaintDeviceWindowConst
+foreign import ccall "gencast__QPaintDeviceWindow__QtahRasterWindow" castQPaintDeviceWindowToQtahRasterWindow :: HoppyF.Ptr M122.QPaintDeviceWindowConst -> HoppyF.Ptr QtahRasterWindowConst
+foreign import ccall "gencast__QtahRasterWindow__QWindow" castQtahRasterWindowToQWindow :: HoppyF.Ptr QtahRasterWindowConst -> HoppyF.Ptr M150.QWindowConst
+foreign import ccall "gencast__QWindow__QtahRasterWindow" castQWindowToQtahRasterWindow :: HoppyF.Ptr M150.QWindowConst -> HoppyF.Ptr QtahRasterWindowConst
+foreign import ccall "gencast__QtahRasterWindow__QObject" castQtahRasterWindowToQObject :: HoppyF.Ptr QtahRasterWindowConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QtahRasterWindow" castQObjectToQtahRasterWindow :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr QtahRasterWindowConst
+foreign import ccall "gencast__QtahRasterWindow__QSurface" castQtahRasterWindowToQSurface :: HoppyF.Ptr QtahRasterWindowConst -> HoppyF.Ptr M142.QSurfaceConst
+foreign import ccall "gencast__QSurface__QtahRasterWindow" castQSurfaceToQtahRasterWindow :: HoppyF.Ptr M142.QSurfaceConst -> HoppyF.Ptr QtahRasterWindowConst
+foreign import ccall "gencast__QtahRasterWindow__QPaintDevice" castQtahRasterWindowToQPaintDevice :: HoppyF.Ptr QtahRasterWindowConst -> HoppyF.Ptr M120.QPaintDeviceConst
+foreign import ccall "gencast__QPaintDevice__QtahRasterWindow" castQPaintDeviceToQtahRasterWindow :: HoppyF.Ptr M120.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QtahRasterWindowConstPtr a => QtahRasterWindowValue a where
+#else
+instance QtahRasterWindowConstPtr a => QtahRasterWindowValue a where
+#endif
+  withQtahRasterWindowPtr = HoppyP.flip ($) . toQtahRasterWindowConst
+
+class (M136.QRasterWindowConstPtr this) => QtahRasterWindowConstPtr this where
+  toQtahRasterWindowConst :: this -> QtahRasterWindowConst
+
+class (QtahRasterWindowConstPtr this, M136.QRasterWindowPtr this) => QtahRasterWindowPtr this where
+  toQtahRasterWindow :: this -> QtahRasterWindow
+
+onPaintEvent :: (QtahRasterWindowPtr arg'1) => arg'1 -> (M124.QPaintEvent -> HoppyP.IO ()) -> HoppyP.IO ()
+onPaintEvent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQtahRasterWindow arg'1) $ \arg'1' ->
+  M156.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 M136.QRasterWindowConstPtr QtahRasterWindowConst where
+  toQRasterWindowConst (QtahRasterWindowConst ptr') = M136.QRasterWindowConst $ castQtahRasterWindowToQRasterWindow ptr'
+  toQRasterWindowConst (QtahRasterWindowConstGc fptr' ptr') = M136.QRasterWindowConstGc fptr' $ castQtahRasterWindowToQRasterWindow ptr'
+
+instance M122.QPaintDeviceWindowConstPtr QtahRasterWindowConst where
+  toQPaintDeviceWindowConst (QtahRasterWindowConst ptr') = M122.QPaintDeviceWindowConst $ castQtahRasterWindowToQPaintDeviceWindow ptr'
+  toQPaintDeviceWindowConst (QtahRasterWindowConstGc fptr' ptr') = M122.QPaintDeviceWindowConstGc fptr' $ castQtahRasterWindowToQPaintDeviceWindow ptr'
+
+instance M150.QWindowConstPtr QtahRasterWindowConst where
+  toQWindowConst (QtahRasterWindowConst ptr') = M150.QWindowConst $ castQtahRasterWindowToQWindow ptr'
+  toQWindowConst (QtahRasterWindowConstGc fptr' ptr') = M150.QWindowConstGc fptr' $ castQtahRasterWindowToQWindow ptr'
+
+instance M30.QObjectConstPtr QtahRasterWindowConst where
+  toQObjectConst (QtahRasterWindowConst ptr') = M30.QObjectConst $ castQtahRasterWindowToQObject ptr'
+  toQObjectConst (QtahRasterWindowConstGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQtahRasterWindowToQObject ptr'
+
+instance M142.QSurfaceConstPtr QtahRasterWindowConst where
+  toQSurfaceConst (QtahRasterWindowConst ptr') = M142.QSurfaceConst $ castQtahRasterWindowToQSurface ptr'
+  toQSurfaceConst (QtahRasterWindowConstGc fptr' ptr') = M142.QSurfaceConstGc fptr' $ castQtahRasterWindowToQSurface ptr'
+
+instance M120.QPaintDeviceConstPtr QtahRasterWindowConst where
+  toQPaintDeviceConst (QtahRasterWindowConst ptr') = M120.QPaintDeviceConst $ castQtahRasterWindowToQPaintDevice ptr'
+  toQPaintDeviceConst (QtahRasterWindowConstGc fptr' ptr') = M120.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 M136.QRasterWindowConstPtr QtahRasterWindow where
+  toQRasterWindowConst (QtahRasterWindow ptr') = M136.QRasterWindowConst $ castQtahRasterWindowToQRasterWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQRasterWindowConst (QtahRasterWindowGc fptr' ptr') = M136.QRasterWindowConstGc fptr' $ castQtahRasterWindowToQRasterWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M136.QRasterWindowPtr QtahRasterWindow where
+  toQRasterWindow (QtahRasterWindow ptr') = M136.QRasterWindow $ (HoppyF.castPtr :: HoppyF.Ptr M136.QRasterWindowConst -> HoppyF.Ptr M136.QRasterWindow) $ castQtahRasterWindowToQRasterWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQRasterWindow (QtahRasterWindowGc fptr' ptr') = M136.QRasterWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M136.QRasterWindowConst -> HoppyF.Ptr M136.QRasterWindow) $ castQtahRasterWindowToQRasterWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M122.QPaintDeviceWindowConstPtr QtahRasterWindow where
+  toQPaintDeviceWindowConst (QtahRasterWindow ptr') = M122.QPaintDeviceWindowConst $ castQtahRasterWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQPaintDeviceWindowConst (QtahRasterWindowGc fptr' ptr') = M122.QPaintDeviceWindowConstGc fptr' $ castQtahRasterWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M122.QPaintDeviceWindowPtr QtahRasterWindow where
+  toQPaintDeviceWindow (QtahRasterWindow ptr') = M122.QPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr M122.QPaintDeviceWindowConst -> HoppyF.Ptr M122.QPaintDeviceWindow) $ castQtahRasterWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQPaintDeviceWindow (QtahRasterWindowGc fptr' ptr') = M122.QPaintDeviceWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M122.QPaintDeviceWindowConst -> HoppyF.Ptr M122.QPaintDeviceWindow) $ castQtahRasterWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M150.QWindowConstPtr QtahRasterWindow where
+  toQWindowConst (QtahRasterWindow ptr') = M150.QWindowConst $ castQtahRasterWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQWindowConst (QtahRasterWindowGc fptr' ptr') = M150.QWindowConstGc fptr' $ castQtahRasterWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M150.QWindowPtr QtahRasterWindow where
+  toQWindow (QtahRasterWindow ptr') = M150.QWindow $ (HoppyF.castPtr :: HoppyF.Ptr M150.QWindowConst -> HoppyF.Ptr M150.QWindow) $ castQtahRasterWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQWindow (QtahRasterWindowGc fptr' ptr') = M150.QWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M150.QWindowConst -> HoppyF.Ptr M150.QWindow) $ castQtahRasterWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M30.QObjectConstPtr QtahRasterWindow where
+  toQObjectConst (QtahRasterWindow ptr') = M30.QObjectConst $ castQtahRasterWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQObjectConst (QtahRasterWindowGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQtahRasterWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M30.QObjectPtr QtahRasterWindow where
+  toQObject (QtahRasterWindow ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQtahRasterWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQObject (QtahRasterWindowGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQtahRasterWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M142.QSurfaceConstPtr QtahRasterWindow where
+  toQSurfaceConst (QtahRasterWindow ptr') = M142.QSurfaceConst $ castQtahRasterWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQSurfaceConst (QtahRasterWindowGc fptr' ptr') = M142.QSurfaceConstGc fptr' $ castQtahRasterWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M142.QSurfacePtr QtahRasterWindow where
+  toQSurface (QtahRasterWindow ptr') = M142.QSurface $ (HoppyF.castPtr :: HoppyF.Ptr M142.QSurfaceConst -> HoppyF.Ptr M142.QSurface) $ castQtahRasterWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQSurface (QtahRasterWindowGc fptr' ptr') = M142.QSurfaceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M142.QSurfaceConst -> HoppyF.Ptr M142.QSurface) $ castQtahRasterWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M120.QPaintDeviceConstPtr QtahRasterWindow where
+  toQPaintDeviceConst (QtahRasterWindow ptr') = M120.QPaintDeviceConst $ castQtahRasterWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQPaintDeviceConst (QtahRasterWindowGc fptr' ptr') = M120.QPaintDeviceConstGc fptr' $ castQtahRasterWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M120.QPaintDevicePtr QtahRasterWindow where
+  toQPaintDevice (QtahRasterWindow ptr') = M120.QPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr M120.QPaintDeviceConst -> HoppyF.Ptr M120.QPaintDevice) $ castQtahRasterWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQPaintDevice (QtahRasterWindowGc fptr' ptr') = M120.QPaintDeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M120.QPaintDeviceConst -> HoppyF.Ptr M120.QPaintDevice) $ castQtahRasterWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+new ::  HoppyP.IO QtahRasterWindow
+new =
+  HoppyP.fmap QtahRasterWindow
+  (new')
+
+newWithParent :: (M150.QWindowPtr arg'1) => arg'1 -> HoppyP.IO QtahRasterWindow
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M150.toQWindow arg'1) $ \arg'1' ->
+  HoppyP.fmap QtahRasterWindow
+  (newWithParent' arg'1')
+
+class QtahRasterWindowSuper a where
+  downToQtahRasterWindow :: a -> QtahRasterWindow
+
+instance QtahRasterWindowSuper M136.QRasterWindow where
+  downToQtahRasterWindow = castQtahRasterWindowToNonconst . cast' . M136.castQRasterWindowToConst
+    where
+      cast' (M136.QRasterWindowConst ptr') = QtahRasterWindowConst $ castQRasterWindowToQtahRasterWindow ptr'
+      cast' (M136.QRasterWindowConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQRasterWindowToQtahRasterWindow ptr'
+instance QtahRasterWindowSuper M122.QPaintDeviceWindow where
+  downToQtahRasterWindow = castQtahRasterWindowToNonconst . cast' . M122.castQPaintDeviceWindowToConst
+    where
+      cast' (M122.QPaintDeviceWindowConst ptr') = QtahRasterWindowConst $ castQPaintDeviceWindowToQtahRasterWindow ptr'
+      cast' (M122.QPaintDeviceWindowConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQPaintDeviceWindowToQtahRasterWindow ptr'
+instance QtahRasterWindowSuper M150.QWindow where
+  downToQtahRasterWindow = castQtahRasterWindowToNonconst . cast' . M150.castQWindowToConst
+    where
+      cast' (M150.QWindowConst ptr') = QtahRasterWindowConst $ castQWindowToQtahRasterWindow ptr'
+      cast' (M150.QWindowConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQWindowToQtahRasterWindow ptr'
+instance QtahRasterWindowSuper M30.QObject where
+  downToQtahRasterWindow = castQtahRasterWindowToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QtahRasterWindowConst $ castQObjectToQtahRasterWindow ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQObjectToQtahRasterWindow ptr'
+instance QtahRasterWindowSuper M142.QSurface where
+  downToQtahRasterWindow = castQtahRasterWindowToNonconst . cast' . M142.castQSurfaceToConst
+    where
+      cast' (M142.QSurfaceConst ptr') = QtahRasterWindowConst $ castQSurfaceToQtahRasterWindow ptr'
+      cast' (M142.QSurfaceConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQSurfaceToQtahRasterWindow ptr'
+instance QtahRasterWindowSuper M120.QPaintDevice where
+  downToQtahRasterWindow = castQtahRasterWindowToNonconst . cast' . M120.castQPaintDeviceToConst
+    where
+      cast' (M120.QPaintDeviceConst ptr') = QtahRasterWindowConst $ castQPaintDeviceToQtahRasterWindow ptr'
+      cast' (M120.QPaintDeviceConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQPaintDeviceToQtahRasterWindow ptr'
+
+class QtahRasterWindowSuperConst a where
+  downToQtahRasterWindowConst :: a -> QtahRasterWindowConst
+
+instance QtahRasterWindowSuperConst M136.QRasterWindowConst where
+  downToQtahRasterWindowConst = cast'
+    where
+      cast' (M136.QRasterWindowConst ptr') = QtahRasterWindowConst $ castQRasterWindowToQtahRasterWindow ptr'
+      cast' (M136.QRasterWindowConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQRasterWindowToQtahRasterWindow ptr'
+instance QtahRasterWindowSuperConst M122.QPaintDeviceWindowConst where
+  downToQtahRasterWindowConst = cast'
+    where
+      cast' (M122.QPaintDeviceWindowConst ptr') = QtahRasterWindowConst $ castQPaintDeviceWindowToQtahRasterWindow ptr'
+      cast' (M122.QPaintDeviceWindowConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQPaintDeviceWindowToQtahRasterWindow ptr'
+instance QtahRasterWindowSuperConst M150.QWindowConst where
+  downToQtahRasterWindowConst = cast'
+    where
+      cast' (M150.QWindowConst ptr') = QtahRasterWindowConst $ castQWindowToQtahRasterWindow ptr'
+      cast' (M150.QWindowConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQWindowToQtahRasterWindow ptr'
+instance QtahRasterWindowSuperConst M30.QObjectConst where
+  downToQtahRasterWindowConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QtahRasterWindowConst $ castQObjectToQtahRasterWindow ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQObjectToQtahRasterWindow ptr'
+instance QtahRasterWindowSuperConst M142.QSurfaceConst where
+  downToQtahRasterWindowConst = cast'
+    where
+      cast' (M142.QSurfaceConst ptr') = QtahRasterWindowConst $ castQSurfaceToQtahRasterWindow ptr'
+      cast' (M142.QSurfaceConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQSurfaceToQtahRasterWindow ptr'
+instance QtahRasterWindowSuperConst M120.QPaintDeviceConst where
+  downToQtahRasterWindowConst = cast'
+    where
+      cast' (M120.QPaintDeviceConst ptr') = QtahRasterWindowConst $ castQPaintDeviceToQtahRasterWindow ptr'
+      cast' (M120.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,180 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M16
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Internal.Callback as M156
+import Prelude (($), (.), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__EventListener_new" new' ::  HoppyF.Ptr M30.QObject -> HoppyFHR.CCallback (HoppyF.Ptr M30.QObject -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.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 M30.QObjectConst
+foreign import ccall "gencast__QObject__EventListener" castQObjectToEventListener :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} EventListenerConstPtr a => EventListenerValue a where
+#else
+instance EventListenerConstPtr a => EventListenerValue a where
+#endif
+  withEventListenerPtr = HoppyP.flip ($) . toEventListenerConst
+
+class (M30.QObjectConstPtr this) => EventListenerConstPtr this where
+  toEventListenerConst :: this -> EventListenerConst
+
+class (EventListenerConstPtr this, M30.QObjectPtr this) => EventListenerPtr this where
+  toEventListener :: this -> EventListener
+
+doNotNotifyOnDelete :: (EventListenerPtr arg'1) => arg'1 -> 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 M30.QObjectConstPtr EventListenerConst where
+  toQObjectConst (EventListenerConst ptr') = M30.QObjectConst $ castEventListenerToQObject ptr'
+  toQObjectConst (EventListenerConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr EventListener where
+  toQObjectConst (EventListener ptr') = M30.QObjectConst $ castEventListenerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr EventListener -> HoppyF.Ptr EventListenerConst) ptr'
+  toQObjectConst (EventListenerGc fptr' ptr') = M30.QObjectConstGc fptr' $ castEventListenerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr EventListener -> HoppyF.Ptr EventListenerConst) ptr'
+
+instance M30.QObjectPtr EventListener where
+  toQObject (EventListener ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castEventListenerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr EventListener -> HoppyF.Ptr EventListenerConst) ptr'
+  toQObject (EventListenerGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castEventListenerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr EventListener -> HoppyF.Ptr EventListenerConst) ptr'
+
+new :: (M30.QObjectPtr arg'1) => arg'1 -> (M30.QObject -> M16.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO () -> HoppyP.IO EventListener
+new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M30.toQObject arg'1) $ \arg'1' ->
+  M156.callbackPtrQObjectPtrQEventBool_new arg'2 >>= \arg'2' ->
+  M156.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 M30.QObject where
+  downToEventListener = castEventListenerToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = EventListenerConst $ castQObjectToEventListener ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = EventListenerConstGc fptr' $ castQObjectToEventListener ptr'
+
+class EventListenerSuperConst a where
+  downToEventListenerConst :: a -> EventListenerConst
+
+instance EventListenerSuperConst M30.QObjectConst where
+  downToEventListenerConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = EventListenerConst $ castQObjectToEventListener ptr'
+      cast' (M30.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Internal/SceneEventListener.hs
@@ -0,0 +1,180 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M16
+import qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M202
+import qualified Graphics.UI.Qtah.Internal.Callback as M156
+import Prelude (($), (.), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__SceneEventListener_new" new' ::  HoppyF.Ptr M202.QGraphicsItem -> HoppyFHR.CCallback (HoppyF.Ptr M202.QGraphicsItem -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.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 M202.QGraphicsItemConst
+foreign import ccall "gencast__QGraphicsItem__SceneEventListener" castQGraphicsItemToSceneEventListener :: HoppyF.Ptr M202.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} SceneEventListenerConstPtr a => SceneEventListenerValue a where
+#else
+instance SceneEventListenerConstPtr a => SceneEventListenerValue a where
+#endif
+  withSceneEventListenerPtr = HoppyP.flip ($) . toSceneEventListenerConst
+
+class (M202.QGraphicsItemConstPtr this) => SceneEventListenerConstPtr this where
+  toSceneEventListenerConst :: this -> SceneEventListenerConst
+
+class (SceneEventListenerConstPtr this, M202.QGraphicsItemPtr this) => SceneEventListenerPtr this where
+  toSceneEventListener :: this -> SceneEventListener
+
+doNotNotifyOnDelete :: (SceneEventListenerPtr arg'1) => arg'1 -> 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 M202.QGraphicsItemConstPtr SceneEventListenerConst where
+  toQGraphicsItemConst (SceneEventListenerConst ptr') = M202.QGraphicsItemConst $ castSceneEventListenerToQGraphicsItem ptr'
+  toQGraphicsItemConst (SceneEventListenerConstGc fptr' ptr') = M202.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 M202.QGraphicsItemConstPtr SceneEventListener where
+  toQGraphicsItemConst (SceneEventListener ptr') = M202.QGraphicsItemConst $ castSceneEventListenerToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr SceneEventListener -> HoppyF.Ptr SceneEventListenerConst) ptr'
+  toQGraphicsItemConst (SceneEventListenerGc fptr' ptr') = M202.QGraphicsItemConstGc fptr' $ castSceneEventListenerToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr SceneEventListener -> HoppyF.Ptr SceneEventListenerConst) ptr'
+
+instance M202.QGraphicsItemPtr SceneEventListener where
+  toQGraphicsItem (SceneEventListener ptr') = M202.QGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr M202.QGraphicsItemConst -> HoppyF.Ptr M202.QGraphicsItem) $ castSceneEventListenerToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr SceneEventListener -> HoppyF.Ptr SceneEventListenerConst) ptr'
+  toQGraphicsItem (SceneEventListenerGc fptr' ptr') = M202.QGraphicsItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M202.QGraphicsItemConst -> HoppyF.Ptr M202.QGraphicsItem) $ castSceneEventListenerToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr SceneEventListener -> HoppyF.Ptr SceneEventListenerConst) ptr'
+
+new :: (M202.QGraphicsItemPtr arg'1) => arg'1 -> (M202.QGraphicsItem -> M16.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO () -> HoppyP.IO SceneEventListener
+new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M202.toQGraphicsItem arg'1) $ \arg'1' ->
+  M156.callbackPtrQGraphicsItemPtrQEventBool_new arg'2 >>= \arg'2' ->
+  M156.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 M202.QGraphicsItem where
+  downToSceneEventListener = castSceneEventListenerToNonconst . cast' . M202.castQGraphicsItemToConst
+    where
+      cast' (M202.QGraphicsItemConst ptr') = SceneEventListenerConst $ castQGraphicsItemToSceneEventListener ptr'
+      cast' (M202.QGraphicsItemConstGc fptr' ptr') = SceneEventListenerConstGc fptr' $ castQGraphicsItemToSceneEventListener ptr'
+
+class SceneEventListenerSuperConst a where
+  downToSceneEventListenerConst :: a -> SceneEventListenerConst
+
+instance SceneEventListenerSuperConst M202.QGraphicsItemConst where
+  downToSceneEventListenerConst = cast'
+    where
+      cast' (M202.QGraphicsItemConst ptr') = SceneEventListenerConst $ castQGraphicsItemToSceneEventListener ptr'
+      cast' (M202.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,359 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  iconSize,
+  text,
+  QAbstractButtonPtr (..),
+  animateClick,
+  setAutoExclusive,
+  setAutoRepeat,
+  setAutoRepeatDelay,
+  setAutoRepeatInterval,
+  setCheckable,
+  setChecked,
+  click,
+  setDown,
+  setIconSize,
+  setText,
+  toggle,
+  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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M42
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractButton_setAutoExclusive" setAutoExclusive' ::  HoppyF.Ptr QAbstractButton -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_autoRepeat" autoRepeat' ::  HoppyF.Ptr QAbstractButtonConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractButton_setAutoRepeat" setAutoRepeat' ::  HoppyF.Ptr QAbstractButton -> HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractButton_setCheckable" setCheckable' ::  HoppyF.Ptr QAbstractButton -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_isChecked" isChecked' ::  HoppyF.Ptr QAbstractButtonConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractButton_setChecked" setChecked' ::  HoppyF.Ptr QAbstractButton -> HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractButton_setDown" setDown' ::  HoppyF.Ptr QAbstractButton -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_iconSize" iconSize' ::  HoppyF.Ptr QAbstractButtonConst -> HoppyP.IO (HoppyF.Ptr M42.QSizeConst)
+foreign import ccall "genpop__QAbstractButton_setIconSize" setIconSize' ::  HoppyF.Ptr QAbstractButton -> HoppyF.Ptr M42.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_text" text' ::  HoppyF.Ptr QAbstractButtonConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QAbstractButton_setText" setText' ::  HoppyF.Ptr QAbstractButton -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_toggle" toggle' ::  HoppyF.Ptr QAbstractButton -> HoppyP.IO ()
+foreign import ccall "gencast__QAbstractButton__QWidget" castQAbstractButtonToQWidget :: HoppyF.Ptr QAbstractButtonConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QAbstractButton" castQWidgetToQAbstractButton :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QAbstractButtonConst
+foreign import ccall "gencast__QAbstractButton__QObject" castQAbstractButtonToQObject :: HoppyF.Ptr QAbstractButtonConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractButton" castQObjectToQAbstractButton :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QAbstractButtonConstPtr a => QAbstractButtonValue a where
+#else
+instance QAbstractButtonConstPtr a => QAbstractButtonValue a where
+#endif
+  withQAbstractButtonPtr = HoppyP.flip ($) . toQAbstractButtonConst
+
+class (M280.QWidgetConstPtr this) => QAbstractButtonConstPtr this where
+  toQAbstractButtonConst :: this -> QAbstractButtonConst
+
+autoExclusive :: (QAbstractButtonValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+autoExclusive arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (autoExclusive' arg'1')
+
+autoRepeat :: (QAbstractButtonValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+autoRepeat arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (autoRepeat' arg'1')
+
+autoRepeatDelay :: (QAbstractButtonValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+autoRepeatDelay arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (autoRepeatDelay' arg'1')
+
+autoRepeatInterval :: (QAbstractButtonValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+autoRepeatInterval arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (autoRepeatInterval' arg'1')
+
+isCheckable :: (QAbstractButtonValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isCheckable arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isCheckable' arg'1')
+
+isChecked :: (QAbstractButtonValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isChecked arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isChecked' arg'1')
+
+isDown :: (QAbstractButtonValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isDown arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isDown' arg'1')
+
+iconSize :: (QAbstractButtonValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+iconSize arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (iconSize' arg'1')
+
+text :: (QAbstractButtonValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+text arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (text' arg'1')
+
+class (QAbstractButtonConstPtr this, M280.QWidgetPtr this) => QAbstractButtonPtr this where
+  toQAbstractButton :: this -> QAbstractButton
+
+animateClick :: (QAbstractButtonPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+animateClick arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (animateClick' arg'1' arg'2')
+
+setAutoExclusive :: (QAbstractButtonPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setAutoExclusive arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setAutoExclusive' arg'1' arg'2')
+
+setAutoRepeat :: (QAbstractButtonPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setAutoRepeat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setAutoRepeat' arg'1' arg'2')
+
+setAutoRepeatDelay :: (QAbstractButtonPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setAutoRepeatDelay arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setAutoRepeatDelay' arg'1' arg'2')
+
+setAutoRepeatInterval :: (QAbstractButtonPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setAutoRepeatInterval arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setAutoRepeatInterval' arg'1' arg'2')
+
+setCheckable :: (QAbstractButtonPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setCheckable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setCheckable' arg'1' arg'2')
+
+setChecked :: (QAbstractButtonPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setChecked arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setChecked' arg'1' arg'2')
+
+click :: (QAbstractButtonPtr arg'1) => arg'1 -> HoppyP.IO ()
+click arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  (click' arg'1')
+
+setDown :: (QAbstractButtonPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setDown arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setDown' arg'1' arg'2')
+
+setIconSize :: (QAbstractButtonPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setIconSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIconSize' arg'1' arg'2')
+
+setText :: (QAbstractButtonPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setText' arg'1' arg'2')
+
+toggle :: (QAbstractButtonPtr arg'1) => arg'1 -> HoppyP.IO ()
+toggle arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  (toggle' arg'1')
+
+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 M280.QWidgetConstPtr QAbstractButtonConst where
+  toQWidgetConst (QAbstractButtonConst ptr') = M280.QWidgetConst $ castQAbstractButtonToQWidget ptr'
+  toQWidgetConst (QAbstractButtonConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQAbstractButtonToQWidget ptr'
+
+instance M30.QObjectConstPtr QAbstractButtonConst where
+  toQObjectConst (QAbstractButtonConst ptr') = M30.QObjectConst $ castQAbstractButtonToQObject ptr'
+  toQObjectConst (QAbstractButtonConstGc fptr' ptr') = M30.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 M280.QWidgetConstPtr QAbstractButton where
+  toQWidgetConst (QAbstractButton ptr') = M280.QWidgetConst $ castQAbstractButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+  toQWidgetConst (QAbstractButtonGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQAbstractButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+
+instance M280.QWidgetPtr QAbstractButton where
+  toQWidget (QAbstractButton ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQAbstractButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+  toQWidget (QAbstractButtonGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQAbstractButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+
+instance M30.QObjectConstPtr QAbstractButton where
+  toQObjectConst (QAbstractButton ptr') = M30.QObjectConst $ castQAbstractButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+  toQObjectConst (QAbstractButtonGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQAbstractButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+
+instance M30.QObjectPtr QAbstractButton where
+  toQObject (QAbstractButton ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQAbstractButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+  toQObject (QAbstractButtonGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQAbstractButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+
+class QAbstractButtonSuper a where
+  downToQAbstractButton :: a -> QAbstractButton
+
+instance QAbstractButtonSuper M280.QWidget where
+  downToQAbstractButton = castQAbstractButtonToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QAbstractButtonConst $ castQWidgetToQAbstractButton ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QAbstractButtonConstGc fptr' $ castQWidgetToQAbstractButton ptr'
+instance QAbstractButtonSuper M30.QObject where
+  downToQAbstractButton = castQAbstractButtonToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QAbstractButtonConst $ castQObjectToQAbstractButton ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QAbstractButtonConstGc fptr' $ castQObjectToQAbstractButton ptr'
+
+class QAbstractButtonSuperConst a where
+  downToQAbstractButtonConst :: a -> QAbstractButtonConst
+
+instance QAbstractButtonSuperConst M280.QWidgetConst where
+  downToQAbstractButtonConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QAbstractButtonConst $ castQWidgetToQAbstractButton ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QAbstractButtonConstGc fptr' $ castQWidgetToQAbstractButton ptr'
+instance QAbstractButtonSuperConst M30.QObjectConst where
+  downToQAbstractButtonConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QAbstractButtonConst $ castQObjectToQAbstractButton ptr'
+      cast' (M30.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/QAbstractGraphicsShapeItem.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractGraphicsShapeItem.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractGraphicsShapeItem.hs
@@ -0,0 +1,195 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 qualified Graphics.UI.Qtah.Generated.Gui.QBrush as M86
+import qualified Graphics.UI.Qtah.Generated.Gui.QPen as M130
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M202
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QAbstractGraphicsShapeItem_brush" brush' ::  HoppyF.Ptr QAbstractGraphicsShapeItemConst -> HoppyP.IO (HoppyF.Ptr M86.QBrushConst)
+foreign import ccall "genpop__QAbstractGraphicsShapeItem_pen" pen' ::  HoppyF.Ptr QAbstractGraphicsShapeItemConst -> HoppyP.IO (HoppyF.Ptr M130.QPenConst)
+foreign import ccall "genpop__QAbstractGraphicsShapeItem_setBrush" setBrush' ::  HoppyF.Ptr QAbstractGraphicsShapeItem -> HoppyF.Ptr M86.QBrushConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractGraphicsShapeItem_setPen" setPen' ::  HoppyF.Ptr QAbstractGraphicsShapeItem -> HoppyF.Ptr M130.QPenConst -> HoppyP.IO ()
+foreign import ccall "gencast__QAbstractGraphicsShapeItem__QGraphicsItem" castQAbstractGraphicsShapeItemToQGraphicsItem :: HoppyF.Ptr QAbstractGraphicsShapeItemConst -> HoppyF.Ptr M202.QGraphicsItemConst
+foreign import ccall "gencast__QGraphicsItem__QAbstractGraphicsShapeItem" castQGraphicsItemToQAbstractGraphicsShapeItem :: HoppyF.Ptr M202.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QAbstractGraphicsShapeItemConstPtr a => QAbstractGraphicsShapeItemValue a where
+#else
+instance QAbstractGraphicsShapeItemConstPtr a => QAbstractGraphicsShapeItemValue a where
+#endif
+  withQAbstractGraphicsShapeItemPtr = HoppyP.flip ($) . toQAbstractGraphicsShapeItemConst
+
+class (M202.QGraphicsItemConstPtr this) => QAbstractGraphicsShapeItemConstPtr this where
+  toQAbstractGraphicsShapeItemConst :: this -> QAbstractGraphicsShapeItemConst
+
+brush :: (QAbstractGraphicsShapeItemValue arg'1) => arg'1 -> HoppyP.IO M86.QBrush
+brush arg'1 =
+  withQAbstractGraphicsShapeItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M86.QBrushConst) =<<
+  (brush' arg'1')
+
+pen :: (QAbstractGraphicsShapeItemValue arg'1) => arg'1 -> HoppyP.IO M130.QPen
+pen arg'1 =
+  withQAbstractGraphicsShapeItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M130.QPenConst) =<<
+  (pen' arg'1')
+
+class (QAbstractGraphicsShapeItemConstPtr this, M202.QGraphicsItemPtr this) => QAbstractGraphicsShapeItemPtr this where
+  toQAbstractGraphicsShapeItem :: this -> QAbstractGraphicsShapeItem
+
+setBrush :: (QAbstractGraphicsShapeItemPtr arg'1, M86.QBrushValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setBrush arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractGraphicsShapeItem arg'1) $ \arg'1' ->
+  M86.withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBrush' arg'1' arg'2')
+
+setPen :: (QAbstractGraphicsShapeItemPtr arg'1, M130.QPenValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setPen arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractGraphicsShapeItem arg'1) $ \arg'1' ->
+  M130.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 M202.QGraphicsItemConstPtr QAbstractGraphicsShapeItemConst where
+  toQGraphicsItemConst (QAbstractGraphicsShapeItemConst ptr') = M202.QGraphicsItemConst $ castQAbstractGraphicsShapeItemToQGraphicsItem ptr'
+  toQGraphicsItemConst (QAbstractGraphicsShapeItemConstGc fptr' ptr') = M202.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 M202.QGraphicsItemConstPtr QAbstractGraphicsShapeItem where
+  toQGraphicsItemConst (QAbstractGraphicsShapeItem ptr') = M202.QGraphicsItemConst $ castQAbstractGraphicsShapeItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractGraphicsShapeItem -> HoppyF.Ptr QAbstractGraphicsShapeItemConst) ptr'
+  toQGraphicsItemConst (QAbstractGraphicsShapeItemGc fptr' ptr') = M202.QGraphicsItemConstGc fptr' $ castQAbstractGraphicsShapeItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractGraphicsShapeItem -> HoppyF.Ptr QAbstractGraphicsShapeItemConst) ptr'
+
+instance M202.QGraphicsItemPtr QAbstractGraphicsShapeItem where
+  toQGraphicsItem (QAbstractGraphicsShapeItem ptr') = M202.QGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr M202.QGraphicsItemConst -> HoppyF.Ptr M202.QGraphicsItem) $ castQAbstractGraphicsShapeItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractGraphicsShapeItem -> HoppyF.Ptr QAbstractGraphicsShapeItemConst) ptr'
+  toQGraphicsItem (QAbstractGraphicsShapeItemGc fptr' ptr') = M202.QGraphicsItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M202.QGraphicsItemConst -> HoppyF.Ptr M202.QGraphicsItem) $ castQAbstractGraphicsShapeItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractGraphicsShapeItem -> HoppyF.Ptr QAbstractGraphicsShapeItemConst) ptr'
+
+class QAbstractGraphicsShapeItemSuper a where
+  downToQAbstractGraphicsShapeItem :: a -> QAbstractGraphicsShapeItem
+
+instance QAbstractGraphicsShapeItemSuper M202.QGraphicsItem where
+  downToQAbstractGraphicsShapeItem = castQAbstractGraphicsShapeItemToNonconst . cast' . M202.castQGraphicsItemToConst
+    where
+      cast' (M202.QGraphicsItemConst ptr') = QAbstractGraphicsShapeItemConst $ castQGraphicsItemToQAbstractGraphicsShapeItem ptr'
+      cast' (M202.QGraphicsItemConstGc fptr' ptr') = QAbstractGraphicsShapeItemConstGc fptr' $ castQGraphicsItemToQAbstractGraphicsShapeItem ptr'
+
+class QAbstractGraphicsShapeItemSuperConst a where
+  downToQAbstractGraphicsShapeItemConst :: a -> QAbstractGraphicsShapeItemConst
+
+instance QAbstractGraphicsShapeItemSuperConst M202.QGraphicsItemConst where
+  downToQAbstractGraphicsShapeItemConst = cast'
+    where
+      cast' (M202.QGraphicsItemConst ptr') = QAbstractGraphicsShapeItemConst $ castQGraphicsItemToQAbstractGraphicsShapeItem ptr'
+      cast' (M202.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,71 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M202
+import qualified Prelude as HoppyP
+
+
+class QAbstractGraphicsShapeItemValue a where
+  withQAbstractGraphicsShapeItemPtr :: a -> (QAbstractGraphicsShapeItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QAbstractGraphicsShapeItemConstPtr a => QAbstractGraphicsShapeItemValue a
+#else
+instance QAbstractGraphicsShapeItemConstPtr a => QAbstractGraphicsShapeItemValue a
+#endif
+
+class (M202.QGraphicsItemConstPtr this) => QAbstractGraphicsShapeItemConstPtr this where
+  toQAbstractGraphicsShapeItemConst :: this -> QAbstractGraphicsShapeItemConst
+
+class (QAbstractGraphicsShapeItemConstPtr this, M202.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 M202.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 M202.QGraphicsItemConstPtr QAbstractGraphicsShapeItem
+
+instance M202.QGraphicsItemPtr QAbstractGraphicsShapeItem
+castQAbstractGraphicsShapeItemToQGraphicsItem :: HoppyF.Ptr QAbstractGraphicsShapeItemConst -> HoppyF.Ptr M202.QGraphicsItemConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractGraphicsShapeItem)) QAbstractGraphicsShapeItem
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemView.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemView.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemView.hs
@@ -0,0 +1,861 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QAbstractItemView (
+  castQAbstractItemViewToQAbstractScrollArea,
+  castQAbstractScrollAreaToQAbstractItemView,
+  castQAbstractItemViewToQWidget,
+  castQWidgetToQAbstractItemView,
+  castQAbstractItemViewToQObject,
+  castQObjectToQAbstractItemView,
+  QAbstractItemViewValue (..),
+  QAbstractItemViewConstPtr (..),
+  alternatingRowColors,
+  hasAutoScroll,
+  autoScrollMargin,
+  currentIndex,
+  defaultDropAction,
+  dragDropMode,
+  dragDropOverwriteMode,
+  dragEnabled,
+  editTriggers,
+  horizontalScrollMode,
+  iconSize,
+  indexAt,
+  indexWidget,
+  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,
+  setTabKeyNavigation,
+  setTextElideMode,
+  update,
+  setVerticalScrollMode,
+  QAbstractItemViewConst (..),
+  castQAbstractItemViewToConst,
+  QAbstractItemView (..),
+  castQAbstractItemViewToNonconst,
+  QAbstractItemViewSuper (..),
+  QAbstractItemViewSuperConst (..),
+  QAbstractItemViewDragDropMode (..),
+  QAbstractItemViewEditTrigger (..),
+  QAbstractItemViewEditTriggers (..),
+  IsQAbstractItemViewEditTriggers (..),
+  noEditTriggers,
+  currentChanged,
+  doubleClicked,
+  selectedClicked,
+  editKeyPressed,
+  anyKeyPressed,
+  allEditTriggers,
+  QAbstractItemViewScrollHint (..),
+  QAbstractItemViewScrollMode (..),
+  QAbstractItemViewSelectionBehavior (..),
+  QAbstractItemViewSelectionMode (..),
+  ) 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.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M2
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelectionModel as M20
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M28
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M42
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea as M168
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Prelude (($), (++), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QAbstractItemView_alternatingRowColors" alternatingRowColors' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemView_setAlternatingRowColors" setAlternatingRowColors' ::  HoppyF.Ptr QAbstractItemView -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_hasAutoScroll" hasAutoScroll' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemView_setAutoScroll" setAutoScroll' ::  HoppyF.Ptr QAbstractItemView -> HoppyFHR.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 M28.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_currentIndex" currentIndex' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO (HoppyF.Ptr M28.QModelIndexConst)
+foreign import ccall "genpop__QAbstractItemView_setCurrentIndex" setCurrentIndex' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M28.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 HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemView_setDragDropOverwriteMode" setDragDropOverwriteMode' ::  HoppyF.Ptr QAbstractItemView -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_dragEnabled" dragEnabled' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemView_setDragEnabled" setDragEnabled' ::  HoppyF.Ptr QAbstractItemView -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_edit" edit' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M28.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 M42.QSizeConst)
+foreign import ccall "genpop__QAbstractItemView_setIconSize" setIconSize' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M42.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_indexAt" indexAt' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M28.QModelIndexConst)
+foreign import ccall "genpop__QAbstractItemView_indexWidget" indexWidget' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "genpop__QAbstractItemView_keyboardSearch" keyboardSearch' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_model" model' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO (HoppyF.Ptr M2.QAbstractItemModel)
+foreign import ccall "genpop__QAbstractItemView_setModel" setModel' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M2.QAbstractItemModel -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_openPersistentEditor" openPersistentEditor' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M28.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 M28.QModelIndexConst)
+foreign import ccall "genpop__QAbstractItemView_setRootIndex" setRootIndex' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_scrollTo" scrollTo' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_scrollToWithHint" scrollToWithHint' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M28.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 M20.QItemSelectionModel)
+foreign import ccall "genpop__QAbstractItemView_setSelectionModel" setSelectionModel' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M20.QItemSelectionModel -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_setDropIndicatorShown" setDropIndicatorShown' ::  HoppyF.Ptr QAbstractItemView -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_setIndexWidget" setIndexWidget' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_showDropIndicator" showDropIndicator' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFHR.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 M28.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M42.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 HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractItemView_setTabKeyNavigation" setTabKeyNavigation' ::  HoppyF.Ptr QAbstractItemView -> HoppyFHR.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 M28.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 M28.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M38.QRectConst)
+foreign import ccall "gencast__QAbstractItemView__QAbstractScrollArea" castQAbstractItemViewToQAbstractScrollArea :: HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M168.QAbstractScrollAreaConst
+foreign import ccall "gencast__QAbstractScrollArea__QAbstractItemView" castQAbstractScrollAreaToQAbstractItemView :: HoppyF.Ptr M168.QAbstractScrollAreaConst -> HoppyF.Ptr QAbstractItemViewConst
+foreign import ccall "gencast__QAbstractItemView__QWidget" castQAbstractItemViewToQWidget :: HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QAbstractItemView" castQWidgetToQAbstractItemView :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QAbstractItemViewConst
+foreign import ccall "gencast__QAbstractItemView__QObject" castQAbstractItemViewToQObject :: HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractItemView" castQObjectToQAbstractItemView :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QAbstractItemViewConstPtr a => QAbstractItemViewValue a where
+#else
+instance QAbstractItemViewConstPtr a => QAbstractItemViewValue a where
+#endif
+  withQAbstractItemViewPtr = HoppyP.flip ($) . toQAbstractItemViewConst
+
+class (M168.QAbstractScrollAreaConstPtr this) => QAbstractItemViewConstPtr this where
+  toQAbstractItemViewConst :: this -> QAbstractItemViewConst
+
+alternatingRowColors :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+alternatingRowColors arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (alternatingRowColors' arg'1')
+
+hasAutoScroll :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasAutoScroll arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasAutoScroll' arg'1')
+
+autoScrollMargin :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+autoScrollMargin arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (autoScrollMargin' arg'1')
+
+currentIndex :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO M28.QModelIndex
+currentIndex arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M28.QModelIndexConst) =<<
+  (currentIndex' arg'1')
+
+defaultDropAction :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO M58.QtDropAction
+defaultDropAction arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (defaultDropAction' arg'1')
+
+dragDropMode :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO QAbstractItemViewDragDropMode
+dragDropMode arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (dragDropMode' arg'1')
+
+dragDropOverwriteMode :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+dragDropOverwriteMode arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (dragDropOverwriteMode' arg'1')
+
+dragEnabled :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+dragEnabled arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (dragEnabled' arg'1')
+
+editTriggers :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO QAbstractItemViewEditTriggers
+editTriggers arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QAbstractItemViewEditTriggers
+  (editTriggers' arg'1')
+
+horizontalScrollMode :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO QAbstractItemViewScrollMode
+horizontalScrollMode arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (horizontalScrollMode' arg'1')
+
+iconSize :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+iconSize arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (iconSize' arg'1')
+
+indexAt :: (QAbstractItemViewValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M28.QModelIndex
+indexAt arg'1 arg'2 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M28.QModelIndexConst) =<<
+  (indexAt' arg'1' arg'2')
+
+indexWidget :: (QAbstractItemViewValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M280.QWidget
+indexWidget arg'1 arg'2 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M280.QWidget
+  (indexWidget' arg'1' arg'2')
+
+model :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO M2.QAbstractItemModel
+model arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M2.QAbstractItemModel
+  (model' arg'1')
+
+rootIndex :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO M28.QModelIndex
+rootIndex arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M28.QModelIndexConst) =<<
+  (rootIndex' arg'1')
+
+selectionBehavior :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO QAbstractItemViewSelectionBehavior
+selectionBehavior arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (selectionBehavior' arg'1')
+
+selectionMode :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO QAbstractItemViewSelectionMode
+selectionMode arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (selectionMode' arg'1')
+
+selectionModel :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO M20.QItemSelectionModel
+selectionModel arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M20.QItemSelectionModel
+  (selectionModel' arg'1')
+
+showDropIndicator :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+showDropIndicator arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (showDropIndicator' arg'1')
+
+sizeHintForColumn :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+sizeHintForColumn arg'1 arg'2 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (sizeHintForColumn' arg'1' arg'2')
+
+sizeHintForIndex :: (QAbstractItemViewValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HSize.HSize
+sizeHintForIndex arg'1 arg'2 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (sizeHintForIndex' arg'1' arg'2')
+
+sizeHintForRow :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+sizeHintForRow arg'1 arg'2 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (sizeHintForRow' arg'1' arg'2')
+
+tabKeyNavigation :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+tabKeyNavigation arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (tabKeyNavigation' arg'1')
+
+textElideMode :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO M58.QtTextElideMode
+textElideMode arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (textElideMode' arg'1')
+
+verticalScrollMode :: (QAbstractItemViewValue arg'1) => arg'1 -> HoppyP.IO QAbstractItemViewScrollMode
+verticalScrollMode arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (verticalScrollMode' arg'1')
+
+visualRect :: (QAbstractItemViewValue arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HRect.HRect
+visualRect arg'1 arg'2 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (visualRect' arg'1' arg'2')
+
+class (QAbstractItemViewConstPtr this, M168.QAbstractScrollAreaPtr this) => QAbstractItemViewPtr this where
+  toQAbstractItemView :: this -> QAbstractItemView
+
+setAlternatingRowColors :: (QAbstractItemViewPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setAlternatingRowColors arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setAlternatingRowColors' arg'1' arg'2')
+
+setAutoScroll :: (QAbstractItemViewPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setAutoScroll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setAutoScroll' arg'1' arg'2')
+
+setAutoScrollMargin :: (QAbstractItemViewPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setAutoScrollMargin arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setAutoScrollMargin' arg'1' arg'2')
+
+clearSelection :: (QAbstractItemViewPtr arg'1) => arg'1 -> HoppyP.IO ()
+clearSelection arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (clearSelection' arg'1')
+
+closePersistentEditor :: (QAbstractItemViewPtr arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+closePersistentEditor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (closePersistentEditor' arg'1' arg'2')
+
+setCurrentIndex :: (QAbstractItemViewPtr arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setCurrentIndex arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setCurrentIndex' arg'1' arg'2')
+
+setDefaultDropAction :: (QAbstractItemViewPtr arg'1) => arg'1 -> M58.QtDropAction -> HoppyP.IO ()
+setDefaultDropAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setDefaultDropAction' arg'1' arg'2')
+
+setDragDropMode :: (QAbstractItemViewPtr arg'1) => arg'1 -> QAbstractItemViewDragDropMode -> HoppyP.IO ()
+setDragDropMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setDragDropMode' arg'1' arg'2')
+
+setDragDropOverwriteMode :: (QAbstractItemViewPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setDragDropOverwriteMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setDragDropOverwriteMode' arg'1' arg'2')
+
+setDragEnabled :: (QAbstractItemViewPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setDragEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setDragEnabled' arg'1' arg'2')
+
+edit :: (QAbstractItemViewPtr arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+edit arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (edit' arg'1' arg'2')
+
+setEditTriggers :: (QAbstractItemViewPtr arg'1, IsQAbstractItemViewEditTriggers arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setEditTriggers arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  let arg'2' = fromQAbstractItemViewEditTriggers $ toQAbstractItemViewEditTriggers arg'2 in
+  (setEditTriggers' arg'1' arg'2')
+
+setHorizontalScrollMode :: (QAbstractItemViewPtr arg'1) => arg'1 -> QAbstractItemViewScrollMode -> HoppyP.IO ()
+setHorizontalScrollMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setHorizontalScrollMode' arg'1' arg'2')
+
+setIconSize :: (QAbstractItemViewPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setIconSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIconSize' arg'1' arg'2')
+
+keyboardSearch :: (QAbstractItemViewPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+keyboardSearch arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (keyboardSearch' arg'1' arg'2')
+
+setModel :: (QAbstractItemViewPtr arg'1, M2.QAbstractItemModelPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setModel arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M2.toQAbstractItemModel arg'2) $ \arg'2' ->
+  (setModel' arg'1' arg'2')
+
+openPersistentEditor :: (QAbstractItemViewPtr arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+openPersistentEditor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (openPersistentEditor' arg'1' arg'2')
+
+reset :: (QAbstractItemViewPtr arg'1) => arg'1 -> HoppyP.IO ()
+reset arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (reset' arg'1')
+
+setRootIndex :: (QAbstractItemViewPtr arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setRootIndex arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setRootIndex' arg'1' arg'2')
+
+scrollTo :: (QAbstractItemViewPtr arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+scrollTo arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (scrollTo' arg'1' arg'2')
+
+scrollToWithHint :: (QAbstractItemViewPtr arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> QAbstractItemViewScrollHint -> HoppyP.IO ()
+scrollToWithHint arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (scrollToWithHint' arg'1' arg'2' arg'3')
+
+scrollToBottom :: (QAbstractItemViewPtr arg'1) => arg'1 -> HoppyP.IO ()
+scrollToBottom arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (scrollToBottom' arg'1')
+
+scrollToTop :: (QAbstractItemViewPtr arg'1) => arg'1 -> HoppyP.IO ()
+scrollToTop arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (scrollToTop' arg'1')
+
+selectAll :: (QAbstractItemViewPtr arg'1) => arg'1 -> HoppyP.IO ()
+selectAll arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (selectAll' arg'1')
+
+setSelectionBehavior :: (QAbstractItemViewPtr arg'1) => arg'1 -> QAbstractItemViewSelectionBehavior -> HoppyP.IO ()
+setSelectionBehavior arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setSelectionBehavior' arg'1' arg'2')
+
+setSelectionMode :: (QAbstractItemViewPtr arg'1) => arg'1 -> QAbstractItemViewSelectionMode -> HoppyP.IO ()
+setSelectionMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setSelectionMode' arg'1' arg'2')
+
+setSelectionModel :: (QAbstractItemViewPtr arg'1, M20.QItemSelectionModelPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setSelectionModel arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M20.toQItemSelectionModel arg'2) $ \arg'2' ->
+  (setSelectionModel' arg'1' arg'2')
+
+setDropIndicatorShown :: (QAbstractItemViewPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setDropIndicatorShown arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setDropIndicatorShown' arg'1' arg'2')
+
+setIndexWidget :: (QAbstractItemViewPtr arg'1, M28.QModelIndexValue arg'2, M280.QWidgetPtr arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO ()
+setIndexWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  (setIndexWidget' arg'1' arg'2' arg'3')
+
+setTabKeyNavigation :: (QAbstractItemViewPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setTabKeyNavigation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setTabKeyNavigation' arg'1' arg'2')
+
+setTextElideMode :: (QAbstractItemViewPtr arg'1) => arg'1 -> M58.QtTextElideMode -> HoppyP.IO ()
+setTextElideMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setTextElideMode' arg'1' arg'2')
+
+update :: (QAbstractItemViewPtr arg'1, M28.QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+update arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M28.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (update' arg'1' arg'2')
+
+setVerticalScrollMode :: (QAbstractItemViewPtr arg'1) => arg'1 -> QAbstractItemViewScrollMode -> HoppyP.IO ()
+setVerticalScrollMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setVerticalScrollMode' arg'1' arg'2')
+
+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 M168.QAbstractScrollAreaConstPtr QAbstractItemViewConst where
+  toQAbstractScrollAreaConst (QAbstractItemViewConst ptr') = M168.QAbstractScrollAreaConst $ castQAbstractItemViewToQAbstractScrollArea ptr'
+  toQAbstractScrollAreaConst (QAbstractItemViewConstGc fptr' ptr') = M168.QAbstractScrollAreaConstGc fptr' $ castQAbstractItemViewToQAbstractScrollArea ptr'
+
+instance M280.QWidgetConstPtr QAbstractItemViewConst where
+  toQWidgetConst (QAbstractItemViewConst ptr') = M280.QWidgetConst $ castQAbstractItemViewToQWidget ptr'
+  toQWidgetConst (QAbstractItemViewConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQAbstractItemViewToQWidget ptr'
+
+instance M30.QObjectConstPtr QAbstractItemViewConst where
+  toQObjectConst (QAbstractItemViewConst ptr') = M30.QObjectConst $ castQAbstractItemViewToQObject ptr'
+  toQObjectConst (QAbstractItemViewConstGc fptr' ptr') = M30.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 M168.QAbstractScrollAreaConstPtr QAbstractItemView where
+  toQAbstractScrollAreaConst (QAbstractItemView ptr') = M168.QAbstractScrollAreaConst $ castQAbstractItemViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+  toQAbstractScrollAreaConst (QAbstractItemViewGc fptr' ptr') = M168.QAbstractScrollAreaConstGc fptr' $ castQAbstractItemViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+
+instance M168.QAbstractScrollAreaPtr QAbstractItemView where
+  toQAbstractScrollArea (QAbstractItemView ptr') = M168.QAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr M168.QAbstractScrollAreaConst -> HoppyF.Ptr M168.QAbstractScrollArea) $ castQAbstractItemViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+  toQAbstractScrollArea (QAbstractItemViewGc fptr' ptr') = M168.QAbstractScrollAreaGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M168.QAbstractScrollAreaConst -> HoppyF.Ptr M168.QAbstractScrollArea) $ castQAbstractItemViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+
+instance M280.QWidgetConstPtr QAbstractItemView where
+  toQWidgetConst (QAbstractItemView ptr') = M280.QWidgetConst $ castQAbstractItemViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+  toQWidgetConst (QAbstractItemViewGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQAbstractItemViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+
+instance M280.QWidgetPtr QAbstractItemView where
+  toQWidget (QAbstractItemView ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQAbstractItemViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+  toQWidget (QAbstractItemViewGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQAbstractItemViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+
+instance M30.QObjectConstPtr QAbstractItemView where
+  toQObjectConst (QAbstractItemView ptr') = M30.QObjectConst $ castQAbstractItemViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+  toQObjectConst (QAbstractItemViewGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQAbstractItemViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+
+instance M30.QObjectPtr QAbstractItemView where
+  toQObject (QAbstractItemView ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQAbstractItemViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+  toQObject (QAbstractItemViewGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQAbstractItemViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+
+class QAbstractItemViewSuper a where
+  downToQAbstractItemView :: a -> QAbstractItemView
+
+instance QAbstractItemViewSuper M168.QAbstractScrollArea where
+  downToQAbstractItemView = castQAbstractItemViewToNonconst . cast' . M168.castQAbstractScrollAreaToConst
+    where
+      cast' (M168.QAbstractScrollAreaConst ptr') = QAbstractItemViewConst $ castQAbstractScrollAreaToQAbstractItemView ptr'
+      cast' (M168.QAbstractScrollAreaConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQAbstractScrollAreaToQAbstractItemView ptr'
+instance QAbstractItemViewSuper M280.QWidget where
+  downToQAbstractItemView = castQAbstractItemViewToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QAbstractItemViewConst $ castQWidgetToQAbstractItemView ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQWidgetToQAbstractItemView ptr'
+instance QAbstractItemViewSuper M30.QObject where
+  downToQAbstractItemView = castQAbstractItemViewToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QAbstractItemViewConst $ castQObjectToQAbstractItemView ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQObjectToQAbstractItemView ptr'
+
+class QAbstractItemViewSuperConst a where
+  downToQAbstractItemViewConst :: a -> QAbstractItemViewConst
+
+instance QAbstractItemViewSuperConst M168.QAbstractScrollAreaConst where
+  downToQAbstractItemViewConst = cast'
+    where
+      cast' (M168.QAbstractScrollAreaConst ptr') = QAbstractItemViewConst $ castQAbstractScrollAreaToQAbstractItemView ptr'
+      cast' (M168.QAbstractScrollAreaConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQAbstractScrollAreaToQAbstractItemView ptr'
+instance QAbstractItemViewSuperConst M280.QWidgetConst where
+  downToQAbstractItemViewConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QAbstractItemViewConst $ castQWidgetToQAbstractItemView ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQWidgetToQAbstractItemView ptr'
+instance QAbstractItemViewSuperConst M30.QObjectConst where
+  downToQAbstractItemViewConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QAbstractItemViewConst $ castQObjectToQAbstractItemView ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QAbstractItemViewDragDropMode where
+  fromEnum NoDragDrop = 0
+  fromEnum DragOnly = 1
+  fromEnum DropOnly = 2
+  fromEnum DragDrop = 3
+  fromEnum InternalMove = 4
+  
+  toEnum (0) = NoDragDrop
+  toEnum (1) = DragOnly
+  toEnum (2) = DropOnly
+  toEnum (3) = DragDrop
+  toEnum (4) = InternalMove
+  toEnum n' = HoppyP.error $ "Unknown QAbstractItemViewDragDropMode numeric value: " ++ HoppyP.show n'
+
+data QAbstractItemViewEditTrigger =
+  NoEditTriggers
+  | CurrentChanged
+  | DoubleClicked
+  | SelectedClicked
+  | EditKeyPressed
+  | AnyKeyPressed
+  | AllEditTriggers
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QAbstractItemViewEditTrigger where
+  fromEnum NoEditTriggers = 0
+  fromEnum CurrentChanged = 1
+  fromEnum DoubleClicked = 2
+  fromEnum SelectedClicked = 4
+  fromEnum EditKeyPressed = 8
+  fromEnum AnyKeyPressed = 16
+  fromEnum AllEditTriggers = 31
+  
+  toEnum (0) = NoEditTriggers
+  toEnum (1) = CurrentChanged
+  toEnum (2) = DoubleClicked
+  toEnum (4) = SelectedClicked
+  toEnum (8) = EditKeyPressed
+  toEnum (16) = AnyKeyPressed
+  toEnum (31) = AllEditTriggers
+  toEnum n' = HoppyP.error $ "Unknown QAbstractItemViewEditTrigger numeric value: " ++ HoppyP.show n'
+
+newtype QAbstractItemViewEditTriggers = QAbstractItemViewEditTriggers { fromQAbstractItemViewEditTriggers :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQAbstractItemViewEditTriggers a where
+  toQAbstractItemViewEditTriggers :: a -> QAbstractItemViewEditTriggers
+
+instance IsQAbstractItemViewEditTriggers (HoppyFC.CInt) where
+  toQAbstractItemViewEditTriggers = QAbstractItemViewEditTriggers
+instance IsQAbstractItemViewEditTriggers (HoppyP.Int) where
+  toQAbstractItemViewEditTriggers = QAbstractItemViewEditTriggers . HoppyFHR.coerceIntegral
+instance IsQAbstractItemViewEditTriggers QAbstractItemViewEditTriggers where
+  toQAbstractItemViewEditTriggers = HoppyP.id
+
+instance IsQAbstractItemViewEditTriggers QAbstractItemViewEditTrigger where
+  toQAbstractItemViewEditTriggers = QAbstractItemViewEditTriggers . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+noEditTriggers = QAbstractItemViewEditTriggers 0
+currentChanged = QAbstractItemViewEditTriggers 1
+doubleClicked = QAbstractItemViewEditTriggers 2
+selectedClicked = QAbstractItemViewEditTriggers 4
+editKeyPressed = QAbstractItemViewEditTriggers 8
+anyKeyPressed = QAbstractItemViewEditTriggers 16
+allEditTriggers = QAbstractItemViewEditTriggers 31
+
+data QAbstractItemViewScrollHint =
+  EnsureVisible
+  | PositionAtTop
+  | PositionAtBottom
+  | PositionAtCenter
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QAbstractItemViewScrollHint where
+  fromEnum EnsureVisible = 0
+  fromEnum PositionAtTop = 1
+  fromEnum PositionAtBottom = 2
+  fromEnum PositionAtCenter = 3
+  
+  toEnum (0) = EnsureVisible
+  toEnum (1) = PositionAtTop
+  toEnum (2) = PositionAtBottom
+  toEnum (3) = PositionAtCenter
+  toEnum n' = HoppyP.error $ "Unknown QAbstractItemViewScrollHint numeric value: " ++ HoppyP.show n'
+
+data QAbstractItemViewScrollMode =
+  ScrollPerItem
+  | ScrollPerPixel
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QAbstractItemViewScrollMode where
+  fromEnum ScrollPerItem = 0
+  fromEnum ScrollPerPixel = 1
+  
+  toEnum (0) = ScrollPerItem
+  toEnum (1) = ScrollPerPixel
+  toEnum n' = HoppyP.error $ "Unknown QAbstractItemViewScrollMode numeric value: " ++ HoppyP.show n'
+
+data QAbstractItemViewSelectionBehavior =
+  SelectItems
+  | SelectRows
+  | SelectColumns
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QAbstractItemViewSelectionBehavior where
+  fromEnum SelectItems = 0
+  fromEnum SelectRows = 1
+  fromEnum SelectColumns = 2
+  
+  toEnum (0) = SelectItems
+  toEnum (1) = SelectRows
+  toEnum (2) = SelectColumns
+  toEnum n' = HoppyP.error $ "Unknown QAbstractItemViewSelectionBehavior numeric value: " ++ HoppyP.show n'
+
+data QAbstractItemViewSelectionMode =
+  NoSelection
+  | SingleSelection
+  | MultiSelection
+  | ExtendedSelection
+  | ContiguousSelection
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QAbstractItemViewSelectionMode where
+  fromEnum NoSelection = 0
+  fromEnum SingleSelection = 1
+  fromEnum MultiSelection = 2
+  fromEnum ExtendedSelection = 3
+  fromEnum ContiguousSelection = 4
+  
+  toEnum (0) = NoSelection
+  toEnum (1) = SingleSelection
+  toEnum (2) = MultiSelection
+  toEnum (3) = ExtendedSelection
+  toEnum (4) = ContiguousSelection
+  toEnum n' = HoppyP.error $ "Unknown QAbstractItemViewSelectionMode numeric value: " ++ HoppyP.show n'
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,321 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea (
+  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.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M42
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QScrollBar as M256
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QAbstractScrollArea_new" new' ::  HoppyP.IO (HoppyF.Ptr QAbstractScrollArea)
+foreign import ccall "genpop__QAbstractScrollArea_newWithParent" newWithParent' ::  HoppyF.Ptr M280.QWidget -> HoppyP.IO (HoppyF.Ptr QAbstractScrollArea)
+foreign import ccall "genpop__QAbstractScrollArea_addScrollBarWidget" addScrollBarWidget' ::  HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr M280.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractScrollArea_cornerWidget" cornerWidget' ::  HoppyF.Ptr QAbstractScrollAreaConst -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "genpop__QAbstractScrollArea_horizontalScrollBar" horizontalScrollBar' ::  HoppyF.Ptr QAbstractScrollAreaConst -> HoppyP.IO (HoppyF.Ptr M256.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 M42.QSizeConst)
+foreign import ccall "genpop__QAbstractScrollArea_setCornerWidget" setCornerWidget' ::  HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractScrollArea_setHorizontalScrollBar" setHorizontalScrollBar' ::  HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr M256.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 M256.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 M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractScrollArea_verticalScrollBar" verticalScrollBar' ::  HoppyF.Ptr QAbstractScrollAreaConst -> HoppyP.IO (HoppyF.Ptr M256.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 M280.QWidget)
+foreign import ccall "gencast__QAbstractScrollArea__QWidget" castQAbstractScrollAreaToQWidget :: HoppyF.Ptr QAbstractScrollAreaConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QAbstractScrollArea" castQWidgetToQAbstractScrollArea :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QAbstractScrollAreaConst
+foreign import ccall "gencast__QAbstractScrollArea__QObject" castQAbstractScrollAreaToQObject :: HoppyF.Ptr QAbstractScrollAreaConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractScrollArea" castQObjectToQAbstractScrollArea :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QAbstractScrollAreaConstPtr a => QAbstractScrollAreaValue a where
+#else
+instance QAbstractScrollAreaConstPtr a => QAbstractScrollAreaValue a where
+#endif
+  withQAbstractScrollAreaPtr = HoppyP.flip ($) . toQAbstractScrollAreaConst
+
+class (M280.QWidgetConstPtr this) => QAbstractScrollAreaConstPtr this where
+  toQAbstractScrollAreaConst :: this -> QAbstractScrollAreaConst
+
+cornerWidget :: (QAbstractScrollAreaValue arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+cornerWidget arg'1 =
+  withQAbstractScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (cornerWidget' arg'1')
+
+horizontalScrollBar :: (QAbstractScrollAreaValue arg'1) => arg'1 -> HoppyP.IO M256.QScrollBar
+horizontalScrollBar arg'1 =
+  withQAbstractScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M256.QScrollBar
+  (horizontalScrollBar' arg'1')
+
+horizontalScrollBarPolicy :: (QAbstractScrollAreaValue arg'1) => arg'1 -> HoppyP.IO M58.QtScrollBarPolicy
+horizontalScrollBarPolicy arg'1 =
+  withQAbstractScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (horizontalScrollBarPolicy' arg'1')
+
+maximumViewportSize :: (QAbstractScrollAreaValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+maximumViewportSize arg'1 =
+  withQAbstractScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (maximumViewportSize' arg'1')
+
+verticalScrollBar :: (QAbstractScrollAreaValue arg'1) => arg'1 -> HoppyP.IO M256.QScrollBar
+verticalScrollBar arg'1 =
+  withQAbstractScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M256.QScrollBar
+  (verticalScrollBar' arg'1')
+
+verticalScrollBarPolicy :: (QAbstractScrollAreaValue arg'1) => arg'1 -> HoppyP.IO M58.QtScrollBarPolicy
+verticalScrollBarPolicy arg'1 =
+  withQAbstractScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (verticalScrollBarPolicy' arg'1')
+
+viewport :: (QAbstractScrollAreaValue arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+viewport arg'1 =
+  withQAbstractScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (viewport' arg'1')
+
+class (QAbstractScrollAreaConstPtr this, M280.QWidgetPtr this) => QAbstractScrollAreaPtr this where
+  toQAbstractScrollArea :: this -> QAbstractScrollArea
+
+addScrollBarWidget :: (QAbstractScrollAreaPtr arg'1, M280.QWidgetPtr arg'2, M58.IsQtAlignment arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO ()
+addScrollBarWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractScrollArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  let arg'3' = M58.fromQtAlignment $ M58.toQtAlignment arg'3 in
+  (addScrollBarWidget' arg'1' arg'2' arg'3')
+
+setCornerWidget :: (QAbstractScrollAreaPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setCornerWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractScrollArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (setCornerWidget' arg'1' arg'2')
+
+setHorizontalScrollBar :: (QAbstractScrollAreaPtr arg'1, M256.QScrollBarPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setHorizontalScrollBar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractScrollArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M256.toQScrollBar arg'2) $ \arg'2' ->
+  (setHorizontalScrollBar' arg'1' arg'2')
+
+setHorizontalScrollBarPolicy :: (QAbstractScrollAreaPtr arg'1) => arg'1 -> M58.QtScrollBarPolicy -> HoppyP.IO ()
+setHorizontalScrollBarPolicy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractScrollArea arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setHorizontalScrollBarPolicy' arg'1' arg'2')
+
+setVerticalScrollBar :: (QAbstractScrollAreaPtr arg'1, M256.QScrollBarPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setVerticalScrollBar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractScrollArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M256.toQScrollBar arg'2) $ \arg'2' ->
+  (setVerticalScrollBar' arg'1' arg'2')
+
+setVerticalScrollBarPolicy :: (QAbstractScrollAreaPtr arg'1) => arg'1 -> M58.QtScrollBarPolicy -> HoppyP.IO ()
+setVerticalScrollBarPolicy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractScrollArea arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setVerticalScrollBarPolicy' arg'1' arg'2')
+
+setViewport :: (QAbstractScrollAreaPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setViewport arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractScrollArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.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 M280.QWidgetConstPtr QAbstractScrollAreaConst where
+  toQWidgetConst (QAbstractScrollAreaConst ptr') = M280.QWidgetConst $ castQAbstractScrollAreaToQWidget ptr'
+  toQWidgetConst (QAbstractScrollAreaConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQAbstractScrollAreaToQWidget ptr'
+
+instance M30.QObjectConstPtr QAbstractScrollAreaConst where
+  toQObjectConst (QAbstractScrollAreaConst ptr') = M30.QObjectConst $ castQAbstractScrollAreaToQObject ptr'
+  toQObjectConst (QAbstractScrollAreaConstGc fptr' ptr') = M30.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 M280.QWidgetConstPtr QAbstractScrollArea where
+  toQWidgetConst (QAbstractScrollArea ptr') = M280.QWidgetConst $ castQAbstractScrollAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+  toQWidgetConst (QAbstractScrollAreaGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQAbstractScrollAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+
+instance M280.QWidgetPtr QAbstractScrollArea where
+  toQWidget (QAbstractScrollArea ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQAbstractScrollAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+  toQWidget (QAbstractScrollAreaGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQAbstractScrollAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+
+instance M30.QObjectConstPtr QAbstractScrollArea where
+  toQObjectConst (QAbstractScrollArea ptr') = M30.QObjectConst $ castQAbstractScrollAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+  toQObjectConst (QAbstractScrollAreaGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQAbstractScrollAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+
+instance M30.QObjectPtr QAbstractScrollArea where
+  toQObject (QAbstractScrollArea ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQAbstractScrollAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+  toQObject (QAbstractScrollAreaGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQAbstractScrollAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+
+new ::  HoppyP.IO QAbstractScrollArea
+new =
+  HoppyP.fmap QAbstractScrollArea
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QAbstractScrollArea
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QAbstractScrollArea
+  (newWithParent' arg'1')
+
+class QAbstractScrollAreaSuper a where
+  downToQAbstractScrollArea :: a -> QAbstractScrollArea
+
+instance QAbstractScrollAreaSuper M280.QWidget where
+  downToQAbstractScrollArea = castQAbstractScrollAreaToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QAbstractScrollAreaConst $ castQWidgetToQAbstractScrollArea ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QAbstractScrollAreaConstGc fptr' $ castQWidgetToQAbstractScrollArea ptr'
+instance QAbstractScrollAreaSuper M30.QObject where
+  downToQAbstractScrollArea = castQAbstractScrollAreaToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QAbstractScrollAreaConst $ castQObjectToQAbstractScrollArea ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QAbstractScrollAreaConstGc fptr' $ castQObjectToQAbstractScrollArea ptr'
+
+class QAbstractScrollAreaSuperConst a where
+  downToQAbstractScrollAreaConst :: a -> QAbstractScrollAreaConst
+
+instance QAbstractScrollAreaSuperConst M280.QWidgetConst where
+  downToQAbstractScrollAreaConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QAbstractScrollAreaConst $ castQWidgetToQAbstractScrollArea ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QAbstractScrollAreaConstGc fptr' $ castQWidgetToQAbstractScrollArea ptr'
+instance QAbstractScrollAreaSuperConst M30.QObjectConst where
+  downToQAbstractScrollAreaConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QAbstractScrollAreaConst $ castQObjectToQAbstractScrollArea ptr'
+      cast' (M30.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/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,421 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  QAbstractSliderConst (..),
+  castQAbstractSliderToConst,
+  QAbstractSlider (..),
+  castQAbstractSliderToNonconst,
+  new,
+  newWithParent,
+  QAbstractSliderSuper (..),
+  QAbstractSliderSuperConst (..),
+  QAbstractSliderAction (..),
+  ) 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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QAbstractSlider)
+foreign import ccall "genpop__QAbstractSlider_invertedAppearance" invertedAppearance' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractSlider_setInvertedAppearance" setInvertedAppearance' ::  HoppyF.Ptr QAbstractSlider -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_invertedControls" invertedControls' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractSlider_setInvertedControls" setInvertedControls' ::  HoppyF.Ptr QAbstractSlider -> HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractSlider_setSliderDown" setSliderDown' ::  HoppyF.Ptr QAbstractSlider -> HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractSlider_setTracking" setTracking' ::  HoppyF.Ptr QAbstractSlider -> HoppyFHR.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 "gencast__QAbstractSlider__QWidget" castQAbstractSliderToQWidget :: HoppyF.Ptr QAbstractSliderConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QAbstractSlider" castQWidgetToQAbstractSlider :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QAbstractSliderConst
+foreign import ccall "gencast__QAbstractSlider__QObject" castQAbstractSliderToQObject :: HoppyF.Ptr QAbstractSliderConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractSlider" castQObjectToQAbstractSlider :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QAbstractSliderConstPtr a => QAbstractSliderValue a where
+#else
+instance QAbstractSliderConstPtr a => QAbstractSliderValue a where
+#endif
+  withQAbstractSliderPtr = HoppyP.flip ($) . toQAbstractSliderConst
+
+class (M280.QWidgetConstPtr this) => QAbstractSliderConstPtr this where
+  toQAbstractSliderConst :: this -> QAbstractSliderConst
+
+invertedAppearance :: (QAbstractSliderValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+invertedAppearance arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (invertedAppearance' arg'1')
+
+invertedControls :: (QAbstractSliderValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+invertedControls arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (invertedControls' arg'1')
+
+maximum :: (QAbstractSliderValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+maximum arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (maximum' arg'1')
+
+minimum :: (QAbstractSliderValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+minimum arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (minimum' arg'1')
+
+orientation :: (QAbstractSliderValue arg'1) => arg'1 -> HoppyP.IO M58.QtOrientation
+orientation arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (orientation' arg'1')
+
+pageStep :: (QAbstractSliderValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+pageStep arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (pageStep' arg'1')
+
+singleStep :: (QAbstractSliderValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+singleStep arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (singleStep' arg'1')
+
+isSliderDown :: (QAbstractSliderValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isSliderDown arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isSliderDown' arg'1')
+
+sliderPosition :: (QAbstractSliderValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+sliderPosition arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (sliderPosition' arg'1')
+
+hasTracking :: (QAbstractSliderValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasTracking arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasTracking' arg'1')
+
+value :: (QAbstractSliderValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+value arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (value' arg'1')
+
+class (QAbstractSliderConstPtr this, M280.QWidgetPtr this) => QAbstractSliderPtr this where
+  toQAbstractSlider :: this -> QAbstractSlider
+
+setInvertedAppearance :: (QAbstractSliderPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setInvertedAppearance arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setInvertedAppearance' arg'1' arg'2')
+
+setInvertedControls :: (QAbstractSliderPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setInvertedControls arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setInvertedControls' arg'1' arg'2')
+
+setMaximum :: (QAbstractSliderPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setMaximum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setMaximum' arg'1' arg'2')
+
+setMinimum :: (QAbstractSliderPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setMinimum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setMinimum' arg'1' arg'2')
+
+setOrientation :: (QAbstractSliderPtr arg'1) => arg'1 -> M58.QtOrientation -> HoppyP.IO ()
+setOrientation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setOrientation' arg'1' arg'2')
+
+setPageStep :: (QAbstractSliderPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setPageStep arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setPageStep' arg'1' arg'2')
+
+setSingleStep :: (QAbstractSliderPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setSingleStep arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setSingleStep' arg'1' arg'2')
+
+setSliderDown :: (QAbstractSliderPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setSliderDown arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setSliderDown' arg'1' arg'2')
+
+setSliderPosition :: (QAbstractSliderPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setSliderPosition arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setSliderPosition' arg'1' arg'2')
+
+setTracking :: (QAbstractSliderPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setTracking arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setTracking' arg'1' arg'2')
+
+triggerAction :: (QAbstractSliderPtr arg'1) => arg'1 -> QAbstractSliderAction -> HoppyP.IO ()
+triggerAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (triggerAction' arg'1' arg'2')
+
+setValue :: (QAbstractSliderPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setValue' 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 M280.QWidgetConstPtr QAbstractSliderConst where
+  toQWidgetConst (QAbstractSliderConst ptr') = M280.QWidgetConst $ castQAbstractSliderToQWidget ptr'
+  toQWidgetConst (QAbstractSliderConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQAbstractSliderToQWidget ptr'
+
+instance M30.QObjectConstPtr QAbstractSliderConst where
+  toQObjectConst (QAbstractSliderConst ptr') = M30.QObjectConst $ castQAbstractSliderToQObject ptr'
+  toQObjectConst (QAbstractSliderConstGc fptr' ptr') = M30.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 M280.QWidgetConstPtr QAbstractSlider where
+  toQWidgetConst (QAbstractSlider ptr') = M280.QWidgetConst $ castQAbstractSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+  toQWidgetConst (QAbstractSliderGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQAbstractSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+
+instance M280.QWidgetPtr QAbstractSlider where
+  toQWidget (QAbstractSlider ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQAbstractSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+  toQWidget (QAbstractSliderGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQAbstractSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+
+instance M30.QObjectConstPtr QAbstractSlider where
+  toQObjectConst (QAbstractSlider ptr') = M30.QObjectConst $ castQAbstractSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+  toQObjectConst (QAbstractSliderGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQAbstractSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+
+instance M30.QObjectPtr QAbstractSlider where
+  toQObject (QAbstractSlider ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQAbstractSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+  toQObject (QAbstractSliderGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQAbstractSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+
+new ::  HoppyP.IO QAbstractSlider
+new =
+  HoppyP.fmap QAbstractSlider
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QAbstractSlider
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QAbstractSlider
+  (newWithParent' arg'1')
+
+class QAbstractSliderSuper a where
+  downToQAbstractSlider :: a -> QAbstractSlider
+
+instance QAbstractSliderSuper M280.QWidget where
+  downToQAbstractSlider = castQAbstractSliderToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QAbstractSliderConst $ castQWidgetToQAbstractSlider ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QAbstractSliderConstGc fptr' $ castQWidgetToQAbstractSlider ptr'
+instance QAbstractSliderSuper M30.QObject where
+  downToQAbstractSlider = castQAbstractSliderToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QAbstractSliderConst $ castQObjectToQAbstractSlider ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QAbstractSliderConstGc fptr' $ castQObjectToQAbstractSlider ptr'
+
+class QAbstractSliderSuperConst a where
+  downToQAbstractSliderConst :: a -> QAbstractSliderConst
+
+instance QAbstractSliderSuperConst M280.QWidgetConst where
+  downToQAbstractSliderConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QAbstractSliderConst $ castQWidgetToQAbstractSlider ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QAbstractSliderConstGc fptr' $ castQWidgetToQAbstractSlider ptr'
+instance QAbstractSliderSuperConst M30.QObjectConst where
+  downToQAbstractSliderConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QAbstractSliderConst $ castQObjectToQAbstractSlider ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QAbstractSliderAction where
+  fromEnum SliderNoAction = 0
+  fromEnum SliderSingleStepAdd = 1
+  fromEnum SliderSingleStepSub = 2
+  fromEnum SliderPageStepAdd = 3
+  fromEnum SliderPageStepSub = 4
+  fromEnum SliderToMinimum = 5
+  fromEnum SliderToMaximum = 6
+  fromEnum SliderMove = 7
+  
+  toEnum (0) = SliderNoAction
+  toEnum (1) = SliderSingleStepAdd
+  toEnum (2) = SliderSingleStepSub
+  toEnum (3) = SliderPageStepAdd
+  toEnum (4) = SliderPageStepSub
+  toEnum (5) = SliderToMinimum
+  toEnum (6) = SliderToMaximum
+  toEnum (7) = SliderMove
+  toEnum n' = HoppyP.error $ "Unknown QAbstractSliderAction numeric value: " ++ HoppyP.show n'
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,508 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  QAbstractSpinBoxConst (..),
+  castQAbstractSpinBoxToConst,
+  QAbstractSpinBox (..),
+  castQAbstractSpinBoxToNonconst,
+  new,
+  newWithParent,
+  QAbstractSpinBoxSuper (..),
+  QAbstractSpinBoxSuperConst (..),
+  QAbstractSpinBoxButtonSymbols (..),
+  QAbstractSpinBoxCorrectionMode (..),
+  QAbstractSpinBoxStepEnabled (..),
+  IsQAbstractSpinBoxStepEnabled (..),
+  stepNone,
+  stepUpEnabled,
+  stepDownEnabled,
+  QAbstractSpinBoxStepEnabledFlag (..),
+  ) 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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QAbstractSpinBox)
+foreign import ccall "genpop__QAbstractSpinBox_isAccelerated" isAccelerated' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractSpinBox_setAccelerated" setAccelerated' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractSpinBox_fixup" fixup' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyF.Ptr M46.QString -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_hasFrame" hasFrame' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractSpinBox_setFrame" setFrame' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_isGroupSeparatorShown" isGroupSeparatorShown' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractSpinBox_setGroupSeparatorShown" setGroupSeparatorShown' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractSpinBox_setKeyboardTracking" setKeyboardTracking' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_isReadOnly" isReadOnly' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractSpinBox_setReadOnly" setReadOnly' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyFHR.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 M46.QStringConst)
+foreign import ccall "genpop__QAbstractSpinBox_setSpecialValueText" setSpecialValueText' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr M46.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 M46.QStringConst)
+foreign import ccall "genpop__QAbstractSpinBox_wrapping" wrapping' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAbstractSpinBox_setWrapping" setWrapping' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QAbstractSpinBox__QWidget" castQAbstractSpinBoxToQWidget :: HoppyF.Ptr QAbstractSpinBoxConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QAbstractSpinBox" castQWidgetToQAbstractSpinBox :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QAbstractSpinBoxConst
+foreign import ccall "gencast__QAbstractSpinBox__QObject" castQAbstractSpinBoxToQObject :: HoppyF.Ptr QAbstractSpinBoxConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractSpinBox" castQObjectToQAbstractSpinBox :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QAbstractSpinBoxConstPtr a => QAbstractSpinBoxValue a where
+#else
+instance QAbstractSpinBoxConstPtr a => QAbstractSpinBoxValue a where
+#endif
+  withQAbstractSpinBoxPtr = HoppyP.flip ($) . toQAbstractSpinBoxConst
+
+class (M280.QWidgetConstPtr this) => QAbstractSpinBoxConstPtr this where
+  toQAbstractSpinBoxConst :: this -> QAbstractSpinBoxConst
+
+isAccelerated :: (QAbstractSpinBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isAccelerated arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isAccelerated' arg'1')
+
+alignment :: (QAbstractSpinBoxValue arg'1) => arg'1 -> HoppyP.IO M58.QtAlignment
+alignment arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtAlignment
+  (alignment' arg'1')
+
+buttonSymbols :: (QAbstractSpinBoxValue arg'1) => arg'1 -> HoppyP.IO QAbstractSpinBoxButtonSymbols
+buttonSymbols arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (buttonSymbols' arg'1')
+
+correctionMode :: (QAbstractSpinBoxValue arg'1) => arg'1 -> HoppyP.IO QAbstractSpinBoxCorrectionMode
+correctionMode arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (correctionMode' arg'1')
+
+hasAcceptableInput :: (QAbstractSpinBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasAcceptableInput arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasAcceptableInput' arg'1')
+
+fixup :: (QAbstractSpinBoxValue arg'1, M46.QStringPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+fixup arg'1 arg'2 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M46.toQString arg'2) $ \arg'2' ->
+  (fixup' arg'1' arg'2')
+
+hasFrame :: (QAbstractSpinBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasFrame arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasFrame' arg'1')
+
+isGroupSeparatorShown :: (QAbstractSpinBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isGroupSeparatorShown arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isGroupSeparatorShown' arg'1')
+
+keyboardTracking :: (QAbstractSpinBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+keyboardTracking arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (keyboardTracking' arg'1')
+
+isReadOnly :: (QAbstractSpinBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isReadOnly arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isReadOnly' arg'1')
+
+specialValueText :: (QAbstractSpinBoxValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+specialValueText arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (specialValueText' arg'1')
+
+text :: (QAbstractSpinBoxValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+text arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (text' arg'1')
+
+wrapping :: (QAbstractSpinBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+wrapping arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (wrapping' arg'1')
+
+class (QAbstractSpinBoxConstPtr this, M280.QWidgetPtr this) => QAbstractSpinBoxPtr this where
+  toQAbstractSpinBox :: this -> QAbstractSpinBox
+
+setAccelerated :: (QAbstractSpinBoxPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setAccelerated arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setAccelerated' arg'1' arg'2')
+
+setAlignment :: (QAbstractSpinBoxPtr arg'1, M58.IsQtAlignment arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtAlignment $ M58.toQtAlignment arg'2 in
+  (setAlignment' arg'1' arg'2')
+
+setButtonSymbols :: (QAbstractSpinBoxPtr arg'1) => arg'1 -> QAbstractSpinBoxButtonSymbols -> HoppyP.IO ()
+setButtonSymbols arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setButtonSymbols' arg'1' arg'2')
+
+clear :: (QAbstractSpinBoxPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+setCorrectionMode :: (QAbstractSpinBoxPtr arg'1) => arg'1 -> QAbstractSpinBoxCorrectionMode -> HoppyP.IO ()
+setCorrectionMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setCorrectionMode' arg'1' arg'2')
+
+setFrame :: (QAbstractSpinBoxPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setFrame arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setFrame' arg'1' arg'2')
+
+setGroupSeparatorShown :: (QAbstractSpinBoxPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setGroupSeparatorShown arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setGroupSeparatorShown' arg'1' arg'2')
+
+interpretText :: (QAbstractSpinBoxPtr arg'1) => arg'1 -> HoppyP.IO ()
+interpretText arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (interpretText' arg'1')
+
+setKeyboardTracking :: (QAbstractSpinBoxPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setKeyboardTracking arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setKeyboardTracking' arg'1' arg'2')
+
+setReadOnly :: (QAbstractSpinBoxPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setReadOnly arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setReadOnly' arg'1' arg'2')
+
+selectAll :: (QAbstractSpinBoxPtr arg'1) => arg'1 -> HoppyP.IO ()
+selectAll arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (selectAll' arg'1')
+
+setSpecialValueText :: (QAbstractSpinBoxPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setSpecialValueText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSpecialValueText' arg'1' arg'2')
+
+stepBy :: (QAbstractSpinBoxPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+stepBy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (stepBy' arg'1' arg'2')
+
+stepDown :: (QAbstractSpinBoxPtr arg'1) => arg'1 -> HoppyP.IO ()
+stepDown arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (stepDown' arg'1')
+
+stepUp :: (QAbstractSpinBoxPtr arg'1) => arg'1 -> HoppyP.IO ()
+stepUp arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (stepUp' arg'1')
+
+setWrapping :: (QAbstractSpinBoxPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setWrapping arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setWrapping' arg'1' arg'2')
+
+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 M280.QWidgetConstPtr QAbstractSpinBoxConst where
+  toQWidgetConst (QAbstractSpinBoxConst ptr') = M280.QWidgetConst $ castQAbstractSpinBoxToQWidget ptr'
+  toQWidgetConst (QAbstractSpinBoxConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQAbstractSpinBoxToQWidget ptr'
+
+instance M30.QObjectConstPtr QAbstractSpinBoxConst where
+  toQObjectConst (QAbstractSpinBoxConst ptr') = M30.QObjectConst $ castQAbstractSpinBoxToQObject ptr'
+  toQObjectConst (QAbstractSpinBoxConstGc fptr' ptr') = M30.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 M280.QWidgetConstPtr QAbstractSpinBox where
+  toQWidgetConst (QAbstractSpinBox ptr') = M280.QWidgetConst $ castQAbstractSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+  toQWidgetConst (QAbstractSpinBoxGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQAbstractSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+
+instance M280.QWidgetPtr QAbstractSpinBox where
+  toQWidget (QAbstractSpinBox ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQAbstractSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+  toQWidget (QAbstractSpinBoxGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQAbstractSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+
+instance M30.QObjectConstPtr QAbstractSpinBox where
+  toQObjectConst (QAbstractSpinBox ptr') = M30.QObjectConst $ castQAbstractSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+  toQObjectConst (QAbstractSpinBoxGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQAbstractSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+
+instance M30.QObjectPtr QAbstractSpinBox where
+  toQObject (QAbstractSpinBox ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQAbstractSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+  toQObject (QAbstractSpinBoxGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQAbstractSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+
+new ::  HoppyP.IO QAbstractSpinBox
+new =
+  HoppyP.fmap QAbstractSpinBox
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QAbstractSpinBox
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QAbstractSpinBox
+  (newWithParent' arg'1')
+
+class QAbstractSpinBoxSuper a where
+  downToQAbstractSpinBox :: a -> QAbstractSpinBox
+
+instance QAbstractSpinBoxSuper M280.QWidget where
+  downToQAbstractSpinBox = castQAbstractSpinBoxToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QAbstractSpinBoxConst $ castQWidgetToQAbstractSpinBox ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QAbstractSpinBoxConstGc fptr' $ castQWidgetToQAbstractSpinBox ptr'
+instance QAbstractSpinBoxSuper M30.QObject where
+  downToQAbstractSpinBox = castQAbstractSpinBoxToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QAbstractSpinBoxConst $ castQObjectToQAbstractSpinBox ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QAbstractSpinBoxConstGc fptr' $ castQObjectToQAbstractSpinBox ptr'
+
+class QAbstractSpinBoxSuperConst a where
+  downToQAbstractSpinBoxConst :: a -> QAbstractSpinBoxConst
+
+instance QAbstractSpinBoxSuperConst M280.QWidgetConst where
+  downToQAbstractSpinBoxConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QAbstractSpinBoxConst $ castQWidgetToQAbstractSpinBox ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QAbstractSpinBoxConstGc fptr' $ castQWidgetToQAbstractSpinBox ptr'
+instance QAbstractSpinBoxSuperConst M30.QObjectConst where
+  downToQAbstractSpinBoxConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QAbstractSpinBoxConst $ castQObjectToQAbstractSpinBox ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QAbstractSpinBoxButtonSymbols where
+  fromEnum UpDownArrows = 0
+  fromEnum PlusMinus = 1
+  fromEnum NoButtons = 2
+  
+  toEnum (0) = UpDownArrows
+  toEnum (1) = PlusMinus
+  toEnum (2) = NoButtons
+  toEnum n' = HoppyP.error $ "Unknown QAbstractSpinBoxButtonSymbols numeric value: " ++ HoppyP.show n'
+
+data QAbstractSpinBoxCorrectionMode =
+  CorrectToPreviousValue
+  | CorrectToNearestValue
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QAbstractSpinBoxCorrectionMode where
+  fromEnum CorrectToPreviousValue = 0
+  fromEnum CorrectToNearestValue = 1
+  
+  toEnum (0) = CorrectToPreviousValue
+  toEnum (1) = CorrectToNearestValue
+  toEnum n' = HoppyP.error $ "Unknown QAbstractSpinBoxCorrectionMode numeric value: " ++ HoppyP.show n'
+
+newtype QAbstractSpinBoxStepEnabled = QAbstractSpinBoxStepEnabled { fromQAbstractSpinBoxStepEnabled :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQAbstractSpinBoxStepEnabled a where
+  toQAbstractSpinBoxStepEnabled :: a -> QAbstractSpinBoxStepEnabled
+
+instance IsQAbstractSpinBoxStepEnabled (HoppyFC.CInt) where
+  toQAbstractSpinBoxStepEnabled = QAbstractSpinBoxStepEnabled
+instance IsQAbstractSpinBoxStepEnabled (HoppyP.Int) where
+  toQAbstractSpinBoxStepEnabled = QAbstractSpinBoxStepEnabled . HoppyFHR.coerceIntegral
+instance IsQAbstractSpinBoxStepEnabled QAbstractSpinBoxStepEnabled where
+  toQAbstractSpinBoxStepEnabled = HoppyP.id
+
+instance IsQAbstractSpinBoxStepEnabled QAbstractSpinBoxStepEnabledFlag where
+  toQAbstractSpinBoxStepEnabled = QAbstractSpinBoxStepEnabled . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+stepNone = QAbstractSpinBoxStepEnabled 0
+stepUpEnabled = QAbstractSpinBoxStepEnabled 1
+stepDownEnabled = QAbstractSpinBoxStepEnabled 2
+
+data QAbstractSpinBoxStepEnabledFlag =
+  StepNone
+  | StepUpEnabled
+  | StepDownEnabled
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QAbstractSpinBoxStepEnabledFlag where
+  fromEnum StepNone = 0
+  fromEnum StepUpEnabled = 1
+  fromEnum StepDownEnabled = 2
+  
+  toEnum (0) = StepNone
+  toEnum (1) = StepUpEnabled
+  toEnum (2) = StepDownEnabled
+  toEnum n' = HoppyP.error $ "Unknown QAbstractSpinBoxStepEnabledFlag numeric value: " ++ HoppyP.show n'
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,554 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QAction (
+  castQActionToQObject,
+  castQObjectToQAction,
+  QActionValue (..),
+  QActionConstPtr (..),
+  actionGroup,
+  autoRepeat,
+  isCheckable,
+  isChecked,
+  isEnabled,
+  iconText,
+  isIconVisibleInMenu,
+  menu,
+  menuRole,
+  parentWidget,
+  priority,
+  isSeparator,
+  statusTip,
+  text,
+  toolTip,
+  isVisible,
+  whatsThis,
+  QActionPtr (..),
+  setActionGroup,
+  activate,
+  setAutoRepeat,
+  setCheckable,
+  setChecked,
+  setEnabled,
+  hover,
+  setIconText,
+  setIconVisibleInMenu,
+  setMenu,
+  setMenuRole,
+  setSeparator,
+  setDisabled,
+  setPriority,
+  showStatusText,
+  setStatusTip,
+  setText,
+  toggle,
+  setToolTip,
+  trigger,
+  setVisible,
+  setWhatsThis,
+  QActionConst (..),
+  castQActionToConst,
+  QAction (..),
+  castQActionToNonconst,
+  new,
+  newWithText,
+  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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QActionGroup as M176
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QMenu as M238
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Prelude (($), (++), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QAction_new" new' ::  HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr QAction)
+foreign import ccall "genpop__QAction_newWithText" newWithText' ::  HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr QAction)
+foreign import ccall "genpop__QAction_actionGroup" actionGroup' ::  HoppyF.Ptr QActionConst -> HoppyP.IO (HoppyF.Ptr M176.QActionGroup)
+foreign import ccall "genpop__QAction_setActionGroup" setActionGroup' ::  HoppyF.Ptr QAction -> HoppyF.Ptr M176.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 HoppyFHR.CBool
+foreign import ccall "genpop__QAction_setAutoRepeat" setAutoRepeat' ::  HoppyF.Ptr QAction -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_isCheckable" isCheckable' ::  HoppyF.Ptr QActionConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAction_setCheckable" setCheckable' ::  HoppyF.Ptr QAction -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_isChecked" isChecked' ::  HoppyF.Ptr QActionConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAction_setChecked" setChecked' ::  HoppyF.Ptr QAction -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_isEnabled" isEnabled' ::  HoppyF.Ptr QActionConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAction_setEnabled" setEnabled' ::  HoppyF.Ptr QAction -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_hover" hover' ::  HoppyF.Ptr QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_iconText" iconText' ::  HoppyF.Ptr QActionConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QAction_setIconText" setIconText' ::  HoppyF.Ptr QAction -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_isIconVisibleInMenu" isIconVisibleInMenu' ::  HoppyF.Ptr QActionConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAction_setIconVisibleInMenu" setIconVisibleInMenu' ::  HoppyF.Ptr QAction -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_menu" menu' ::  HoppyF.Ptr QActionConst -> HoppyP.IO (HoppyF.Ptr M238.QMenu)
+foreign import ccall "genpop__QAction_setMenu" setMenu' ::  HoppyF.Ptr QAction -> HoppyF.Ptr M238.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 M280.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 HoppyFHR.CBool
+foreign import ccall "genpop__QAction_setSeparator" setSeparator' ::  HoppyF.Ptr QAction -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_setDisabled" setDisabled' ::  HoppyF.Ptr QAction -> HoppyFHR.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 M280.QWidget -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QAction_statusTip" statusTip' ::  HoppyF.Ptr QActionConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QAction_setStatusTip" setStatusTip' ::  HoppyF.Ptr QAction -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_text" text' ::  HoppyF.Ptr QActionConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QAction_setText" setText' ::  HoppyF.Ptr QAction -> HoppyF.Ptr M46.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 M46.QStringConst)
+foreign import ccall "genpop__QAction_setToolTip" setToolTip' ::  HoppyF.Ptr QAction -> HoppyF.Ptr M46.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 HoppyFHR.CBool
+foreign import ccall "genpop__QAction_setVisible" setVisible' ::  HoppyF.Ptr QAction -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_whatsThis" whatsThis' ::  HoppyF.Ptr QActionConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QAction_setWhatsThis" setWhatsThis' ::  HoppyF.Ptr QAction -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "gencast__QAction__QObject" castQActionToQObject :: HoppyF.Ptr QActionConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QAction" castQObjectToQAction :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QActionConstPtr a => QActionValue a where
+#else
+instance QActionConstPtr a => QActionValue a where
+#endif
+  withQActionPtr = HoppyP.flip ($) . toQActionConst
+
+class (M30.QObjectConstPtr this) => QActionConstPtr this where
+  toQActionConst :: this -> QActionConst
+
+actionGroup :: (QActionValue arg'1) => arg'1 -> HoppyP.IO M176.QActionGroup
+actionGroup arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M176.QActionGroup
+  (actionGroup' arg'1')
+
+autoRepeat :: (QActionValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+autoRepeat arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (autoRepeat' arg'1')
+
+isCheckable :: (QActionValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isCheckable arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isCheckable' arg'1')
+
+isChecked :: (QActionValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isChecked arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isChecked' arg'1')
+
+isEnabled :: (QActionValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEnabled arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEnabled' arg'1')
+
+iconText :: (QActionValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+iconText arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (iconText' arg'1')
+
+isIconVisibleInMenu :: (QActionValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isIconVisibleInMenu arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isIconVisibleInMenu' arg'1')
+
+menu :: (QActionValue arg'1) => arg'1 -> HoppyP.IO M238.QMenu
+menu arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M238.QMenu
+  (menu' arg'1')
+
+menuRole :: (QActionValue arg'1) => arg'1 -> HoppyP.IO QActionMenuRole
+menuRole arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (menuRole' arg'1')
+
+parentWidget :: (QActionValue arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+parentWidget arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (parentWidget' arg'1')
+
+priority :: (QActionValue arg'1) => arg'1 -> HoppyP.IO QActionPriority
+priority arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (priority' arg'1')
+
+isSeparator :: (QActionValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isSeparator arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isSeparator' arg'1')
+
+statusTip :: (QActionValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+statusTip arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (statusTip' arg'1')
+
+text :: (QActionValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+text arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (text' arg'1')
+
+toolTip :: (QActionValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+toolTip arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (toolTip' arg'1')
+
+isVisible :: (QActionValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isVisible arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isVisible' arg'1')
+
+whatsThis :: (QActionValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+whatsThis arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (whatsThis' arg'1')
+
+class (QActionConstPtr this, M30.QObjectPtr this) => QActionPtr this where
+  toQAction :: this -> QAction
+
+setActionGroup :: (QActionPtr arg'1, M176.QActionGroupPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setActionGroup arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M176.toQActionGroup arg'2) $ \arg'2' ->
+  (setActionGroup' arg'1' arg'2')
+
+activate :: (QActionPtr arg'1) => arg'1 -> QActionActionEvent -> HoppyP.IO ()
+activate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (activate' arg'1' arg'2')
+
+setAutoRepeat :: (QActionPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setAutoRepeat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setAutoRepeat' arg'1' arg'2')
+
+setCheckable :: (QActionPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setCheckable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setCheckable' arg'1' arg'2')
+
+setChecked :: (QActionPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setChecked arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setChecked' arg'1' arg'2')
+
+setEnabled :: (QActionPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setEnabled' arg'1' arg'2')
+
+hover :: (QActionPtr arg'1) => arg'1 -> HoppyP.IO ()
+hover arg'1 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (hover' arg'1')
+
+setIconText :: (QActionPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setIconText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIconText' arg'1' arg'2')
+
+setIconVisibleInMenu :: (QActionPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setIconVisibleInMenu arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setIconVisibleInMenu' arg'1' arg'2')
+
+setMenu :: (QActionPtr arg'1, M238.QMenuPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setMenu arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M238.toQMenu arg'2) $ \arg'2' ->
+  (setMenu' arg'1' arg'2')
+
+setMenuRole :: (QActionPtr arg'1) => arg'1 -> QActionMenuRole -> HoppyP.IO ()
+setMenuRole arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setMenuRole' arg'1' arg'2')
+
+setSeparator :: (QActionPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setSeparator arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setSeparator' arg'1' arg'2')
+
+setDisabled :: (QActionPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setDisabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setDisabled' arg'1' arg'2')
+
+setPriority :: (QActionPtr arg'1) => arg'1 -> QActionPriority -> HoppyP.IO ()
+setPriority arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setPriority' arg'1' arg'2')
+
+showStatusText :: (QActionPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+showStatusText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (showStatusText' arg'1' arg'2')
+
+setStatusTip :: (QActionPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setStatusTip arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setStatusTip' arg'1' arg'2')
+
+setText :: (QActionPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setText' arg'1' arg'2')
+
+toggle :: (QActionPtr arg'1) => arg'1 -> HoppyP.IO ()
+toggle arg'1 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (toggle' arg'1')
+
+setToolTip :: (QActionPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setToolTip arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToolTip' arg'1' arg'2')
+
+trigger :: (QActionPtr arg'1) => arg'1 -> HoppyP.IO ()
+trigger arg'1 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (trigger' arg'1')
+
+setVisible :: (QActionPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setVisible' arg'1' arg'2')
+
+setWhatsThis :: (QActionPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setWhatsThis arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWhatsThis' 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 M30.QObjectConstPtr QActionConst where
+  toQObjectConst (QActionConst ptr') = M30.QObjectConst $ castQActionToQObject ptr'
+  toQObjectConst (QActionConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr QAction where
+  toQObjectConst (QAction ptr') = M30.QObjectConst $ castQActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAction -> HoppyF.Ptr QActionConst) ptr'
+  toQObjectConst (QActionGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAction -> HoppyF.Ptr QActionConst) ptr'
+
+instance M30.QObjectPtr QAction where
+  toQObject (QAction ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAction -> HoppyF.Ptr QActionConst) ptr'
+  toQObject (QActionGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAction -> HoppyF.Ptr QActionConst) ptr'
+
+new :: (M30.QObjectPtr arg'1) => arg'1 -> HoppyP.IO QAction
+new arg'1 =
+  HoppyFHR.withCppPtr (M30.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QAction
+  (new' arg'1')
+
+newWithText :: (M46.QStringValue arg'1, M30.QObjectPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QAction
+newWithText arg'1 arg'2 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap QAction
+  (newWithText' arg'1' arg'2')
+
+class QActionSuper a where
+  downToQAction :: a -> QAction
+
+instance QActionSuper M30.QObject where
+  downToQAction = castQActionToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QActionConst $ castQObjectToQAction ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QActionConstGc fptr' $ castQObjectToQAction ptr'
+
+class QActionSuperConst a where
+  downToQActionConst :: a -> QActionConst
+
+instance QActionSuperConst M30.QObjectConst where
+  downToQActionConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QActionConst $ castQObjectToQAction ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QActionActionEvent where
+  fromEnum Trigger = 0
+  fromEnum Hover = 1
+  
+  toEnum (0) = Trigger
+  toEnum (1) = Hover
+  toEnum n' = HoppyP.error $ "Unknown QActionActionEvent numeric value: " ++ HoppyP.show n'
+
+data QActionMenuRole =
+  NoRole
+  | TextHeuristicRole
+  | ApplicationSpecificRole
+  | AboutQtRole
+  | AboutRole
+  | PreferencesRole
+  | QuitRole
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QActionMenuRole where
+  fromEnum NoRole = 0
+  fromEnum TextHeuristicRole = 1
+  fromEnum ApplicationSpecificRole = 2
+  fromEnum AboutQtRole = 3
+  fromEnum AboutRole = 4
+  fromEnum PreferencesRole = 5
+  fromEnum QuitRole = 6
+  
+  toEnum (0) = NoRole
+  toEnum (1) = TextHeuristicRole
+  toEnum (2) = ApplicationSpecificRole
+  toEnum (3) = AboutQtRole
+  toEnum (4) = AboutRole
+  toEnum (5) = PreferencesRole
+  toEnum (6) = QuitRole
+  toEnum n' = HoppyP.error $ "Unknown QActionMenuRole numeric value: " ++ HoppyP.show n'
+
+data QActionPriority =
+  LowPriority
+  | NormalPriority
+  | HighPriority
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QActionPriority where
+  fromEnum LowPriority = 0
+  fromEnum NormalPriority = 128
+  fromEnum HighPriority = 256
+  
+  toEnum (0) = LowPriority
+  toEnum (128) = NormalPriority
+  toEnum (256) = HighPriority
+  toEnum n' = HoppyP.error $ "Unknown QActionPriority numeric value: " ++ HoppyP.show n'
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,95 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Prelude as HoppyP
+
+
+class QActionValue a where
+  withQActionPtr :: a -> (QActionConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QActionConstPtr a => QActionValue a
+#else
+instance QActionConstPtr a => QActionValue a
+#endif
+
+class (M30.QObjectConstPtr this) => QActionConstPtr this where
+  toQActionConst :: this -> QActionConst
+
+class (QActionConstPtr this, M30.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 M30.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 M30.QObjectConstPtr QAction
+
+instance M30.QObjectPtr QAction
+castQActionToQObject :: HoppyF.Ptr QActionConst -> HoppyF.Ptr M30.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAction)) QAction
+
+data QActionActionEvent
+instance HoppyP.Bounded QActionActionEvent
+instance HoppyP.Enum QActionActionEvent
+instance HoppyP.Eq QActionActionEvent
+instance HoppyP.Ord QActionActionEvent
+instance HoppyP.Show QActionActionEvent
+
+data QActionMenuRole
+instance HoppyP.Bounded QActionMenuRole
+instance HoppyP.Enum QActionMenuRole
+instance HoppyP.Eq QActionMenuRole
+instance HoppyP.Ord QActionMenuRole
+instance HoppyP.Show QActionMenuRole
+
+data QActionPriority
+instance HoppyP.Bounded QActionPriority
+instance HoppyP.Enum 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,261 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QActionGroup (
+  castQActionGroupToQObject,
+  castQObjectToQActionGroup,
+  QActionGroupValue (..),
+  QActionGroupConstPtr (..),
+  checkedAction,
+  isEnabled,
+  isExclusive,
+  isVisible,
+  QActionGroupPtr (..),
+  addAction,
+  addNewAction,
+  setEnabled,
+  setExclusive,
+  removeAction,
+  setDisabled,
+  setVisible,
+  QActionGroupConst (..),
+  castQActionGroupToConst,
+  QActionGroup (..),
+  castQActionGroupToNonconst,
+  new,
+  QActionGroupSuper (..),
+  QActionGroupSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M174
+import Prelude (($), (.), (/=), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QActionGroup_new" new' ::  HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr QActionGroup)
+foreign import ccall "genpop__QActionGroup_addAction" addAction' ::  HoppyF.Ptr QActionGroup -> HoppyF.Ptr M174.QAction -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QActionGroup_addNewAction" addNewAction' ::  HoppyF.Ptr QActionGroup -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QActionGroup_checkedAction" checkedAction' ::  HoppyF.Ptr QActionGroupConst -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QActionGroup_isEnabled" isEnabled' ::  HoppyF.Ptr QActionGroupConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QActionGroup_setEnabled" setEnabled' ::  HoppyF.Ptr QActionGroup -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QActionGroup_isExclusive" isExclusive' ::  HoppyF.Ptr QActionGroupConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QActionGroup_setExclusive" setExclusive' ::  HoppyF.Ptr QActionGroup -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QActionGroup_removeAction" removeAction' ::  HoppyF.Ptr QActionGroup -> HoppyF.Ptr M174.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QActionGroup_setDisabled" setDisabled' ::  HoppyF.Ptr QActionGroup -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QActionGroup_isVisible" isVisible' ::  HoppyF.Ptr QActionGroupConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QActionGroup_setVisible" setVisible' ::  HoppyF.Ptr QActionGroup -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QActionGroup__QObject" castQActionGroupToQObject :: HoppyF.Ptr QActionGroupConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QActionGroup" castQObjectToQActionGroup :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QActionGroupConstPtr a => QActionGroupValue a where
+#else
+instance QActionGroupConstPtr a => QActionGroupValue a where
+#endif
+  withQActionGroupPtr = HoppyP.flip ($) . toQActionGroupConst
+
+class (M30.QObjectConstPtr this) => QActionGroupConstPtr this where
+  toQActionGroupConst :: this -> QActionGroupConst
+
+checkedAction :: (QActionGroupValue arg'1) => arg'1 -> HoppyP.IO M174.QAction
+checkedAction arg'1 =
+  withQActionGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M174.QAction
+  (checkedAction' arg'1')
+
+isEnabled :: (QActionGroupValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEnabled arg'1 =
+  withQActionGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEnabled' arg'1')
+
+isExclusive :: (QActionGroupValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isExclusive arg'1 =
+  withQActionGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isExclusive' arg'1')
+
+isVisible :: (QActionGroupValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isVisible arg'1 =
+  withQActionGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isVisible' arg'1')
+
+class (QActionGroupConstPtr this, M30.QObjectPtr this) => QActionGroupPtr this where
+  toQActionGroup :: this -> QActionGroup
+
+addAction :: (QActionGroupPtr arg'1, M174.QActionPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO M174.QAction
+addAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQActionGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  HoppyP.fmap M174.QAction
+  (addAction' arg'1' arg'2')
+
+addNewAction :: (QActionGroupPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M174.QAction
+addNewAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQActionGroup arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M174.QAction
+  (addNewAction' arg'1' arg'2')
+
+setEnabled :: (QActionGroupPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQActionGroup arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setEnabled' arg'1' arg'2')
+
+setExclusive :: (QActionGroupPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setExclusive arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQActionGroup arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setExclusive' arg'1' arg'2')
+
+removeAction :: (QActionGroupPtr arg'1, M174.QActionPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+removeAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQActionGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  (removeAction' arg'1' arg'2')
+
+setDisabled :: (QActionGroupPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setDisabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQActionGroup arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setDisabled' arg'1' arg'2')
+
+setVisible :: (QActionGroupPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQActionGroup arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setVisible' 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 M30.QObjectConstPtr QActionGroupConst where
+  toQObjectConst (QActionGroupConst ptr') = M30.QObjectConst $ castQActionGroupToQObject ptr'
+  toQObjectConst (QActionGroupConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr QActionGroup where
+  toQObjectConst (QActionGroup ptr') = M30.QObjectConst $ castQActionGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QActionGroup -> HoppyF.Ptr QActionGroupConst) ptr'
+  toQObjectConst (QActionGroupGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQActionGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QActionGroup -> HoppyF.Ptr QActionGroupConst) ptr'
+
+instance M30.QObjectPtr QActionGroup where
+  toQObject (QActionGroup ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQActionGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QActionGroup -> HoppyF.Ptr QActionGroupConst) ptr'
+  toQObject (QActionGroupGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQActionGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QActionGroup -> HoppyF.Ptr QActionGroupConst) ptr'
+
+new :: (M30.QObjectPtr arg'1) => arg'1 -> HoppyP.IO QActionGroup
+new arg'1 =
+  HoppyFHR.withCppPtr (M30.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QActionGroup
+  (new' arg'1')
+
+class QActionGroupSuper a where
+  downToQActionGroup :: a -> QActionGroup
+
+instance QActionGroupSuper M30.QObject where
+  downToQActionGroup = castQActionGroupToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QActionGroupConst $ castQObjectToQActionGroup ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QActionGroupConstGc fptr' $ castQObjectToQActionGroup ptr'
+
+class QActionGroupSuperConst a where
+  downToQActionGroupConst :: a -> QActionGroupConst
+
+instance QActionGroupSuperConst M30.QObjectConst where
+  downToQActionGroupConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QActionGroupConst $ castQObjectToQActionGroup ptr'
+      cast' (M30.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,71 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Prelude as HoppyP
+
+
+class QActionGroupValue a where
+  withQActionGroupPtr :: a -> (QActionGroupConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QActionGroupConstPtr a => QActionGroupValue a
+#else
+instance QActionGroupConstPtr a => QActionGroupValue a
+#endif
+
+class (M30.QObjectConstPtr this) => QActionGroupConstPtr this where
+  toQActionGroupConst :: this -> QActionGroupConst
+
+class (QActionGroupConstPtr this, M30.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 M30.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 M30.QObjectConstPtr QActionGroup
+
+instance M30.QObjectPtr QActionGroup
+castQActionGroupToQObject :: HoppyF.Ptr QActionGroupConst -> HoppyF.Ptr M30.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,550 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  QApplicationPtr (..),
+  setAutoSipEnabled,
+  setStartDragDistance,
+  setStartDragTime,
+  setStyleSheet,
+  new,
+  aboutQt,
+  activeModalWidget,
+  activePopupWidget,
+  activeWindow,
+  setActiveWindow,
+  alert,
+  allWidgets,
+  beep,
+  clipboard,
+  closeAllWindows,
+  colorSpec,
+  setColorSpec,
+  cursorFlashTime,
+  setCursorFlashTime,
+  desktopSettingsAware,
+  setDesktopSettingsAware,
+  doubleClickInterval,
+  setDoubleClickInterval,
+  focusWidget,
+  globalStrut,
+  setGlobalStrut,
+  isLeftToRight,
+  isRightToLeft,
+  keyboardInputInterval,
+  layoutDirection,
+  quitOnLastWindowClosed,
+  restoreOverrideCursor,
+  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 M12
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QWidget as M74
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M42
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M48
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QClipboard as M88
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Prelude (($), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QApplication_new" new' ::  HoppyF.Ptr M48.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 M280.QWidget)
+foreign import ccall "genpop__QApplication_activePopupWidget" activePopupWidget' ::  HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "genpop__QApplication_activeWindow" activeWindow' ::  HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "genpop__QApplication_setActiveWindow" setActiveWindow' ::  HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_alert" alert' ::  HoppyF.Ptr M280.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_allWidgets" allWidgets' ::  HoppyP.IO (HoppyF.Ptr M74.QListQWidgetConst)
+foreign import ccall "genpop__QApplication_autoSipEnabled" autoSipEnabled' ::  HoppyF.Ptr QApplicationConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QApplication_setAutoSipEnabled" setAutoSipEnabled' ::  HoppyF.Ptr QApplication -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_beep" beep' ::  HoppyP.IO ()
+foreign import ccall "genpop__QApplication_clipboard" clipboard' ::  HoppyP.IO (HoppyF.Ptr M88.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 HoppyFHR.CBool
+foreign import ccall "genpop__QApplication_setDesktopSettingsAware" setDesktopSettingsAware' ::  HoppyFHR.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 M280.QWidget)
+foreign import ccall "genpop__QApplication_globalStrut" globalStrut' ::  HoppyP.IO (HoppyF.Ptr M42.QSizeConst)
+foreign import ccall "genpop__QApplication_setGlobalStrut" setGlobalStrut' ::  HoppyF.Ptr M42.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_isLeftToRight" isLeftToRight' ::  HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QApplication_isRightToLeft" isRightToLeft' ::  HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QApplication_isSessionRestored" isSessionRestored' ::  HoppyF.Ptr QApplicationConst -> HoppyP.IO HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QApplication_restoreOverrideCursor" restoreOverrideCursor' ::  HoppyP.IO ()
+foreign import ccall "genpop__QApplication_sessionId" sessionId' ::  HoppyF.Ptr QApplicationConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QApplication_sessionKey" sessionKey' ::  HoppyF.Ptr QApplicationConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+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' ::  HoppyFHR.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 M46.QStringConst)
+foreign import ccall "genpop__QApplication_setStyleSheet" setStyleSheet' ::  HoppyF.Ptr QApplication -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_topLevelAtPoint" topLevelAtPoint' ::  HoppyF.Ptr M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "genpop__QApplication_topLevelAtRaw" topLevelAtRaw' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M280.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 M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "genpop__QApplication_widgetAtRaw" widgetAtRaw' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "gencast__QApplication__QCoreApplication" castQApplicationToQCoreApplication :: HoppyF.Ptr QApplicationConst -> HoppyF.Ptr M12.QCoreApplicationConst
+foreign import ccall "gencast__QCoreApplication__QApplication" castQCoreApplicationToQApplication :: HoppyF.Ptr M12.QCoreApplicationConst -> HoppyF.Ptr QApplicationConst
+foreign import ccall "gencast__QApplication__QObject" castQApplicationToQObject :: HoppyF.Ptr QApplicationConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QApplication" castQObjectToQApplication :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QApplicationConstPtr a => QApplicationValue a where
+#else
+instance QApplicationConstPtr a => QApplicationValue a where
+#endif
+  withQApplicationPtr = HoppyP.flip ($) . toQApplicationConst
+
+class (M12.QCoreApplicationConstPtr this) => QApplicationConstPtr this where
+  toQApplicationConst :: this -> QApplicationConst
+
+autoSipEnabled :: (QApplicationValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+autoSipEnabled arg'1 =
+  withQApplicationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (autoSipEnabled' arg'1')
+
+isSessionRestored :: (QApplicationValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isSessionRestored arg'1 =
+  withQApplicationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isSessionRestored' arg'1')
+
+sessionId :: (QApplicationValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+sessionId arg'1 =
+  withQApplicationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (sessionId' arg'1')
+
+sessionKey :: (QApplicationValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+sessionKey arg'1 =
+  withQApplicationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (sessionKey' arg'1')
+
+startDragDistance :: (QApplicationValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+startDragDistance arg'1 =
+  withQApplicationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (startDragDistance' arg'1')
+
+startDragTime :: (QApplicationValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+startDragTime arg'1 =
+  withQApplicationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (startDragTime' arg'1')
+
+styleSheet :: (QApplicationValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+styleSheet arg'1 =
+  withQApplicationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (styleSheet' arg'1')
+
+class (QApplicationConstPtr this, M12.QCoreApplicationPtr this) => QApplicationPtr this where
+  toQApplication :: this -> QApplication
+
+setAutoSipEnabled :: (QApplicationPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setAutoSipEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQApplication arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setAutoSipEnabled' arg'1' arg'2')
+
+setStartDragDistance :: (QApplicationPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setStartDragDistance arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQApplication arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setStartDragDistance' arg'1' arg'2')
+
+setStartDragTime :: (QApplicationPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setStartDragTime arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQApplication arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setStartDragTime' arg'1' arg'2')
+
+setStyleSheet :: (QApplicationPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setStyleSheet arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQApplication arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setStyleSheet' arg'1' arg'2')
+
+new :: (M48.QStringListValue arg'1) => arg'1 -> HoppyP.IO QApplication
+new arg'1 =
+  M48.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QApplication
+  (new' arg'1')
+
+aboutQt ::  HoppyP.IO ()
+aboutQt =
+  (aboutQt')
+
+activeModalWidget ::  HoppyP.IO M280.QWidget
+activeModalWidget =
+  HoppyP.fmap M280.QWidget
+  (activeModalWidget')
+
+activePopupWidget ::  HoppyP.IO M280.QWidget
+activePopupWidget =
+  HoppyP.fmap M280.QWidget
+  (activePopupWidget')
+
+activeWindow ::  HoppyP.IO M280.QWidget
+activeWindow =
+  HoppyP.fmap M280.QWidget
+  (activeWindow')
+
+setActiveWindow :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+setActiveWindow arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  (setActiveWindow' arg'1')
+
+alert :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+alert arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (alert' arg'1' arg'2')
+
+allWidgets ::  HoppyP.IO [M280.QWidget]
+allWidgets =
+  (HoppyFHR.decodeAndDelete . M74.QListQWidgetConst) =<<
+  (allWidgets')
+
+beep ::  HoppyP.IO ()
+beep =
+  (beep')
+
+clipboard ::  HoppyP.IO M88.QClipboard
+clipboard =
+  HoppyP.fmap M88.QClipboard
+  (clipboard')
+
+closeAllWindows ::  HoppyP.IO ()
+closeAllWindows =
+  (closeAllWindows')
+
+colorSpec ::  HoppyP.IO HoppyP.Int
+colorSpec =
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (colorSpec')
+
+setColorSpec ::  HoppyP.Int -> HoppyP.IO ()
+setColorSpec arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  (setColorSpec' arg'1')
+
+cursorFlashTime ::  HoppyP.IO HoppyP.Int
+cursorFlashTime =
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (cursorFlashTime')
+
+setCursorFlashTime ::  HoppyP.Int -> HoppyP.IO ()
+setCursorFlashTime arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  (setCursorFlashTime' arg'1')
+
+desktopSettingsAware ::  HoppyP.IO HoppyP.Bool
+desktopSettingsAware =
+  HoppyP.fmap (/= 0)
+  (desktopSettingsAware')
+
+setDesktopSettingsAware ::  HoppyP.Bool -> HoppyP.IO ()
+setDesktopSettingsAware arg'1 =
+  let arg'1' = if arg'1 then 1 else 0 in
+  (setDesktopSettingsAware' arg'1')
+
+doubleClickInterval ::  HoppyP.IO HoppyP.Int
+doubleClickInterval =
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (doubleClickInterval')
+
+setDoubleClickInterval ::  HoppyP.Int -> HoppyP.IO ()
+setDoubleClickInterval arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  (setDoubleClickInterval' arg'1')
+
+focusWidget ::  HoppyP.IO M280.QWidget
+focusWidget =
+  HoppyP.fmap M280.QWidget
+  (focusWidget')
+
+globalStrut ::  HoppyP.IO HSize.HSize
+globalStrut =
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (globalStrut')
+
+setGlobalStrut :: (M42.QSizeValue arg'1) => arg'1 -> HoppyP.IO ()
+setGlobalStrut arg'1 =
+  M42.withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (setGlobalStrut' arg'1')
+
+isLeftToRight ::  HoppyP.IO HoppyP.Bool
+isLeftToRight =
+  HoppyP.fmap (/= 0)
+  (isLeftToRight')
+
+isRightToLeft ::  HoppyP.IO HoppyP.Bool
+isRightToLeft =
+  HoppyP.fmap (/= 0)
+  (isRightToLeft')
+
+keyboardInputInterval ::  HoppyP.IO HoppyP.Int
+keyboardInputInterval =
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (keyboardInputInterval')
+
+layoutDirection ::  HoppyP.IO M58.QtLayoutDirection
+layoutDirection =
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (layoutDirection')
+
+quitOnLastWindowClosed ::  HoppyP.IO HoppyP.Bool
+quitOnLastWindowClosed =
+  HoppyP.fmap (/= 0)
+  (quitOnLastWindowClosed')
+
+restoreOverrideCursor ::  HoppyP.IO ()
+restoreOverrideCursor =
+  (restoreOverrideCursor')
+
+setKeyboardInputInterval ::  HoppyP.Int -> HoppyP.IO ()
+setKeyboardInputInterval arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  (setKeyboardInputInterval' arg'1')
+
+setLayoutDirection ::  M58.QtLayoutDirection -> HoppyP.IO ()
+setLayoutDirection arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  (setLayoutDirection' arg'1')
+
+setQuitOnLastWindowClosed ::  HoppyP.Bool -> HoppyP.IO ()
+setQuitOnLastWindowClosed arg'1 =
+  let arg'1' = if arg'1 then 1 else 0 in
+  (setQuitOnLastWindowClosed' arg'1')
+
+topLevelAtPoint :: (M34.QPointValue arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+topLevelAtPoint arg'1 =
+  M34.withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (topLevelAtPoint' arg'1')
+
+topLevelAtRaw ::  HoppyP.Int -> HoppyP.Int -> HoppyP.IO M280.QWidget
+topLevelAtRaw arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M280.QWidget
+  (topLevelAtRaw' arg'1' arg'2')
+
+wheelScrollLines ::  HoppyP.IO HoppyP.Int
+wheelScrollLines =
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (wheelScrollLines')
+
+setWheelScrollLines ::  HoppyP.Int -> HoppyP.IO ()
+setWheelScrollLines arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  (setWheelScrollLines' arg'1')
+
+widgetAtPoint :: (M34.QPointValue arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+widgetAtPoint arg'1 =
+  M34.withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (widgetAtPoint' arg'1')
+
+widgetAtRaw ::  HoppyP.Int -> HoppyP.Int -> HoppyP.IO M280.QWidget
+widgetAtRaw arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M280.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 M12.QCoreApplicationConstPtr QApplicationConst where
+  toQCoreApplicationConst (QApplicationConst ptr') = M12.QCoreApplicationConst $ castQApplicationToQCoreApplication ptr'
+  toQCoreApplicationConst (QApplicationConstGc fptr' ptr') = M12.QCoreApplicationConstGc fptr' $ castQApplicationToQCoreApplication ptr'
+
+instance M30.QObjectConstPtr QApplicationConst where
+  toQObjectConst (QApplicationConst ptr') = M30.QObjectConst $ castQApplicationToQObject ptr'
+  toQObjectConst (QApplicationConstGc fptr' ptr') = M30.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 M12.QCoreApplicationConstPtr QApplication where
+  toQCoreApplicationConst (QApplication ptr') = M12.QCoreApplicationConst $ castQApplicationToQCoreApplication $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+  toQCoreApplicationConst (QApplicationGc fptr' ptr') = M12.QCoreApplicationConstGc fptr' $ castQApplicationToQCoreApplication $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+
+instance M12.QCoreApplicationPtr QApplication where
+  toQCoreApplication (QApplication ptr') = M12.QCoreApplication $ (HoppyF.castPtr :: HoppyF.Ptr M12.QCoreApplicationConst -> HoppyF.Ptr M12.QCoreApplication) $ castQApplicationToQCoreApplication $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+  toQCoreApplication (QApplicationGc fptr' ptr') = M12.QCoreApplicationGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M12.QCoreApplicationConst -> HoppyF.Ptr M12.QCoreApplication) $ castQApplicationToQCoreApplication $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+
+instance M30.QObjectConstPtr QApplication where
+  toQObjectConst (QApplication ptr') = M30.QObjectConst $ castQApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+  toQObjectConst (QApplicationGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+
+instance M30.QObjectPtr QApplication where
+  toQObject (QApplication ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+  toQObject (QApplicationGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+
+class QApplicationSuper a where
+  downToQApplication :: a -> QApplication
+
+instance QApplicationSuper M12.QCoreApplication where
+  downToQApplication = castQApplicationToNonconst . cast' . M12.castQCoreApplicationToConst
+    where
+      cast' (M12.QCoreApplicationConst ptr') = QApplicationConst $ castQCoreApplicationToQApplication ptr'
+      cast' (M12.QCoreApplicationConstGc fptr' ptr') = QApplicationConstGc fptr' $ castQCoreApplicationToQApplication ptr'
+instance QApplicationSuper M30.QObject where
+  downToQApplication = castQApplicationToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QApplicationConst $ castQObjectToQApplication ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QApplicationConstGc fptr' $ castQObjectToQApplication ptr'
+
+class QApplicationSuperConst a where
+  downToQApplicationConst :: a -> QApplicationConst
+
+instance QApplicationSuperConst M12.QCoreApplicationConst where
+  downToQApplicationConst = cast'
+    where
+      cast' (M12.QCoreApplicationConst ptr') = QApplicationConst $ castQCoreApplicationToQApplication ptr'
+      cast' (M12.QCoreApplicationConstGc fptr' ptr') = QApplicationConstGc fptr' $ castQCoreApplicationToQApplication ptr'
+instance QApplicationSuperConst M30.QObjectConst where
+  downToQApplicationConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QApplicationConst $ castQObjectToQApplication ptr'
+      cast' (M30.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,466 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayout as M228
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M230
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Prelude (($), (++), (.), (/=), (==))
+import qualified Prelude as HoppyP
+
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QBoxLayout)
+foreign import ccall "genpop__QBoxLayout_addLayout" addLayout' ::  HoppyF.Ptr QBoxLayout -> HoppyF.Ptr M228.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_addLayoutWithStretch" addLayoutWithStretch' ::  HoppyF.Ptr QBoxLayout -> HoppyF.Ptr M228.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 M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_addWidgetWithStretch" addWidgetWithStretch' ::  HoppyF.Ptr QBoxLayout -> HoppyF.Ptr M280.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_addWidgetWithStretchAndAlignment" addWidgetWithStretchAndAlignment' ::  HoppyF.Ptr QBoxLayout -> HoppyF.Ptr M280.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 M228.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_insertLayoutWithStretch" insertLayoutWithStretch' ::  HoppyF.Ptr QBoxLayout -> HoppyFC.CInt -> HoppyF.Ptr M228.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 M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_insertWidgetWithStretch" insertWidgetWithStretch' ::  HoppyF.Ptr QBoxLayout -> HoppyFC.CInt -> HoppyF.Ptr M280.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_insertWidgetWithStretchAndAlignment" insertWidgetWithStretchAndAlignment' ::  HoppyF.Ptr QBoxLayout -> HoppyFC.CInt -> HoppyF.Ptr M280.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 M280.QWidget -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QBoxLayout_setLayoutStretchFactor" setLayoutStretchFactor' ::  HoppyF.Ptr QBoxLayout -> HoppyF.Ptr M228.QLayout -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.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 M228.QLayoutConst
+foreign import ccall "gencast__QLayout__QBoxLayout" castQLayoutToQBoxLayout :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr QBoxLayoutConst
+foreign import ccall "gencast__QBoxLayout__QObject" castQBoxLayoutToQObject :: HoppyF.Ptr QBoxLayoutConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QBoxLayout" castQObjectToQBoxLayout :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr QBoxLayoutConst
+foreign import ccall "gencast__QBoxLayout__QLayoutItem" castQBoxLayoutToQLayoutItem :: HoppyF.Ptr QBoxLayoutConst -> HoppyF.Ptr M230.QLayoutItemConst
+foreign import ccall "gencast__QLayoutItem__QBoxLayout" castQLayoutItemToQBoxLayout :: HoppyF.Ptr M230.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QBoxLayoutConstPtr a => QBoxLayoutValue a where
+#else
+instance QBoxLayoutConstPtr a => QBoxLayoutValue a where
+#endif
+  withQBoxLayoutPtr = HoppyP.flip ($) . toQBoxLayoutConst
+
+class (M228.QLayoutConstPtr this) => QBoxLayoutConstPtr this where
+  toQBoxLayoutConst :: this -> QBoxLayoutConst
+
+direction :: (QBoxLayoutValue arg'1) => arg'1 -> HoppyP.IO QBoxLayoutDirection
+direction arg'1 =
+  withQBoxLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (direction' arg'1')
+
+spacing :: (QBoxLayoutValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+spacing arg'1 =
+  withQBoxLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (spacing' arg'1')
+
+class (QBoxLayoutConstPtr this, M228.QLayoutPtr this) => QBoxLayoutPtr this where
+  toQBoxLayout :: this -> QBoxLayout
+
+addLayout :: (QBoxLayoutPtr arg'1, M228.QLayoutPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+addLayout arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M228.toQLayout arg'2) $ \arg'2' ->
+  (addLayout' arg'1' arg'2')
+
+addLayoutWithStretch :: (QBoxLayoutPtr arg'1, M228.QLayoutPtr arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO ()
+addLayoutWithStretch arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M228.toQLayout arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (addLayoutWithStretch' arg'1' arg'2' arg'3')
+
+addSpacing :: (QBoxLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+addSpacing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (addSpacing' arg'1' arg'2')
+
+addStretch :: (QBoxLayoutPtr arg'1) => arg'1 -> HoppyP.IO ()
+addStretch arg'1 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  (addStretch' arg'1')
+
+addStretchOf :: (QBoxLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+addStretchOf arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (addStretchOf' arg'1' arg'2')
+
+addStrut :: (QBoxLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+addStrut arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (addStrut' arg'1' arg'2')
+
+addWidget :: (QBoxLayoutPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+addWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (addWidget' arg'1' arg'2')
+
+addWidgetWithStretch :: (QBoxLayoutPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO ()
+addWidgetWithStretch arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (addWidgetWithStretch' arg'1' arg'2' arg'3')
+
+addWidgetWithStretchAndAlignment :: (QBoxLayoutPtr arg'1, M280.QWidgetPtr arg'2, M58.IsQtAlignment arg'4) => arg'1 -> 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 (M280.toQWidget arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = M58.fromQtAlignment $ M58.toQtAlignment arg'4 in
+  (addWidgetWithStretchAndAlignment' arg'1' arg'2' arg'3' arg'4')
+
+setDirection :: (QBoxLayoutPtr arg'1) => arg'1 -> QBoxLayoutDirection -> HoppyP.IO ()
+setDirection arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setDirection' arg'1' arg'2')
+
+insertLayout :: (QBoxLayoutPtr arg'1, M228.QLayoutPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+insertLayout arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M228.toQLayout arg'3) $ \arg'3' ->
+  (insertLayout' arg'1' arg'2' arg'3')
+
+insertLayoutWithStretch :: (QBoxLayoutPtr arg'1, M228.QLayoutPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.Int -> HoppyP.IO ()
+insertLayoutWithStretch arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M228.toQLayout arg'3) $ \arg'3' ->
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  (insertLayoutWithStretch' arg'1' arg'2' arg'3' arg'4')
+
+insertSpacing :: (QBoxLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+insertSpacing arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (insertSpacing' arg'1' arg'2' arg'3')
+
+insertStretch :: (QBoxLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+insertStretch arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (insertStretch' arg'1' arg'2')
+
+insertStretchOf :: (QBoxLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+insertStretchOf arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (insertStretchOf' arg'1' arg'2' arg'3')
+
+insertWidget :: (QBoxLayoutPtr arg'1, M280.QWidgetPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+insertWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  (insertWidget' arg'1' arg'2' arg'3')
+
+insertWidgetWithStretch :: (QBoxLayoutPtr arg'1, M280.QWidgetPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.Int -> HoppyP.IO ()
+insertWidgetWithStretch arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  (insertWidgetWithStretch' arg'1' arg'2' arg'3' arg'4')
+
+insertWidgetWithStretchAndAlignment :: (QBoxLayoutPtr arg'1, M280.QWidgetPtr arg'3, M58.IsQtAlignment arg'5) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = M58.fromQtAlignment $ M58.toQtAlignment arg'5 in
+  (insertWidgetWithStretchAndAlignment' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setStretch :: (QBoxLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setStretch arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setStretch' arg'1' arg'2' arg'3')
+
+setWidgetStretchFactor :: (QBoxLayoutPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+setWidgetStretchFactor arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap (/= 0)
+  (setWidgetStretchFactor' arg'1' arg'2' arg'3')
+
+setLayoutStretchFactor :: (QBoxLayoutPtr arg'1, M228.QLayoutPtr arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+setLayoutStretchFactor arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M228.toQLayout arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap (/= 0)
+  (setLayoutStretchFactor' arg'1' arg'2' arg'3')
+
+setSpacing :: (QBoxLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setSpacing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (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 M228.QLayoutConstPtr QBoxLayoutConst where
+  toQLayoutConst (QBoxLayoutConst ptr') = M228.QLayoutConst $ castQBoxLayoutToQLayout ptr'
+  toQLayoutConst (QBoxLayoutConstGc fptr' ptr') = M228.QLayoutConstGc fptr' $ castQBoxLayoutToQLayout ptr'
+
+instance M30.QObjectConstPtr QBoxLayoutConst where
+  toQObjectConst (QBoxLayoutConst ptr') = M30.QObjectConst $ castQBoxLayoutToQObject ptr'
+  toQObjectConst (QBoxLayoutConstGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQBoxLayoutToQObject ptr'
+
+instance M230.QLayoutItemConstPtr QBoxLayoutConst where
+  toQLayoutItemConst (QBoxLayoutConst ptr') = M230.QLayoutItemConst $ castQBoxLayoutToQLayoutItem ptr'
+  toQLayoutItemConst (QBoxLayoutConstGc fptr' ptr') = M230.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 M228.QLayoutConstPtr QBoxLayout where
+  toQLayoutConst (QBoxLayout ptr') = M228.QLayoutConst $ castQBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+  toQLayoutConst (QBoxLayoutGc fptr' ptr') = M228.QLayoutConstGc fptr' $ castQBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+
+instance M228.QLayoutPtr QBoxLayout where
+  toQLayout (QBoxLayout ptr') = M228.QLayout $ (HoppyF.castPtr :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr M228.QLayout) $ castQBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+  toQLayout (QBoxLayoutGc fptr' ptr') = M228.QLayoutGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr M228.QLayout) $ castQBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+
+instance M30.QObjectConstPtr QBoxLayout where
+  toQObjectConst (QBoxLayout ptr') = M30.QObjectConst $ castQBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+  toQObjectConst (QBoxLayoutGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+
+instance M30.QObjectPtr QBoxLayout where
+  toQObject (QBoxLayout ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+  toQObject (QBoxLayoutGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+
+instance M230.QLayoutItemConstPtr QBoxLayout where
+  toQLayoutItemConst (QBoxLayout ptr') = M230.QLayoutItemConst $ castQBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+  toQLayoutItemConst (QBoxLayoutGc fptr' ptr') = M230.QLayoutItemConstGc fptr' $ castQBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+
+instance M230.QLayoutItemPtr QBoxLayout where
+  toQLayoutItem (QBoxLayout ptr') = M230.QLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+  toQLayoutItem (QBoxLayoutGc fptr' ptr') = M230.QLayoutItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+
+new ::  QBoxLayoutDirection -> HoppyP.IO QBoxLayout
+new arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  HoppyP.fmap QBoxLayout
+  (new' arg'1')
+
+newWithParent :: (M280.QWidgetPtr arg'2) => QBoxLayoutDirection -> arg'2 -> HoppyP.IO QBoxLayout
+newWithParent arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QBoxLayout
+  (newWithParent' arg'1' arg'2')
+
+class QBoxLayoutSuper a where
+  downToQBoxLayout :: a -> QBoxLayout
+
+instance QBoxLayoutSuper M228.QLayout where
+  downToQBoxLayout = castQBoxLayoutToNonconst . cast' . M228.castQLayoutToConst
+    where
+      cast' (M228.QLayoutConst ptr') = QBoxLayoutConst $ castQLayoutToQBoxLayout ptr'
+      cast' (M228.QLayoutConstGc fptr' ptr') = QBoxLayoutConstGc fptr' $ castQLayoutToQBoxLayout ptr'
+instance QBoxLayoutSuper M30.QObject where
+  downToQBoxLayout = castQBoxLayoutToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QBoxLayoutConst $ castQObjectToQBoxLayout ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QBoxLayoutConstGc fptr' $ castQObjectToQBoxLayout ptr'
+instance QBoxLayoutSuper M230.QLayoutItem where
+  downToQBoxLayout = castQBoxLayoutToNonconst . cast' . M230.castQLayoutItemToConst
+    where
+      cast' (M230.QLayoutItemConst ptr') = QBoxLayoutConst $ castQLayoutItemToQBoxLayout ptr'
+      cast' (M230.QLayoutItemConstGc fptr' ptr') = QBoxLayoutConstGc fptr' $ castQLayoutItemToQBoxLayout ptr'
+
+class QBoxLayoutSuperConst a where
+  downToQBoxLayoutConst :: a -> QBoxLayoutConst
+
+instance QBoxLayoutSuperConst M228.QLayoutConst where
+  downToQBoxLayoutConst = cast'
+    where
+      cast' (M228.QLayoutConst ptr') = QBoxLayoutConst $ castQLayoutToQBoxLayout ptr'
+      cast' (M228.QLayoutConstGc fptr' ptr') = QBoxLayoutConstGc fptr' $ castQLayoutToQBoxLayout ptr'
+instance QBoxLayoutSuperConst M30.QObjectConst where
+  downToQBoxLayoutConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QBoxLayoutConst $ castQObjectToQBoxLayout ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QBoxLayoutConstGc fptr' $ castQObjectToQBoxLayout ptr'
+instance QBoxLayoutSuperConst M230.QLayoutItemConst where
+  downToQBoxLayoutConst = cast'
+    where
+      cast' (M230.QLayoutItemConst ptr') = QBoxLayoutConst $ castQLayoutItemToQBoxLayout ptr'
+      cast' (M230.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QBoxLayoutDirection where
+  fromEnum LeftToRight = 0
+  fromEnum RightToLeft = 1
+  fromEnum TopToBottom = 2
+  fromEnum BottomToTop = 3
+  
+  toEnum (0) = LeftToRight
+  toEnum (1) = RightToLeft
+  toEnum (2) = TopToBottom
+  toEnum (3) = BottomToTop
+  toEnum n' = HoppyP.error $ "Unknown QBoxLayoutDirection numeric value: " ++ HoppyP.show n'
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,271 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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 qualified Graphics.UI.Qtah.Generated.Core.QList.QAbstractButton as M62
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M162
+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 M30.QObject -> HoppyP.IO (HoppyF.Ptr QButtonGroup)
+foreign import ccall "genpop__QButtonGroup_addButton" addButton' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QButtonGroup_addButtonWithId" addButtonWithId' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M162.QAbstractButton -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QButtonGroup_button" button' ::  HoppyF.Ptr QButtonGroupConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M162.QAbstractButton)
+foreign import ccall "genpop__QButtonGroup_buttons" buttons' ::  HoppyF.Ptr QButtonGroupConst -> HoppyP.IO (HoppyF.Ptr M62.QListQAbstractButtonConst)
+foreign import ccall "genpop__QButtonGroup_checkedButton" checkedButton' ::  HoppyF.Ptr QButtonGroupConst -> HoppyP.IO (HoppyF.Ptr M162.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 HoppyFHR.CBool
+foreign import ccall "genpop__QButtonGroup_setExclusive" setExclusive' ::  HoppyF.Ptr QButtonGroup -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QButtonGroup_id" id' ::  HoppyF.Ptr QButtonGroupConst -> HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QButtonGroup_removeButton" removeButton' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QButtonGroup_setId" setId' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M162.QAbstractButton -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QButtonGroup__QObject" castQButtonGroupToQObject :: HoppyF.Ptr QButtonGroupConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QButtonGroup" castQObjectToQButtonGroup :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QButtonGroupConstPtr a => QButtonGroupValue a where
+#else
+instance QButtonGroupConstPtr a => QButtonGroupValue a where
+#endif
+  withQButtonGroupPtr = HoppyP.flip ($) . toQButtonGroupConst
+
+class (M30.QObjectConstPtr this) => QButtonGroupConstPtr this where
+  toQButtonGroupConst :: this -> QButtonGroupConst
+
+button :: (QButtonGroupValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M162.QAbstractButton
+button arg'1 arg'2 =
+  withQButtonGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M162.QAbstractButton
+  (button' arg'1' arg'2')
+
+buttons :: (QButtonGroupValue arg'1) => arg'1 -> HoppyP.IO [M162.QAbstractButton]
+buttons arg'1 =
+  withQButtonGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M62.QListQAbstractButtonConst) =<<
+  (buttons' arg'1')
+
+checkedButton :: (QButtonGroupValue arg'1) => arg'1 -> HoppyP.IO M162.QAbstractButton
+checkedButton arg'1 =
+  withQButtonGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M162.QAbstractButton
+  (checkedButton' arg'1')
+
+checkedId :: (QButtonGroupValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+checkedId arg'1 =
+  withQButtonGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (checkedId' arg'1')
+
+exclusive :: (QButtonGroupValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+exclusive arg'1 =
+  withQButtonGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (exclusive' arg'1')
+
+id :: (QButtonGroupValue arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+id arg'1 arg'2 =
+  withQButtonGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (id' arg'1' arg'2')
+
+class (QButtonGroupConstPtr this, M30.QObjectPtr this) => QButtonGroupPtr this where
+  toQButtonGroup :: this -> QButtonGroup
+
+addButton :: (QButtonGroupPtr arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+addButton arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  (addButton' arg'1' arg'2')
+
+addButtonWithId :: (QButtonGroupPtr arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO ()
+addButtonWithId arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (addButtonWithId' arg'1' arg'2' arg'3')
+
+setExclusive :: (QButtonGroupPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setExclusive arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setExclusive' arg'1' arg'2')
+
+removeButton :: (QButtonGroupPtr arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+removeButton arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  (removeButton' arg'1' arg'2')
+
+setId :: (QButtonGroupPtr arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO ()
+setId arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setId' 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 M30.QObjectConstPtr QButtonGroupConst where
+  toQObjectConst (QButtonGroupConst ptr') = M30.QObjectConst $ castQButtonGroupToQObject ptr'
+  toQObjectConst (QButtonGroupConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr QButtonGroup where
+  toQObjectConst (QButtonGroup ptr') = M30.QObjectConst $ castQButtonGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QButtonGroup -> HoppyF.Ptr QButtonGroupConst) ptr'
+  toQObjectConst (QButtonGroupGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQButtonGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QButtonGroup -> HoppyF.Ptr QButtonGroupConst) ptr'
+
+instance M30.QObjectPtr QButtonGroup where
+  toQObject (QButtonGroup ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQButtonGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QButtonGroup -> HoppyF.Ptr QButtonGroupConst) ptr'
+  toQObject (QButtonGroupGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQButtonGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QButtonGroup -> HoppyF.Ptr QButtonGroupConst) ptr'
+
+new ::  HoppyP.IO QButtonGroup
+new =
+  HoppyP.fmap QButtonGroup
+  (new')
+
+newWithParent :: (M30.QObjectPtr arg'1) => arg'1 -> HoppyP.IO QButtonGroup
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M30.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QButtonGroup
+  (newWithParent' arg'1')
+
+class QButtonGroupSuper a where
+  downToQButtonGroup :: a -> QButtonGroup
+
+instance QButtonGroupSuper M30.QObject where
+  downToQButtonGroup = castQButtonGroupToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QButtonGroupConst $ castQObjectToQButtonGroup ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QButtonGroupConstGc fptr' $ castQObjectToQButtonGroup ptr'
+
+class QButtonGroupSuperConst a where
+  downToQButtonGroupConst :: a -> QButtonGroupConst
+
+instance QButtonGroupSuperConst M30.QObjectConst where
+  downToQButtonGroupConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QButtonGroupConst $ castQObjectToQButtonGroup ptr'
+      cast' (M30.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/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 CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M162
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QCheckBox)
+foreign import ccall "genpop__QCheckBox_newWithText" newWithText' ::  HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr QCheckBox)
+foreign import ccall "genpop__QCheckBox_newWithTextAndParent" newWithTextAndParent' ::  HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M280.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 HoppyFHR.CBool
+foreign import ccall "genpop__QCheckBox_setTristate" setTristate' ::  HoppyF.Ptr QCheckBox -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QCheckBox__QAbstractButton" castQCheckBoxToQAbstractButton :: HoppyF.Ptr QCheckBoxConst -> HoppyF.Ptr M162.QAbstractButtonConst
+foreign import ccall "gencast__QAbstractButton__QCheckBox" castQAbstractButtonToQCheckBox :: HoppyF.Ptr M162.QAbstractButtonConst -> HoppyF.Ptr QCheckBoxConst
+foreign import ccall "gencast__QCheckBox__QWidget" castQCheckBoxToQWidget :: HoppyF.Ptr QCheckBoxConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QCheckBox" castQWidgetToQCheckBox :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QCheckBoxConst
+foreign import ccall "gencast__QCheckBox__QObject" castQCheckBoxToQObject :: HoppyF.Ptr QCheckBoxConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QCheckBox" castQObjectToQCheckBox :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QCheckBoxConstPtr a => QCheckBoxValue a where
+#else
+instance QCheckBoxConstPtr a => QCheckBoxValue a where
+#endif
+  withQCheckBoxPtr = HoppyP.flip ($) . toQCheckBoxConst
+
+class (M162.QAbstractButtonConstPtr this) => QCheckBoxConstPtr this where
+  toQCheckBoxConst :: this -> QCheckBoxConst
+
+checkState :: (QCheckBoxValue arg'1) => arg'1 -> HoppyP.IO M58.QtCheckState
+checkState arg'1 =
+  withQCheckBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (checkState' arg'1')
+
+isTristate :: (QCheckBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isTristate arg'1 =
+  withQCheckBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isTristate' arg'1')
+
+class (QCheckBoxConstPtr this, M162.QAbstractButtonPtr this) => QCheckBoxPtr this where
+  toQCheckBox :: this -> QCheckBox
+
+setCheckState :: (QCheckBoxPtr arg'1) => arg'1 -> M58.QtCheckState -> HoppyP.IO ()
+setCheckState arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQCheckBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setCheckState' arg'1' arg'2')
+
+setTristate :: (QCheckBoxPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setTristate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQCheckBox arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (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 M162.QAbstractButtonConstPtr QCheckBoxConst where
+  toQAbstractButtonConst (QCheckBoxConst ptr') = M162.QAbstractButtonConst $ castQCheckBoxToQAbstractButton ptr'
+  toQAbstractButtonConst (QCheckBoxConstGc fptr' ptr') = M162.QAbstractButtonConstGc fptr' $ castQCheckBoxToQAbstractButton ptr'
+
+instance M280.QWidgetConstPtr QCheckBoxConst where
+  toQWidgetConst (QCheckBoxConst ptr') = M280.QWidgetConst $ castQCheckBoxToQWidget ptr'
+  toQWidgetConst (QCheckBoxConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQCheckBoxToQWidget ptr'
+
+instance M30.QObjectConstPtr QCheckBoxConst where
+  toQObjectConst (QCheckBoxConst ptr') = M30.QObjectConst $ castQCheckBoxToQObject ptr'
+  toQObjectConst (QCheckBoxConstGc fptr' ptr') = M30.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 M162.QAbstractButtonConstPtr QCheckBox where
+  toQAbstractButtonConst (QCheckBox ptr') = M162.QAbstractButtonConst $ castQCheckBoxToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+  toQAbstractButtonConst (QCheckBoxGc fptr' ptr') = M162.QAbstractButtonConstGc fptr' $ castQCheckBoxToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+
+instance M162.QAbstractButtonPtr QCheckBox where
+  toQAbstractButton (QCheckBox ptr') = M162.QAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr M162.QAbstractButtonConst -> HoppyF.Ptr M162.QAbstractButton) $ castQCheckBoxToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+  toQAbstractButton (QCheckBoxGc fptr' ptr') = M162.QAbstractButtonGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M162.QAbstractButtonConst -> HoppyF.Ptr M162.QAbstractButton) $ castQCheckBoxToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+
+instance M280.QWidgetConstPtr QCheckBox where
+  toQWidgetConst (QCheckBox ptr') = M280.QWidgetConst $ castQCheckBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+  toQWidgetConst (QCheckBoxGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQCheckBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+
+instance M280.QWidgetPtr QCheckBox where
+  toQWidget (QCheckBox ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQCheckBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+  toQWidget (QCheckBoxGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQCheckBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+
+instance M30.QObjectConstPtr QCheckBox where
+  toQObjectConst (QCheckBox ptr') = M30.QObjectConst $ castQCheckBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+  toQObjectConst (QCheckBoxGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQCheckBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+
+instance M30.QObjectPtr QCheckBox where
+  toQObject (QCheckBox ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQCheckBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+  toQObject (QCheckBoxGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQCheckBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+
+new ::  HoppyP.IO QCheckBox
+new =
+  HoppyP.fmap QCheckBox
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QCheckBox
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QCheckBox
+  (newWithParent' arg'1')
+
+newWithText :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO QCheckBox
+newWithText arg'1 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QCheckBox
+  (newWithText' arg'1')
+
+newWithTextAndParent :: (M46.QStringValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QCheckBox
+newWithTextAndParent arg'1 arg'2 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QCheckBox
+  (newWithTextAndParent' arg'1' arg'2')
+
+class QCheckBoxSuper a where
+  downToQCheckBox :: a -> QCheckBox
+
+instance QCheckBoxSuper M162.QAbstractButton where
+  downToQCheckBox = castQCheckBoxToNonconst . cast' . M162.castQAbstractButtonToConst
+    where
+      cast' (M162.QAbstractButtonConst ptr') = QCheckBoxConst $ castQAbstractButtonToQCheckBox ptr'
+      cast' (M162.QAbstractButtonConstGc fptr' ptr') = QCheckBoxConstGc fptr' $ castQAbstractButtonToQCheckBox ptr'
+instance QCheckBoxSuper M280.QWidget where
+  downToQCheckBox = castQCheckBoxToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QCheckBoxConst $ castQWidgetToQCheckBox ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QCheckBoxConstGc fptr' $ castQWidgetToQCheckBox ptr'
+instance QCheckBoxSuper M30.QObject where
+  downToQCheckBox = castQCheckBoxToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QCheckBoxConst $ castQObjectToQCheckBox ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QCheckBoxConstGc fptr' $ castQObjectToQCheckBox ptr'
+
+class QCheckBoxSuperConst a where
+  downToQCheckBoxConst :: a -> QCheckBoxConst
+
+instance QCheckBoxSuperConst M162.QAbstractButtonConst where
+  downToQCheckBoxConst = cast'
+    where
+      cast' (M162.QAbstractButtonConst ptr') = QCheckBoxConst $ castQAbstractButtonToQCheckBox ptr'
+      cast' (M162.QAbstractButtonConstGc fptr' ptr') = QCheckBoxConstGc fptr' $ castQAbstractButtonToQCheckBox ptr'
+instance QCheckBoxSuperConst M280.QWidgetConst where
+  downToQCheckBoxConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QCheckBoxConst $ castQWidgetToQCheckBox ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QCheckBoxConstGc fptr' $ castQWidgetToQCheckBox ptr'
+instance QCheckBoxSuperConst M30.QObjectConst where
+  downToQCheckBoxConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QCheckBoxConst $ castQObjectToQCheckBox ptr'
+      cast' (M30.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/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,287 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider as M170
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.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 HoppyFHR.CBool
+foreign import ccall "genpop__QDial_setNotchesVisible" setNotchesVisible' ::  HoppyF.Ptr QDial -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QDial_wrapping" wrapping' ::  HoppyF.Ptr QDialConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDial_setWrapping" setWrapping' ::  HoppyF.Ptr QDial -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QDial__QAbstractSlider" castQDialToQAbstractSlider :: HoppyF.Ptr QDialConst -> HoppyF.Ptr M170.QAbstractSliderConst
+foreign import ccall "gencast__QAbstractSlider__QDial" castQAbstractSliderToQDial :: HoppyF.Ptr M170.QAbstractSliderConst -> HoppyF.Ptr QDialConst
+foreign import ccall "gencast__QDial__QWidget" castQDialToQWidget :: HoppyF.Ptr QDialConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QDial" castQWidgetToQDial :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QDialConst
+foreign import ccall "gencast__QDial__QObject" castQDialToQObject :: HoppyF.Ptr QDialConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QDial" castQObjectToQDial :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QDialConstPtr a => QDialValue a where
+#else
+instance QDialConstPtr a => QDialValue a where
+#endif
+  withQDialPtr = HoppyP.flip ($) . toQDialConst
+
+class (M170.QAbstractSliderConstPtr this) => QDialConstPtr this where
+  toQDialConst :: this -> QDialConst
+
+notchSize :: (QDialValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+notchSize arg'1 =
+  withQDialPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (notchSize' arg'1')
+
+notchTarget :: (QDialValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+notchTarget arg'1 =
+  withQDialPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (notchTarget' arg'1')
+
+notchesVisible :: (QDialValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+notchesVisible arg'1 =
+  withQDialPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (notchesVisible' arg'1')
+
+wrapping :: (QDialValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+wrapping arg'1 =
+  withQDialPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (wrapping' arg'1')
+
+class (QDialConstPtr this, M170.QAbstractSliderPtr this) => QDialPtr this where
+  toQDial :: this -> QDial
+
+setNotchTarget :: (QDialPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setNotchTarget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDial arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setNotchTarget' arg'1' arg'2')
+
+setNotchesVisible :: (QDialPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setNotchesVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDial arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setNotchesVisible' arg'1' arg'2')
+
+setWrapping :: (QDialPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setWrapping arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDial arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (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 M170.QAbstractSliderConstPtr QDialConst where
+  toQAbstractSliderConst (QDialConst ptr') = M170.QAbstractSliderConst $ castQDialToQAbstractSlider ptr'
+  toQAbstractSliderConst (QDialConstGc fptr' ptr') = M170.QAbstractSliderConstGc fptr' $ castQDialToQAbstractSlider ptr'
+
+instance M280.QWidgetConstPtr QDialConst where
+  toQWidgetConst (QDialConst ptr') = M280.QWidgetConst $ castQDialToQWidget ptr'
+  toQWidgetConst (QDialConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQDialToQWidget ptr'
+
+instance M30.QObjectConstPtr QDialConst where
+  toQObjectConst (QDialConst ptr') = M30.QObjectConst $ castQDialToQObject ptr'
+  toQObjectConst (QDialConstGc fptr' ptr') = M30.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 M170.QAbstractSliderConstPtr QDial where
+  toQAbstractSliderConst (QDial ptr') = M170.QAbstractSliderConst $ castQDialToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+  toQAbstractSliderConst (QDialGc fptr' ptr') = M170.QAbstractSliderConstGc fptr' $ castQDialToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+
+instance M170.QAbstractSliderPtr QDial where
+  toQAbstractSlider (QDial ptr') = M170.QAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr M170.QAbstractSliderConst -> HoppyF.Ptr M170.QAbstractSlider) $ castQDialToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+  toQAbstractSlider (QDialGc fptr' ptr') = M170.QAbstractSliderGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M170.QAbstractSliderConst -> HoppyF.Ptr M170.QAbstractSlider) $ castQDialToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+
+instance M280.QWidgetConstPtr QDial where
+  toQWidgetConst (QDial ptr') = M280.QWidgetConst $ castQDialToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+  toQWidgetConst (QDialGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQDialToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+
+instance M280.QWidgetPtr QDial where
+  toQWidget (QDial ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQDialToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+  toQWidget (QDialGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQDialToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+
+instance M30.QObjectConstPtr QDial where
+  toQObjectConst (QDial ptr') = M30.QObjectConst $ castQDialToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+  toQObjectConst (QDialGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQDialToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+
+instance M30.QObjectPtr QDial where
+  toQObject (QDial ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQDialToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+  toQObject (QDialGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQDialToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+
+new ::  HoppyP.IO QDial
+new =
+  HoppyP.fmap QDial
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QDial
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QDial
+  (newWithParent' arg'1')
+
+class QDialSuper a where
+  downToQDial :: a -> QDial
+
+instance QDialSuper M170.QAbstractSlider where
+  downToQDial = castQDialToNonconst . cast' . M170.castQAbstractSliderToConst
+    where
+      cast' (M170.QAbstractSliderConst ptr') = QDialConst $ castQAbstractSliderToQDial ptr'
+      cast' (M170.QAbstractSliderConstGc fptr' ptr') = QDialConstGc fptr' $ castQAbstractSliderToQDial ptr'
+instance QDialSuper M280.QWidget where
+  downToQDial = castQDialToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QDialConst $ castQWidgetToQDial ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QDialConstGc fptr' $ castQWidgetToQDial ptr'
+instance QDialSuper M30.QObject where
+  downToQDial = castQDialToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QDialConst $ castQObjectToQDial ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QDialConstGc fptr' $ castQObjectToQDial ptr'
+
+class QDialSuperConst a where
+  downToQDialConst :: a -> QDialConst
+
+instance QDialSuperConst M170.QAbstractSliderConst where
+  downToQDialConst = cast'
+    where
+      cast' (M170.QAbstractSliderConst ptr') = QDialConst $ castQAbstractSliderToQDial ptr'
+      cast' (M170.QAbstractSliderConstGc fptr' ptr') = QDialConstGc fptr' $ castQAbstractSliderToQDial ptr'
+instance QDialSuperConst M280.QWidgetConst where
+  downToQDialConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QDialConst $ castQWidgetToQDial ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QDialConstGc fptr' $ castQWidgetToQDial ptr'
+instance QDialSuperConst M30.QObjectConst where
+  downToQDialConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QDialConst $ castQObjectToQDial ptr'
+      cast' (M30.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,313 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Prelude (($), (++), (.), (/=), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QDialog_new" new' ::  HoppyP.IO (HoppyF.Ptr QDialog)
+foreign import ccall "genpop__QDialog_newWithParent" newWithParent' ::  HoppyF.Ptr M280.QWidget -> HoppyP.IO (HoppyF.Ptr QDialog)
+foreign import ccall "genpop__QDialog_newWithParentAndFlags" newWithParentAndFlags' ::  HoppyF.Ptr M280.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 HoppyFHR.CBool
+foreign import ccall "genpop__QDialog_setModal" setModal' ::  HoppyF.Ptr QDialog -> HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QDialog_setSizeGripEnabled" setSizeGripEnabled' ::  HoppyF.Ptr QDialog -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QDialog__QWidget" castQDialogToQWidget :: HoppyF.Ptr QDialogConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QDialog" castQWidgetToQDialog :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QDialogConst
+foreign import ccall "gencast__QDialog__QObject" castQDialogToQObject :: HoppyF.Ptr QDialogConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QDialog" castQObjectToQDialog :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QDialogConstPtr a => QDialogValue a where
+#else
+instance QDialogConstPtr a => QDialogValue a where
+#endif
+  withQDialogPtr = HoppyP.flip ($) . toQDialogConst
+
+class (M280.QWidgetConstPtr this) => QDialogConstPtr this where
+  toQDialogConst :: this -> QDialogConst
+
+isModal :: (QDialogValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isModal arg'1 =
+  withQDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isModal' arg'1')
+
+result :: (QDialogValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+result arg'1 =
+  withQDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (result' arg'1')
+
+isSizeGripEnabled :: (QDialogValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isSizeGripEnabled arg'1 =
+  withQDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isSizeGripEnabled' arg'1')
+
+class (QDialogConstPtr this, M280.QWidgetPtr this) => QDialogPtr this where
+  toQDialog :: this -> QDialog
+
+accept :: (QDialogPtr arg'1) => arg'1 -> HoppyP.IO ()
+accept arg'1 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  (accept' arg'1')
+
+done :: (QDialogPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+done arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (done' arg'1' arg'2')
+
+exec :: (QDialogPtr arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+exec arg'1 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (exec' arg'1')
+
+setModal :: (QDialogPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setModal arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setModal' arg'1' arg'2')
+
+open :: (QDialogPtr arg'1) => arg'1 -> HoppyP.IO ()
+open arg'1 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  (open' arg'1')
+
+reject :: (QDialogPtr arg'1) => arg'1 -> HoppyP.IO ()
+reject arg'1 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  (reject' arg'1')
+
+setResult :: (QDialogPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setResult arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setResult' arg'1' arg'2')
+
+setSizeGripEnabled :: (QDialogPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setSizeGripEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setSizeGripEnabled' arg'1' arg'2')
+
+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 M280.QWidgetConstPtr QDialogConst where
+  toQWidgetConst (QDialogConst ptr') = M280.QWidgetConst $ castQDialogToQWidget ptr'
+  toQWidgetConst (QDialogConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQDialogToQWidget ptr'
+
+instance M30.QObjectConstPtr QDialogConst where
+  toQObjectConst (QDialogConst ptr') = M30.QObjectConst $ castQDialogToQObject ptr'
+  toQObjectConst (QDialogConstGc fptr' ptr') = M30.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 M280.QWidgetConstPtr QDialog where
+  toQWidgetConst (QDialog ptr') = M280.QWidgetConst $ castQDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+  toQWidgetConst (QDialogGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+
+instance M280.QWidgetPtr QDialog where
+  toQWidget (QDialog ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+  toQWidget (QDialogGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+
+instance M30.QObjectConstPtr QDialog where
+  toQObjectConst (QDialog ptr') = M30.QObjectConst $ castQDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+  toQObjectConst (QDialogGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+
+instance M30.QObjectPtr QDialog where
+  toQObject (QDialog ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+  toQObject (QDialogGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+
+new ::  HoppyP.IO QDialog
+new =
+  HoppyP.fmap QDialog
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QDialog
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QDialog
+  (newWithParent' arg'1')
+
+newWithParentAndFlags :: (M280.QWidgetPtr arg'1, M58.IsQtWindowFlags arg'2) => arg'1 -> arg'2 -> HoppyP.IO QDialog
+newWithParentAndFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtWindowFlags $ M58.toQtWindowFlags arg'2 in
+  HoppyP.fmap QDialog
+  (newWithParentAndFlags' arg'1' arg'2')
+
+class QDialogSuper a where
+  downToQDialog :: a -> QDialog
+
+instance QDialogSuper M280.QWidget where
+  downToQDialog = castQDialogToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QDialogConst $ castQWidgetToQDialog ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QDialogConstGc fptr' $ castQWidgetToQDialog ptr'
+instance QDialogSuper M30.QObject where
+  downToQDialog = castQDialogToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QDialogConst $ castQObjectToQDialog ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QDialogConstGc fptr' $ castQObjectToQDialog ptr'
+
+class QDialogSuperConst a where
+  downToQDialogConst :: a -> QDialogConst
+
+instance QDialogSuperConst M280.QWidgetConst where
+  downToQDialogConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QDialogConst $ castQWidgetToQDialog ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QDialogConstGc fptr' $ castQWidgetToQDialog ptr'
+instance QDialogSuperConst M30.QObjectConst where
+  downToQDialogConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QDialogConst $ castQObjectToQDialog ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QDialogDialogCode where
+  fromEnum Rejected = 0
+  fromEnum Accepted = 1
+  
+  toEnum (0) = Rejected
+  toEnum (1) = Accepted
+  toEnum n' = HoppyP.error $ "Unknown QDialogDialogCode numeric value: " ++ HoppyP.show n'
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,516 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  QDialogButtonBoxConst (..),
+  castQDialogButtonBoxToConst,
+  QDialogButtonBox (..),
+  castQDialogButtonBoxToNonconst,
+  new,
+  newWithParent,
+  QDialogButtonBoxSuper (..),
+  QDialogButtonBoxSuperConst (..),
+  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 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.QList.QAbstractButton as M62
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M162
+import qualified Graphics.UI.Qtah.Generated.Widgets.QPushButton as M248
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Prelude (($), (++), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QDialogButtonBox_new" new' ::  HoppyP.IO (HoppyF.Ptr QDialogButtonBox)
+foreign import ccall "genpop__QDialogButtonBox_newWithParent" newWithParent' ::  HoppyF.Ptr M280.QWidget -> HoppyP.IO (HoppyF.Ptr QDialogButtonBox)
+foreign import ccall "genpop__QDialogButtonBox_addButton" addButton' ::  HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr M162.QAbstractButton -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDialogButtonBox_addButtonWithText" addButtonWithText' ::  HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr M46.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M248.QPushButton)
+foreign import ccall "genpop__QDialogButtonBox_addStandardButton" addStandardButton' ::  HoppyF.Ptr QDialogButtonBox -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M248.QPushButton)
+foreign import ccall "genpop__QDialogButtonBox_button" button' ::  HoppyF.Ptr QDialogButtonBoxConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M248.QPushButton)
+foreign import ccall "genpop__QDialogButtonBox_buttonRole" buttonRole' ::  HoppyF.Ptr QDialogButtonBoxConst -> HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDialogButtonBox_buttons" buttons' ::  HoppyF.Ptr QDialogButtonBoxConst -> HoppyP.IO (HoppyF.Ptr M62.QListQAbstractButtonConst)
+foreign import ccall "genpop__QDialogButtonBox_centerButtons" centerButtons' ::  HoppyF.Ptr QDialogButtonBoxConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QDialogButtonBox_setCenterButtons" setCenterButtons' ::  HoppyF.Ptr QDialogButtonBox -> HoppyFHR.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 M162.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QDialogButtonBox_standardButton" standardButton' ::  HoppyF.Ptr QDialogButtonBoxConst -> HoppyF.Ptr M162.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 "gencast__QDialogButtonBox__QWidget" castQDialogButtonBoxToQWidget :: HoppyF.Ptr QDialogButtonBoxConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QDialogButtonBox" castQWidgetToQDialogButtonBox :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QDialogButtonBoxConst
+foreign import ccall "gencast__QDialogButtonBox__QObject" castQDialogButtonBoxToQObject :: HoppyF.Ptr QDialogButtonBoxConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QDialogButtonBox" castQObjectToQDialogButtonBox :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QDialogButtonBoxConstPtr a => QDialogButtonBoxValue a where
+#else
+instance QDialogButtonBoxConstPtr a => QDialogButtonBoxValue a where
+#endif
+  withQDialogButtonBoxPtr = HoppyP.flip ($) . toQDialogButtonBoxConst
+
+class (M280.QWidgetConstPtr this) => QDialogButtonBoxConstPtr this where
+  toQDialogButtonBoxConst :: this -> QDialogButtonBoxConst
+
+button :: (QDialogButtonBoxValue arg'1) => arg'1 -> QDialogButtonBoxStandardButton -> HoppyP.IO M248.QPushButton
+button arg'1 arg'2 =
+  withQDialogButtonBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  HoppyP.fmap M248.QPushButton
+  (button' arg'1' arg'2')
+
+buttonRole :: (QDialogButtonBoxValue arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QDialogButtonBoxButtonRole
+buttonRole arg'1 arg'2 =
+  withQDialogButtonBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (buttonRole' arg'1' arg'2')
+
+buttons :: (QDialogButtonBoxValue arg'1) => arg'1 -> HoppyP.IO [M162.QAbstractButton]
+buttons arg'1 =
+  withQDialogButtonBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M62.QListQAbstractButtonConst) =<<
+  (buttons' arg'1')
+
+centerButtons :: (QDialogButtonBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+centerButtons arg'1 =
+  withQDialogButtonBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (centerButtons' arg'1')
+
+orientation :: (QDialogButtonBoxValue arg'1) => arg'1 -> HoppyP.IO M58.QtOrientation
+orientation arg'1 =
+  withQDialogButtonBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (orientation' arg'1')
+
+standardButton :: (QDialogButtonBoxValue arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QDialogButtonBoxStandardButton
+standardButton arg'1 arg'2 =
+  withQDialogButtonBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (standardButton' arg'1' arg'2')
+
+standardButtons :: (QDialogButtonBoxValue arg'1) => arg'1 -> HoppyP.IO QDialogButtonBoxStandardButtons
+standardButtons arg'1 =
+  withQDialogButtonBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QDialogButtonBoxStandardButtons
+  (standardButtons' arg'1')
+
+class (QDialogButtonBoxConstPtr this, M280.QWidgetPtr this) => QDialogButtonBoxPtr this where
+  toQDialogButtonBox :: this -> QDialogButtonBox
+
+addButton :: (QDialogButtonBoxPtr arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> QDialogButtonBoxButtonRole -> HoppyP.IO ()
+addButton arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (addButton' arg'1' arg'2' arg'3')
+
+addButtonWithText :: (QDialogButtonBoxPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> QDialogButtonBoxButtonRole -> HoppyP.IO M248.QPushButton
+addButtonWithText arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  HoppyP.fmap M248.QPushButton
+  (addButtonWithText' arg'1' arg'2' arg'3')
+
+addStandardButton :: (QDialogButtonBoxPtr arg'1) => arg'1 -> QDialogButtonBoxStandardButton -> HoppyP.IO M248.QPushButton
+addStandardButton arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  HoppyP.fmap M248.QPushButton
+  (addStandardButton' arg'1' arg'2')
+
+setCenterButtons :: (QDialogButtonBoxPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setCenterButtons arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setCenterButtons' arg'1' arg'2')
+
+clear :: (QDialogButtonBoxPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+setOrientation :: (QDialogButtonBoxPtr arg'1) => arg'1 -> M58.QtOrientation -> HoppyP.IO ()
+setOrientation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setOrientation' arg'1' arg'2')
+
+removeButton :: (QDialogButtonBoxPtr arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+removeButton arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  (removeButton' arg'1' arg'2')
+
+setStandardButtons :: (QDialogButtonBoxPtr arg'1, IsQDialogButtonBoxStandardButtons arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setStandardButtons arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  let arg'2' = fromQDialogButtonBoxStandardButtons $ toQDialogButtonBoxStandardButtons arg'2 in
+  (setStandardButtons' arg'1' arg'2')
+
+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 M280.QWidgetConstPtr QDialogButtonBoxConst where
+  toQWidgetConst (QDialogButtonBoxConst ptr') = M280.QWidgetConst $ castQDialogButtonBoxToQWidget ptr'
+  toQWidgetConst (QDialogButtonBoxConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQDialogButtonBoxToQWidget ptr'
+
+instance M30.QObjectConstPtr QDialogButtonBoxConst where
+  toQObjectConst (QDialogButtonBoxConst ptr') = M30.QObjectConst $ castQDialogButtonBoxToQObject ptr'
+  toQObjectConst (QDialogButtonBoxConstGc fptr' ptr') = M30.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 M280.QWidgetConstPtr QDialogButtonBox where
+  toQWidgetConst (QDialogButtonBox ptr') = M280.QWidgetConst $ castQDialogButtonBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+  toQWidgetConst (QDialogButtonBoxGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQDialogButtonBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+
+instance M280.QWidgetPtr QDialogButtonBox where
+  toQWidget (QDialogButtonBox ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQDialogButtonBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+  toQWidget (QDialogButtonBoxGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQDialogButtonBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+
+instance M30.QObjectConstPtr QDialogButtonBox where
+  toQObjectConst (QDialogButtonBox ptr') = M30.QObjectConst $ castQDialogButtonBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+  toQObjectConst (QDialogButtonBoxGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQDialogButtonBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+
+instance M30.QObjectPtr QDialogButtonBox where
+  toQObject (QDialogButtonBox ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQDialogButtonBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+  toQObject (QDialogButtonBoxGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQDialogButtonBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+
+new ::  HoppyP.IO QDialogButtonBox
+new =
+  HoppyP.fmap QDialogButtonBox
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QDialogButtonBox
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QDialogButtonBox
+  (newWithParent' arg'1')
+
+class QDialogButtonBoxSuper a where
+  downToQDialogButtonBox :: a -> QDialogButtonBox
+
+instance QDialogButtonBoxSuper M280.QWidget where
+  downToQDialogButtonBox = castQDialogButtonBoxToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QDialogButtonBoxConst $ castQWidgetToQDialogButtonBox ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QDialogButtonBoxConstGc fptr' $ castQWidgetToQDialogButtonBox ptr'
+instance QDialogButtonBoxSuper M30.QObject where
+  downToQDialogButtonBox = castQDialogButtonBoxToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QDialogButtonBoxConst $ castQObjectToQDialogButtonBox ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QDialogButtonBoxConstGc fptr' $ castQObjectToQDialogButtonBox ptr'
+
+class QDialogButtonBoxSuperConst a where
+  downToQDialogButtonBoxConst :: a -> QDialogButtonBoxConst
+
+instance QDialogButtonBoxSuperConst M280.QWidgetConst where
+  downToQDialogButtonBoxConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QDialogButtonBoxConst $ castQWidgetToQDialogButtonBox ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QDialogButtonBoxConstGc fptr' $ castQWidgetToQDialogButtonBox ptr'
+instance QDialogButtonBoxSuperConst M30.QObjectConst where
+  downToQDialogButtonBoxConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QDialogButtonBoxConst $ castQObjectToQDialogButtonBox ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QDialogButtonBoxButtonLayout where
+  fromEnum WinLayout = 0
+  fromEnum MacLayout = 1
+  fromEnum KdeLayout = 2
+  fromEnum GnomeLayout = 3
+  
+  toEnum (0) = WinLayout
+  toEnum (1) = MacLayout
+  toEnum (2) = KdeLayout
+  toEnum (3) = GnomeLayout
+  toEnum n' = HoppyP.error $ "Unknown QDialogButtonBoxButtonLayout numeric value: " ++ HoppyP.show n'
+
+data QDialogButtonBoxButtonRole =
+  InvalidRole
+  | AcceptRole
+  | RejectRole
+  | DestructiveRole
+  | ActionRole
+  | HelpRole
+  | YesRole
+  | NoRole
+  | ResetRole
+  | ApplyRole
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QDialogButtonBoxButtonRole where
+  fromEnum InvalidRole = -1
+  fromEnum AcceptRole = 0
+  fromEnum RejectRole = 1
+  fromEnum DestructiveRole = 2
+  fromEnum ActionRole = 3
+  fromEnum HelpRole = 4
+  fromEnum YesRole = 5
+  fromEnum NoRole = 6
+  fromEnum ResetRole = 7
+  fromEnum ApplyRole = 8
+  
+  toEnum (-1) = InvalidRole
+  toEnum (0) = AcceptRole
+  toEnum (1) = RejectRole
+  toEnum (2) = DestructiveRole
+  toEnum (3) = ActionRole
+  toEnum (4) = HelpRole
+  toEnum (5) = YesRole
+  toEnum (6) = NoRole
+  toEnum (7) = ResetRole
+  toEnum (8) = ApplyRole
+  toEnum n' = HoppyP.error $ "Unknown QDialogButtonBoxButtonRole numeric value: " ++ HoppyP.show n'
+
+data QDialogButtonBoxStandardButton =
+  Ok
+  | Open
+  | Save
+  | Cancel
+  | Close
+  | Discard
+  | Apply
+  | Reset
+  | RestoreDefaults
+  | Help
+  | SaveAll
+  | Yes
+  | YesToAll
+  | No
+  | NoToAll
+  | Abort
+  | Retry
+  | Ignore
+  | NoButton
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QDialogButtonBoxStandardButton where
+  fromEnum Ok = 1024
+  fromEnum Open = 8192
+  fromEnum Save = 2048
+  fromEnum Cancel = 4194304
+  fromEnum Close = 2097152
+  fromEnum Discard = 8388608
+  fromEnum Apply = 33554432
+  fromEnum Reset = 67108864
+  fromEnum RestoreDefaults = 134217728
+  fromEnum Help = 16777216
+  fromEnum SaveAll = 4096
+  fromEnum Yes = 16384
+  fromEnum YesToAll = 32768
+  fromEnum No = 65536
+  fromEnum NoToAll = 131072
+  fromEnum Abort = 262144
+  fromEnum Retry = 524288
+  fromEnum Ignore = 1048576
+  fromEnum NoButton = 0
+  
+  toEnum (1024) = Ok
+  toEnum (8192) = Open
+  toEnum (2048) = Save
+  toEnum (4194304) = Cancel
+  toEnum (2097152) = Close
+  toEnum (8388608) = Discard
+  toEnum (33554432) = Apply
+  toEnum (67108864) = Reset
+  toEnum (134217728) = RestoreDefaults
+  toEnum (16777216) = Help
+  toEnum (4096) = SaveAll
+  toEnum (16384) = Yes
+  toEnum (32768) = YesToAll
+  toEnum (65536) = No
+  toEnum (131072) = NoToAll
+  toEnum (262144) = Abort
+  toEnum (524288) = Retry
+  toEnum (1048576) = Ignore
+  toEnum (0) = NoButton
+  toEnum n' = HoppyP.error $ "Unknown QDialogButtonBoxStandardButton numeric value: " ++ HoppyP.show n'
+
+newtype QDialogButtonBoxStandardButtons = QDialogButtonBoxStandardButtons { fromQDialogButtonBoxStandardButtons :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQDialogButtonBoxStandardButtons a where
+  toQDialogButtonBoxStandardButtons :: a -> QDialogButtonBoxStandardButtons
+
+instance IsQDialogButtonBoxStandardButtons (HoppyFC.CInt) where
+  toQDialogButtonBoxStandardButtons = QDialogButtonBoxStandardButtons
+instance IsQDialogButtonBoxStandardButtons (HoppyP.Int) where
+  toQDialogButtonBoxStandardButtons = QDialogButtonBoxStandardButtons . HoppyFHR.coerceIntegral
+instance IsQDialogButtonBoxStandardButtons QDialogButtonBoxStandardButtons where
+  toQDialogButtonBoxStandardButtons = HoppyP.id
+
+instance IsQDialogButtonBoxStandardButtons QDialogButtonBoxStandardButton where
+  toQDialogButtonBoxStandardButtons = QDialogButtonBoxStandardButtons . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+ok = QDialogButtonBoxStandardButtons 1024
+open = QDialogButtonBoxStandardButtons 8192
+save = QDialogButtonBoxStandardButtons 2048
+cancel = QDialogButtonBoxStandardButtons 4194304
+close = QDialogButtonBoxStandardButtons 2097152
+discard = QDialogButtonBoxStandardButtons 8388608
+apply = QDialogButtonBoxStandardButtons 33554432
+reset = QDialogButtonBoxStandardButtons 67108864
+restoreDefaults = QDialogButtonBoxStandardButtons 134217728
+help = QDialogButtonBoxStandardButtons 16777216
+saveAll = QDialogButtonBoxStandardButtons 4096
+yes = QDialogButtonBoxStandardButtons 16384
+yesToAll = QDialogButtonBoxStandardButtons 32768
+no = QDialogButtonBoxStandardButtons 65536
+noToAll = QDialogButtonBoxStandardButtons 131072
+abort = QDialogButtonBoxStandardButtons 262144
+retry = QDialogButtonBoxStandardButtons 524288
+ignore = QDialogButtonBoxStandardButtons 1048576
+noButton = QDialogButtonBoxStandardButtons 0
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,380 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSpinBox as M172
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QDoubleSpinBox)
+foreign import ccall "genpop__QDoubleSpinBox_cleanText" cleanText' ::  HoppyF.Ptr QDoubleSpinBoxConst -> HoppyP.IO (HoppyF.Ptr M46.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 M46.QStringConst)
+foreign import ccall "genpop__QDoubleSpinBox_setPrefix" setPrefix' ::  HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr M46.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 M46.QStringConst)
+foreign import ccall "genpop__QDoubleSpinBox_setSuffix" setSuffix' ::  HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QDoubleSpinBox_textFromValue" textFromValue' ::  HoppyF.Ptr QDoubleSpinBoxConst -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr M46.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 M46.QStringConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "gencast__QDoubleSpinBox__QAbstractSpinBox" castQDoubleSpinBoxToQAbstractSpinBox :: HoppyF.Ptr QDoubleSpinBoxConst -> HoppyF.Ptr M172.QAbstractSpinBoxConst
+foreign import ccall "gencast__QAbstractSpinBox__QDoubleSpinBox" castQAbstractSpinBoxToQDoubleSpinBox :: HoppyF.Ptr M172.QAbstractSpinBoxConst -> HoppyF.Ptr QDoubleSpinBoxConst
+foreign import ccall "gencast__QDoubleSpinBox__QWidget" castQDoubleSpinBoxToQWidget :: HoppyF.Ptr QDoubleSpinBoxConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QDoubleSpinBox" castQWidgetToQDoubleSpinBox :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QDoubleSpinBoxConst
+foreign import ccall "gencast__QDoubleSpinBox__QObject" castQDoubleSpinBoxToQObject :: HoppyF.Ptr QDoubleSpinBoxConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QDoubleSpinBox" castQObjectToQDoubleSpinBox :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QDoubleSpinBoxConstPtr a => QDoubleSpinBoxValue a where
+#else
+instance QDoubleSpinBoxConstPtr a => QDoubleSpinBoxValue a where
+#endif
+  withQDoubleSpinBoxPtr = HoppyP.flip ($) . toQDoubleSpinBoxConst
+
+class (M172.QAbstractSpinBoxConstPtr this) => QDoubleSpinBoxConstPtr this where
+  toQDoubleSpinBoxConst :: this -> QDoubleSpinBoxConst
+
+cleanText :: (QDoubleSpinBoxValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+cleanText arg'1 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (cleanText' arg'1')
+
+decimals :: (QDoubleSpinBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+decimals arg'1 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (decimals' arg'1')
+
+maximum :: (QDoubleSpinBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+maximum arg'1 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (maximum' arg'1')
+
+minimum :: (QDoubleSpinBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+minimum arg'1 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (minimum' arg'1')
+
+prefix :: (QDoubleSpinBoxValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+prefix arg'1 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (prefix' arg'1')
+
+singleStep :: (QDoubleSpinBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+singleStep arg'1 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (singleStep' arg'1')
+
+suffix :: (QDoubleSpinBoxValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+suffix arg'1 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (suffix' arg'1')
+
+textFromValue :: (QDoubleSpinBoxValue arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO QtahP.String
+textFromValue arg'1 arg'2 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (textFromValue' arg'1' arg'2')
+
+value :: (QDoubleSpinBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+value arg'1 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (value' arg'1')
+
+valueFromText :: (QDoubleSpinBoxValue arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Double
+valueFromText arg'1 arg'2 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (valueFromText' arg'1' arg'2')
+
+class (QDoubleSpinBoxConstPtr this, M172.QAbstractSpinBoxPtr this) => QDoubleSpinBoxPtr this where
+  toQDoubleSpinBox :: this -> QDoubleSpinBox
+
+setDecimals :: (QDoubleSpinBoxPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setDecimals arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setDecimals' arg'1' arg'2')
+
+setMaximum :: (QDoubleSpinBoxPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setMaximum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setMaximum' arg'1' arg'2')
+
+setMinimum :: (QDoubleSpinBoxPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setMinimum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setMinimum' arg'1' arg'2')
+
+setPrefix :: (QDoubleSpinBoxPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setPrefix arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPrefix' arg'1' arg'2')
+
+setRange :: (QDoubleSpinBoxPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO ()
+setRange arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  (setRange' arg'1' arg'2' arg'3')
+
+setSingleStep :: (QDoubleSpinBoxPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setSingleStep arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setSingleStep' arg'1' arg'2')
+
+setSuffix :: (QDoubleSpinBoxPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setSuffix arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSuffix' arg'1' arg'2')
+
+setValue :: (QDoubleSpinBoxPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setValue' 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 M172.QAbstractSpinBoxConstPtr QDoubleSpinBoxConst where
+  toQAbstractSpinBoxConst (QDoubleSpinBoxConst ptr') = M172.QAbstractSpinBoxConst $ castQDoubleSpinBoxToQAbstractSpinBox ptr'
+  toQAbstractSpinBoxConst (QDoubleSpinBoxConstGc fptr' ptr') = M172.QAbstractSpinBoxConstGc fptr' $ castQDoubleSpinBoxToQAbstractSpinBox ptr'
+
+instance M280.QWidgetConstPtr QDoubleSpinBoxConst where
+  toQWidgetConst (QDoubleSpinBoxConst ptr') = M280.QWidgetConst $ castQDoubleSpinBoxToQWidget ptr'
+  toQWidgetConst (QDoubleSpinBoxConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQDoubleSpinBoxToQWidget ptr'
+
+instance M30.QObjectConstPtr QDoubleSpinBoxConst where
+  toQObjectConst (QDoubleSpinBoxConst ptr') = M30.QObjectConst $ castQDoubleSpinBoxToQObject ptr'
+  toQObjectConst (QDoubleSpinBoxConstGc fptr' ptr') = M30.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 M172.QAbstractSpinBoxConstPtr QDoubleSpinBox where
+  toQAbstractSpinBoxConst (QDoubleSpinBox ptr') = M172.QAbstractSpinBoxConst $ castQDoubleSpinBoxToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+  toQAbstractSpinBoxConst (QDoubleSpinBoxGc fptr' ptr') = M172.QAbstractSpinBoxConstGc fptr' $ castQDoubleSpinBoxToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+
+instance M172.QAbstractSpinBoxPtr QDoubleSpinBox where
+  toQAbstractSpinBox (QDoubleSpinBox ptr') = M172.QAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr M172.QAbstractSpinBoxConst -> HoppyF.Ptr M172.QAbstractSpinBox) $ castQDoubleSpinBoxToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+  toQAbstractSpinBox (QDoubleSpinBoxGc fptr' ptr') = M172.QAbstractSpinBoxGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M172.QAbstractSpinBoxConst -> HoppyF.Ptr M172.QAbstractSpinBox) $ castQDoubleSpinBoxToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+
+instance M280.QWidgetConstPtr QDoubleSpinBox where
+  toQWidgetConst (QDoubleSpinBox ptr') = M280.QWidgetConst $ castQDoubleSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+  toQWidgetConst (QDoubleSpinBoxGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQDoubleSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+
+instance M280.QWidgetPtr QDoubleSpinBox where
+  toQWidget (QDoubleSpinBox ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQDoubleSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+  toQWidget (QDoubleSpinBoxGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQDoubleSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+
+instance M30.QObjectConstPtr QDoubleSpinBox where
+  toQObjectConst (QDoubleSpinBox ptr') = M30.QObjectConst $ castQDoubleSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+  toQObjectConst (QDoubleSpinBoxGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQDoubleSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+
+instance M30.QObjectPtr QDoubleSpinBox where
+  toQObject (QDoubleSpinBox ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQDoubleSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+  toQObject (QDoubleSpinBoxGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQDoubleSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+
+new ::  HoppyP.IO QDoubleSpinBox
+new =
+  HoppyP.fmap QDoubleSpinBox
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QDoubleSpinBox
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QDoubleSpinBox
+  (newWithParent' arg'1')
+
+class QDoubleSpinBoxSuper a where
+  downToQDoubleSpinBox :: a -> QDoubleSpinBox
+
+instance QDoubleSpinBoxSuper M172.QAbstractSpinBox where
+  downToQDoubleSpinBox = castQDoubleSpinBoxToNonconst . cast' . M172.castQAbstractSpinBoxToConst
+    where
+      cast' (M172.QAbstractSpinBoxConst ptr') = QDoubleSpinBoxConst $ castQAbstractSpinBoxToQDoubleSpinBox ptr'
+      cast' (M172.QAbstractSpinBoxConstGc fptr' ptr') = QDoubleSpinBoxConstGc fptr' $ castQAbstractSpinBoxToQDoubleSpinBox ptr'
+instance QDoubleSpinBoxSuper M280.QWidget where
+  downToQDoubleSpinBox = castQDoubleSpinBoxToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QDoubleSpinBoxConst $ castQWidgetToQDoubleSpinBox ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QDoubleSpinBoxConstGc fptr' $ castQWidgetToQDoubleSpinBox ptr'
+instance QDoubleSpinBoxSuper M30.QObject where
+  downToQDoubleSpinBox = castQDoubleSpinBoxToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QDoubleSpinBoxConst $ castQObjectToQDoubleSpinBox ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QDoubleSpinBoxConstGc fptr' $ castQObjectToQDoubleSpinBox ptr'
+
+class QDoubleSpinBoxSuperConst a where
+  downToQDoubleSpinBoxConst :: a -> QDoubleSpinBoxConst
+
+instance QDoubleSpinBoxSuperConst M172.QAbstractSpinBoxConst where
+  downToQDoubleSpinBoxConst = cast'
+    where
+      cast' (M172.QAbstractSpinBoxConst ptr') = QDoubleSpinBoxConst $ castQAbstractSpinBoxToQDoubleSpinBox ptr'
+      cast' (M172.QAbstractSpinBoxConstGc fptr' ptr') = QDoubleSpinBoxConstGc fptr' $ castQAbstractSpinBoxToQDoubleSpinBox ptr'
+instance QDoubleSpinBoxSuperConst M280.QWidgetConst where
+  downToQDoubleSpinBoxConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QDoubleSpinBoxConst $ castQWidgetToQDoubleSpinBox ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QDoubleSpinBoxConstGc fptr' $ castQWidgetToQDoubleSpinBox ptr'
+instance QDoubleSpinBoxSuperConst M30.QObjectConst where
+  downToQDoubleSpinBoxConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QDoubleSpinBoxConst $ castQObjectToQDoubleSpinBox ptr'
+      cast' (M30.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,742 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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 (..),
+  showDirsOnly,
+  dontResolveSymlinks,
+  dontConfirmOverwrite,
+  dontUseSheet,
+  dontUseNativeDialog,
+  readOnly,
+  hideNameFilterDetails,
+  dontUseCustomDirectoryIcons,
+  QFileDialogViewMode (..),
+  ) 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.QDir as M14
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M48
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QDialog as M188
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QFileDialog)
+foreign import ccall "genpop__QFileDialog_newWithParentAndFlags" newWithParentAndFlags' ::  HoppyF.Ptr M280.QWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QFileDialog)
+foreign import ccall "genpop__QFileDialog_newWithParentAndCaption" newWithParentAndCaption' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr QFileDialog)
+foreign import ccall "genpop__QFileDialog_newWithParentAndCaptionAndDirectory" newWithParentAndCaptionAndDirectory' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr QFileDialog)
+foreign import ccall "genpop__QFileDialog_newWithParentAndCaptionAndDirectoryAndFilter" newWithParentAndCaptionAndDirectoryAndFilter' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.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 M46.QStringConst)
+foreign import ccall "genpop__QFileDialog_setDefaultSuffix" setDefaultSuffix' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_directory" directory' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M14.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 M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QFileDialog_getExistingDirectoryWithOptions" getExistingDirectoryWithOptions' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QFileDialog_getOpenFileName" getOpenFileName' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QFileDialog_getOpenFileNameWithOptions" getOpenFileNameWithOptions' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QFileDialog_getOpenFileNames" getOpenFileNames' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M48.QStringListConst)
+foreign import ccall "genpop__QFileDialog_getOpenFileNamesWithOptions" getOpenFileNamesWithOptions' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M48.QStringListConst)
+foreign import ccall "genpop__QFileDialog_getSaveFileName" getSaveFileName' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QFileDialog_getSaveFileNameWithOptions" getSaveFileNameWithOptions' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QFileDialog_history" history' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M48.QStringListConst)
+foreign import ccall "genpop__QFileDialog_setHistory" setHistory' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M48.QStringListConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_labelText" labelText' ::  HoppyF.Ptr QFileDialogConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QFileDialog_mimeTypeFilters" mimeTypeFilters' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M48.QStringListConst)
+foreign import ccall "genpop__QFileDialog_setMimeTypeFilters" setMimeTypeFilters' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M48.QStringListConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_nameFilters" nameFilters' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M48.QStringListConst)
+foreign import ccall "genpop__QFileDialog_setNameFilters" setNameFilters' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M48.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 M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_selectNameFilter" selectNameFilter' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_selectedFiles" selectedFiles' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M48.QStringListConst)
+foreign import ccall "genpop__QFileDialog_selectedNameFilter" selectedNameFilter' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QFileDialog_setDirectory" setDirectory' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M14.QDirConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_setDirectoryPath" setDirectoryPath' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_setLabelText" setLabelText' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_setNameFilter" setNameFilter' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_setOption" setOption' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyFHR.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 "gencast__QFileDialog__QDialog" castQFileDialogToQDialog :: HoppyF.Ptr QFileDialogConst -> HoppyF.Ptr M188.QDialogConst
+foreign import ccall "gencast__QDialog__QFileDialog" castQDialogToQFileDialog :: HoppyF.Ptr M188.QDialogConst -> HoppyF.Ptr QFileDialogConst
+foreign import ccall "gencast__QFileDialog__QWidget" castQFileDialogToQWidget :: HoppyF.Ptr QFileDialogConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QFileDialog" castQWidgetToQFileDialog :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QFileDialogConst
+foreign import ccall "gencast__QFileDialog__QObject" castQFileDialogToQObject :: HoppyF.Ptr QFileDialogConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QFileDialog" castQObjectToQFileDialog :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QFileDialogConstPtr a => QFileDialogValue a where
+#else
+instance QFileDialogConstPtr a => QFileDialogValue a where
+#endif
+  withQFileDialogPtr = HoppyP.flip ($) . toQFileDialogConst
+
+class (M188.QDialogConstPtr this) => QFileDialogConstPtr this where
+  toQFileDialogConst :: this -> QFileDialogConst
+
+acceptMode :: (QFileDialogValue arg'1) => arg'1 -> HoppyP.IO QFileDialogAcceptMode
+acceptMode arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (acceptMode' arg'1')
+
+defaultSuffix :: (QFileDialogValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+defaultSuffix arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (defaultSuffix' arg'1')
+
+directory :: (QFileDialogValue arg'1) => arg'1 -> HoppyP.IO M14.QDir
+directory arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M14.QDirConst) =<<
+  (directory' arg'1')
+
+fileMode :: (QFileDialogValue arg'1) => arg'1 -> HoppyP.IO QFileDialogFileMode
+fileMode arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (fileMode' arg'1')
+
+filter :: (QFileDialogValue arg'1) => arg'1 -> HoppyP.IO M14.QDirFilters
+filter arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M14.QDirFilters
+  (filter' arg'1')
+
+history :: (QFileDialogValue arg'1) => arg'1 -> HoppyP.IO [QtahP.String]
+history arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M48.QStringListConst) =<<
+  (history' arg'1')
+
+labelText :: (QFileDialogValue arg'1) => arg'1 -> QFileDialogDialogLabel -> HoppyP.IO QtahP.String
+labelText arg'1 arg'2 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (labelText' arg'1' arg'2')
+
+mimeTypeFilters :: (QFileDialogValue arg'1) => arg'1 -> HoppyP.IO [QtahP.String]
+mimeTypeFilters arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M48.QStringListConst) =<<
+  (mimeTypeFilters' arg'1')
+
+nameFilters :: (QFileDialogValue arg'1) => arg'1 -> HoppyP.IO [QtahP.String]
+nameFilters arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M48.QStringListConst) =<<
+  (nameFilters' arg'1')
+
+options :: (QFileDialogValue arg'1) => arg'1 -> HoppyP.IO QFileDialogOptions
+options arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QFileDialogOptions
+  (options' arg'1')
+
+selectedFiles :: (QFileDialogValue arg'1) => arg'1 -> HoppyP.IO [QtahP.String]
+selectedFiles arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M48.QStringListConst) =<<
+  (selectedFiles' arg'1')
+
+selectedNameFilter :: (QFileDialogValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+selectedNameFilter arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (selectedNameFilter' arg'1')
+
+viewMode :: (QFileDialogValue arg'1) => arg'1 -> HoppyP.IO QFileDialogViewMode
+viewMode arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (viewMode' arg'1')
+
+class (QFileDialogConstPtr this, M188.QDialogPtr this) => QFileDialogPtr this where
+  toQFileDialog :: this -> QFileDialog
+
+setAcceptMode :: (QFileDialogPtr arg'1) => arg'1 -> QFileDialogAcceptMode -> HoppyP.IO ()
+setAcceptMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setAcceptMode' arg'1' arg'2')
+
+setDefaultSuffix :: (QFileDialogPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setDefaultSuffix arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setDefaultSuffix' arg'1' arg'2')
+
+setFileMode :: (QFileDialogPtr arg'1) => arg'1 -> QFileDialogFileMode -> HoppyP.IO ()
+setFileMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setFileMode' arg'1' arg'2')
+
+setFilter :: (QFileDialogPtr arg'1, M14.IsQDirFilters arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setFilter arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  let arg'2' = M14.fromQDirFilters $ M14.toQDirFilters arg'2 in
+  (setFilter' arg'1' arg'2')
+
+setHistory :: (QFileDialogPtr arg'1, M48.QStringListValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setHistory arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M48.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setHistory' arg'1' arg'2')
+
+setMimeTypeFilters :: (QFileDialogPtr arg'1, M48.QStringListValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setMimeTypeFilters arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M48.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setMimeTypeFilters' arg'1' arg'2')
+
+setNameFilters :: (QFileDialogPtr arg'1, M48.QStringListValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setNameFilters arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M48.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setNameFilters' arg'1' arg'2')
+
+setOptions :: (QFileDialogPtr arg'1, IsQFileDialogOptions arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setOptions arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  let arg'2' = fromQFileDialogOptions $ toQFileDialogOptions arg'2 in
+  (setOptions' arg'1' arg'2')
+
+selectFile :: (QFileDialogPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+selectFile arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (selectFile' arg'1' arg'2')
+
+selectNameFilter :: (QFileDialogPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+selectNameFilter arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (selectNameFilter' arg'1' arg'2')
+
+setDirectory :: (QFileDialogPtr arg'1, M14.QDirValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setDirectory arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M14.withQDirPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setDirectory' arg'1' arg'2')
+
+setDirectoryPath :: (QFileDialogPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setDirectoryPath arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setDirectoryPath' arg'1' arg'2')
+
+setLabelText :: (QFileDialogPtr arg'1, M46.QStringValue arg'3) => arg'1 -> QFileDialogDialogLabel -> arg'3 -> HoppyP.IO ()
+setLabelText arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setLabelText' arg'1' arg'2' arg'3')
+
+setNameFilter :: (QFileDialogPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setNameFilter arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setNameFilter' arg'1' arg'2')
+
+setOption :: (QFileDialogPtr arg'1) => arg'1 -> QFileDialogOption -> HoppyP.Bool -> HoppyP.IO ()
+setOption arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  let arg'3' = if arg'3 then 1 else 0 in
+  (setOption' arg'1' arg'2' arg'3')
+
+setViewMode :: (QFileDialogPtr arg'1) => arg'1 -> QFileDialogViewMode -> HoppyP.IO ()
+setViewMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setViewMode' arg'1' arg'2')
+
+getExistingDirectory :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO QtahP.String
+getExistingDirectory arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (getExistingDirectory' arg'1' arg'2' arg'3')
+
+getExistingDirectoryWithOptions :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  let arg'4' = fromQFileDialogOptions $ toQFileDialogOptions arg'4 in
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (getExistingDirectoryWithOptions' arg'1' arg'2' arg'3' arg'4')
+
+getOpenFileName :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M46.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (getOpenFileName' arg'1' arg'2' arg'3' arg'4')
+
+getOpenFileNameWithOptions :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M46.QStringValue arg'4, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M46.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyFHR.withCppPtr (M46.toQString arg'5) $ \arg'5' ->
+  let arg'6' = fromQFileDialogOptions $ toQFileDialogOptions arg'6 in
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (getOpenFileNameWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+getOpenFileNames :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M46.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M48.QStringListConst) =<<
+  (getOpenFileNames' arg'1' arg'2' arg'3' arg'4')
+
+getOpenFileNamesWithOptions :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M46.QStringValue arg'4, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M46.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyFHR.withCppPtr (M46.toQString arg'5) $ \arg'5' ->
+  let arg'6' = fromQFileDialogOptions $ toQFileDialogOptions arg'6 in
+  (HoppyFHR.decodeAndDelete . M48.QStringListConst) =<<
+  (getOpenFileNamesWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+getSaveFileName :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M46.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (getSaveFileName' arg'1' arg'2' arg'3' arg'4')
+
+getSaveFileNameWithOptions :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M46.QStringValue arg'4, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M46.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyFHR.withCppPtr (M46.toQString arg'5) $ \arg'5' ->
+  let arg'6' = fromQFileDialogOptions $ toQFileDialogOptions arg'6 in
+  (HoppyFHR.decodeAndDelete . M46.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 M188.QDialogConstPtr QFileDialogConst where
+  toQDialogConst (QFileDialogConst ptr') = M188.QDialogConst $ castQFileDialogToQDialog ptr'
+  toQDialogConst (QFileDialogConstGc fptr' ptr') = M188.QDialogConstGc fptr' $ castQFileDialogToQDialog ptr'
+
+instance M280.QWidgetConstPtr QFileDialogConst where
+  toQWidgetConst (QFileDialogConst ptr') = M280.QWidgetConst $ castQFileDialogToQWidget ptr'
+  toQWidgetConst (QFileDialogConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQFileDialogToQWidget ptr'
+
+instance M30.QObjectConstPtr QFileDialogConst where
+  toQObjectConst (QFileDialogConst ptr') = M30.QObjectConst $ castQFileDialogToQObject ptr'
+  toQObjectConst (QFileDialogConstGc fptr' ptr') = M30.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 M188.QDialogConstPtr QFileDialog where
+  toQDialogConst (QFileDialog ptr') = M188.QDialogConst $ castQFileDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+  toQDialogConst (QFileDialogGc fptr' ptr') = M188.QDialogConstGc fptr' $ castQFileDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+
+instance M188.QDialogPtr QFileDialog where
+  toQDialog (QFileDialog ptr') = M188.QDialog $ (HoppyF.castPtr :: HoppyF.Ptr M188.QDialogConst -> HoppyF.Ptr M188.QDialog) $ castQFileDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+  toQDialog (QFileDialogGc fptr' ptr') = M188.QDialogGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M188.QDialogConst -> HoppyF.Ptr M188.QDialog) $ castQFileDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+
+instance M280.QWidgetConstPtr QFileDialog where
+  toQWidgetConst (QFileDialog ptr') = M280.QWidgetConst $ castQFileDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+  toQWidgetConst (QFileDialogGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQFileDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+
+instance M280.QWidgetPtr QFileDialog where
+  toQWidget (QFileDialog ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQFileDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+  toQWidget (QFileDialogGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQFileDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+
+instance M30.QObjectConstPtr QFileDialog where
+  toQObjectConst (QFileDialog ptr') = M30.QObjectConst $ castQFileDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+  toQObjectConst (QFileDialogGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQFileDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+
+instance M30.QObjectPtr QFileDialog where
+  toQObject (QFileDialog ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQFileDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+  toQObject (QFileDialogGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQFileDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+
+new ::  HoppyP.IO QFileDialog
+new =
+  HoppyP.fmap QFileDialog
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QFileDialog
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QFileDialog
+  (newWithParent' arg'1')
+
+newWithParentAndFlags :: (M280.QWidgetPtr arg'1, M58.IsQtWindowFlags arg'2) => arg'1 -> arg'2 -> HoppyP.IO QFileDialog
+newWithParentAndFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtWindowFlags $ M58.toQtWindowFlags arg'2 in
+  HoppyP.fmap QFileDialog
+  (newWithParentAndFlags' arg'1' arg'2')
+
+newWithParentAndCaption :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QFileDialog
+newWithParentAndCaption arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QFileDialog
+  (newWithParentAndCaption' arg'1' arg'2')
+
+newWithParentAndCaptionAndDirectory :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO QFileDialog
+newWithParentAndCaptionAndDirectory arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QFileDialog
+  (newWithParentAndCaptionAndDirectory' arg'1' arg'2' arg'3')
+
+newWithParentAndCaptionAndDirectoryAndFilter :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M46.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 M188.QDialog where
+  downToQFileDialog = castQFileDialogToNonconst . cast' . M188.castQDialogToConst
+    where
+      cast' (M188.QDialogConst ptr') = QFileDialogConst $ castQDialogToQFileDialog ptr'
+      cast' (M188.QDialogConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQDialogToQFileDialog ptr'
+instance QFileDialogSuper M280.QWidget where
+  downToQFileDialog = castQFileDialogToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QFileDialogConst $ castQWidgetToQFileDialog ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQWidgetToQFileDialog ptr'
+instance QFileDialogSuper M30.QObject where
+  downToQFileDialog = castQFileDialogToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QFileDialogConst $ castQObjectToQFileDialog ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQObjectToQFileDialog ptr'
+
+class QFileDialogSuperConst a where
+  downToQFileDialogConst :: a -> QFileDialogConst
+
+instance QFileDialogSuperConst M188.QDialogConst where
+  downToQFileDialogConst = cast'
+    where
+      cast' (M188.QDialogConst ptr') = QFileDialogConst $ castQDialogToQFileDialog ptr'
+      cast' (M188.QDialogConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQDialogToQFileDialog ptr'
+instance QFileDialogSuperConst M280.QWidgetConst where
+  downToQFileDialogConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QFileDialogConst $ castQWidgetToQFileDialog ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQWidgetToQFileDialog ptr'
+instance QFileDialogSuperConst M30.QObjectConst where
+  downToQFileDialogConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QFileDialogConst $ castQObjectToQFileDialog ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QFileDialogAcceptMode where
+  fromEnum AcceptOpen = 0
+  fromEnum AcceptSave = 1
+  
+  toEnum (0) = AcceptOpen
+  toEnum (1) = AcceptSave
+  toEnum n' = HoppyP.error $ "Unknown QFileDialogAcceptMode numeric value: " ++ HoppyP.show n'
+
+data QFileDialogDialogLabel =
+  LookIn
+  | FileName
+  | FileType
+  | Accept
+  | Reject
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QFileDialogDialogLabel where
+  fromEnum LookIn = 0
+  fromEnum FileName = 1
+  fromEnum FileType = 2
+  fromEnum Accept = 3
+  fromEnum Reject = 4
+  
+  toEnum (0) = LookIn
+  toEnum (1) = FileName
+  toEnum (2) = FileType
+  toEnum (3) = Accept
+  toEnum (4) = Reject
+  toEnum n' = HoppyP.error $ "Unknown QFileDialogDialogLabel numeric value: " ++ HoppyP.show n'
+
+data QFileDialogFileMode =
+  AnyFile
+  | ExistingFile
+  | Directory
+  | ExistingFiles
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QFileDialogFileMode where
+  fromEnum AnyFile = 0
+  fromEnum ExistingFile = 1
+  fromEnum Directory = 2
+  fromEnum ExistingFiles = 3
+  
+  toEnum (0) = AnyFile
+  toEnum (1) = ExistingFile
+  toEnum (2) = Directory
+  toEnum (3) = ExistingFiles
+  toEnum n' = HoppyP.error $ "Unknown QFileDialogFileMode numeric value: " ++ HoppyP.show n'
+
+data QFileDialogOption =
+  ShowDirsOnly
+  | DontResolveSymlinks
+  | DontConfirmOverwrite
+  | DontUseSheet
+  | DontUseNativeDialog
+  | ReadOnly
+  | HideNameFilterDetails
+  | DontUseCustomDirectoryIcons
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QFileDialogOption where
+  fromEnum ShowDirsOnly = 1
+  fromEnum DontResolveSymlinks = 2
+  fromEnum DontConfirmOverwrite = 4
+  fromEnum DontUseSheet = 8
+  fromEnum DontUseNativeDialog = 16
+  fromEnum ReadOnly = 32
+  fromEnum HideNameFilterDetails = 64
+  fromEnum DontUseCustomDirectoryIcons = 128
+  
+  toEnum (1) = ShowDirsOnly
+  toEnum (2) = DontResolveSymlinks
+  toEnum (4) = DontConfirmOverwrite
+  toEnum (8) = DontUseSheet
+  toEnum (16) = DontUseNativeDialog
+  toEnum (32) = ReadOnly
+  toEnum (64) = HideNameFilterDetails
+  toEnum (128) = DontUseCustomDirectoryIcons
+  toEnum n' = HoppyP.error $ "Unknown QFileDialogOption numeric value: " ++ HoppyP.show n'
+
+newtype QFileDialogOptions = QFileDialogOptions { fromQFileDialogOptions :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQFileDialogOptions a where
+  toQFileDialogOptions :: a -> QFileDialogOptions
+
+instance IsQFileDialogOptions (HoppyFC.CInt) where
+  toQFileDialogOptions = QFileDialogOptions
+instance IsQFileDialogOptions (HoppyP.Int) where
+  toQFileDialogOptions = QFileDialogOptions . HoppyFHR.coerceIntegral
+instance IsQFileDialogOptions QFileDialogOptions where
+  toQFileDialogOptions = HoppyP.id
+
+instance IsQFileDialogOptions QFileDialogOption where
+  toQFileDialogOptions = QFileDialogOptions . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+showDirsOnly = QFileDialogOptions 1
+dontResolveSymlinks = QFileDialogOptions 2
+dontConfirmOverwrite = QFileDialogOptions 4
+dontUseSheet = QFileDialogOptions 8
+dontUseNativeDialog = QFileDialogOptions 16
+readOnly = QFileDialogOptions 32
+hideNameFilterDetails = QFileDialogOptions 64
+dontUseCustomDirectoryIcons = QFileDialogOptions 128
+
+data QFileDialogViewMode =
+  Detail
+  | List
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QFileDialogViewMode where
+  fromEnum Detail = 0
+  fromEnum List = 1
+  
+  toEnum (0) = Detail
+  toEnum (1) = List
+  toEnum n' = HoppyP.error $ "Unknown QFileDialogViewMode numeric value: " ++ HoppyP.show n'
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,627 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayout as M228
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M230
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Prelude (($), (++), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QFormLayout_new" new' ::  HoppyP.IO (HoppyF.Ptr QFormLayout)
+foreign import ccall "genpop__QFormLayout_newWithParent" newWithParent' ::  HoppyF.Ptr M280.QWidget -> HoppyP.IO (HoppyF.Ptr QFormLayout)
+foreign import ccall "genpop__QFormLayout_addRowWidgetWidget" addRowWidgetWidget' ::  HoppyF.Ptr QFormLayout -> HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_addRowWidgetLayout" addRowWidgetLayout' ::  HoppyF.Ptr QFormLayout -> HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M228.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_addRowStringWidget" addRowStringWidget' ::  HoppyF.Ptr QFormLayout -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_addRowStringLayout" addRowStringLayout' ::  HoppyF.Ptr QFormLayout -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M228.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_addRowWidget" addRowWidget' ::  HoppyF.Ptr QFormLayout -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_addRowLayout" addRowLayout' ::  HoppyF.Ptr QFormLayout -> HoppyF.Ptr M228.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 M228.QLayout -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFormLayout_getLayoutRole" getLayoutRole' ::  HoppyF.Ptr QFormLayoutConst -> HoppyF.Ptr M228.QLayout -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFormLayout_getWidgetRow" getWidgetRow' ::  HoppyF.Ptr QFormLayoutConst -> HoppyF.Ptr M280.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFormLayout_getWidgetRole" getWidgetRole' ::  HoppyF.Ptr QFormLayoutConst -> HoppyF.Ptr M280.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 M280.QWidget -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_insertRowWidgetLayout" insertRowWidgetLayout' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M228.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_insertRowStringWidget" insertRowStringWidget' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_insertRowStringLayout" insertRowStringLayout' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M228.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_insertRowWidget" insertRowWidget' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_insertRowLayout" insertRowLayout' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyF.Ptr M228.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_itemAt" itemAt' ::  HoppyF.Ptr QFormLayoutConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M230.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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "genpop__QFormLayout_labelForFieldLayout" labelForFieldLayout' ::  HoppyF.Ptr QFormLayoutConst -> HoppyF.Ptr M228.QLayout -> HoppyP.IO (HoppyF.Ptr M280.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 M230.QLayoutItem -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_setLayout" setLayout' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M228.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_setWidget" setWidget' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M280.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 M228.QLayoutConst
+foreign import ccall "gencast__QLayout__QFormLayout" castQLayoutToQFormLayout :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr QFormLayoutConst
+foreign import ccall "gencast__QFormLayout__QObject" castQFormLayoutToQObject :: HoppyF.Ptr QFormLayoutConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QFormLayout" castQObjectToQFormLayout :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr QFormLayoutConst
+foreign import ccall "gencast__QFormLayout__QLayoutItem" castQFormLayoutToQLayoutItem :: HoppyF.Ptr QFormLayoutConst -> HoppyF.Ptr M230.QLayoutItemConst
+foreign import ccall "gencast__QLayoutItem__QFormLayout" castQLayoutItemToQFormLayout :: HoppyF.Ptr M230.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QFormLayoutConstPtr a => QFormLayoutValue a where
+#else
+instance QFormLayoutConstPtr a => QFormLayoutValue a where
+#endif
+  withQFormLayoutPtr = HoppyP.flip ($) . toQFormLayoutConst
+
+class (M228.QLayoutConstPtr this) => QFormLayoutConstPtr this where
+  toQFormLayoutConst :: this -> QFormLayoutConst
+
+fieldGrowthPolicy :: (QFormLayoutValue arg'1) => arg'1 -> HoppyP.IO QFormLayoutFieldGrowthPolicy
+fieldGrowthPolicy arg'1 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (fieldGrowthPolicy' arg'1')
+
+formAlignment :: (QFormLayoutValue arg'1) => arg'1 -> HoppyP.IO M58.QtAlignment
+formAlignment arg'1 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtAlignment
+  (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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (getItemRole' arg'1' arg'2')
+
+getLayoutRow :: (QFormLayoutValue arg'1, M228.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 (M228.toQLayout arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (getLayoutRow' arg'1' arg'2')
+
+getLayoutRole :: (QFormLayoutValue arg'1, M228.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 (M228.toQLayout arg'2) $ \arg'2' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (getLayoutRole' arg'1' arg'2')
+
+getWidgetRow :: (QFormLayoutValue arg'1, M280.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 (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (getWidgetRow' arg'1' arg'2')
+
+getWidgetRole :: (QFormLayoutValue arg'1, M280.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 (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (getWidgetRole' arg'1' arg'2')
+
+horizontalSpacing :: (QFormLayoutValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+horizontalSpacing arg'1 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (horizontalSpacing' arg'1')
+
+itemAt :: (QFormLayoutValue arg'1) => arg'1 -> HoppyP.Int -> QFormLayoutItemRole -> HoppyP.IO M230.QLayoutItem
+itemAt arg'1 arg'2 arg'3 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  HoppyP.fmap M230.QLayoutItem
+  (itemAt' arg'1' arg'2' arg'3')
+
+labelAlignment :: (QFormLayoutValue arg'1) => arg'1 -> HoppyP.IO M58.QtAlignment
+labelAlignment arg'1 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtAlignment
+  (labelAlignment' arg'1')
+
+labelForFieldWidget :: (QFormLayoutValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO M280.QWidget
+labelForFieldWidget arg'1 arg'2 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap M280.QWidget
+  (labelForFieldWidget' arg'1' arg'2')
+
+labelForFieldLayout :: (QFormLayoutValue arg'1, M228.QLayoutPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO M280.QWidget
+labelForFieldLayout arg'1 arg'2 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M228.toQLayout arg'2) $ \arg'2' ->
+  HoppyP.fmap M280.QWidget
+  (labelForFieldLayout' arg'1' arg'2')
+
+rowCount :: (QFormLayoutValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+rowCount arg'1 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (rowCount' arg'1')
+
+rowWrapPolicy :: (QFormLayoutValue arg'1) => arg'1 -> HoppyP.IO QFormLayoutRowWrapPolicy
+rowWrapPolicy arg'1 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (rowWrapPolicy' arg'1')
+
+spacing :: (QFormLayoutValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+spacing arg'1 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (spacing' arg'1')
+
+verticalSpacing :: (QFormLayoutValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+verticalSpacing arg'1 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (verticalSpacing' arg'1')
+
+class (QFormLayoutConstPtr this, M228.QLayoutPtr this) => QFormLayoutPtr this where
+  toQFormLayout :: this -> QFormLayout
+
+addRowWidgetWidget :: (QFormLayoutPtr arg'1, M280.QWidgetPtr arg'2, M280.QWidgetPtr arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO ()
+addRowWidgetWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  (addRowWidgetWidget' arg'1' arg'2' arg'3')
+
+addRowWidgetLayout :: (QFormLayoutPtr arg'1, M280.QWidgetPtr arg'2, M228.QLayoutPtr arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO ()
+addRowWidgetLayout arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyFHR.withCppPtr (M228.toQLayout arg'3) $ \arg'3' ->
+  (addRowWidgetLayout' arg'1' arg'2' arg'3')
+
+addRowStringWidget :: (QFormLayoutPtr arg'1, M46.QStringValue arg'2, M280.QWidgetPtr arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO ()
+addRowStringWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  (addRowStringWidget' arg'1' arg'2' arg'3')
+
+addRowStringLayout :: (QFormLayoutPtr arg'1, M46.QStringValue arg'2, M228.QLayoutPtr arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO ()
+addRowStringLayout arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.withCppPtr (M228.toQLayout arg'3) $ \arg'3' ->
+  (addRowStringLayout' arg'1' arg'2' arg'3')
+
+addRowWidget :: (QFormLayoutPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+addRowWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (addRowWidget' arg'1' arg'2')
+
+addRowLayout :: (QFormLayoutPtr arg'1, M228.QLayoutPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+addRowLayout arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M228.toQLayout arg'2) $ \arg'2' ->
+  (addRowLayout' arg'1' arg'2')
+
+setFieldGrowthPolicy :: (QFormLayoutPtr arg'1) => arg'1 -> QFormLayoutFieldGrowthPolicy -> HoppyP.IO ()
+setFieldGrowthPolicy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setFieldGrowthPolicy' arg'1' arg'2')
+
+setFormAlignment :: (QFormLayoutPtr arg'1, M58.IsQtAlignment arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setFormAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtAlignment $ M58.toQtAlignment arg'2 in
+  (setFormAlignment' arg'1' arg'2')
+
+setHorizontalSpacing :: (QFormLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setHorizontalSpacing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setHorizontalSpacing' arg'1' arg'2')
+
+insertRowWidgetWidget :: (QFormLayoutPtr arg'1, M280.QWidgetPtr arg'3, M280.QWidgetPtr arg'4) => arg'1 -> HoppyP.Int -> arg'3 -> arg'4 -> HoppyP.IO ()
+insertRowWidgetWidget arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'4) $ \arg'4' ->
+  (insertRowWidgetWidget' arg'1' arg'2' arg'3' arg'4')
+
+insertRowWidgetLayout :: (QFormLayoutPtr arg'1, M280.QWidgetPtr arg'3, M228.QLayoutPtr arg'4) => arg'1 -> HoppyP.Int -> arg'3 -> arg'4 -> HoppyP.IO ()
+insertRowWidgetLayout arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  HoppyFHR.withCppPtr (M228.toQLayout arg'4) $ \arg'4' ->
+  (insertRowWidgetLayout' arg'1' arg'2' arg'3' arg'4')
+
+insertRowStringWidget :: (QFormLayoutPtr arg'1, M46.QStringValue arg'3, M280.QWidgetPtr arg'4) => arg'1 -> HoppyP.Int -> arg'3 -> arg'4 -> HoppyP.IO ()
+insertRowStringWidget arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'4) $ \arg'4' ->
+  (insertRowStringWidget' arg'1' arg'2' arg'3' arg'4')
+
+insertRowStringLayout :: (QFormLayoutPtr arg'1, M46.QStringValue arg'3, M228.QLayoutPtr arg'4) => arg'1 -> HoppyP.Int -> arg'3 -> arg'4 -> HoppyP.IO ()
+insertRowStringLayout arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyFHR.withCppPtr (M228.toQLayout arg'4) $ \arg'4' ->
+  (insertRowStringLayout' arg'1' arg'2' arg'3' arg'4')
+
+insertRowWidget :: (QFormLayoutPtr arg'1, M280.QWidgetPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+insertRowWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  (insertRowWidget' arg'1' arg'2' arg'3')
+
+insertRowLayout :: (QFormLayoutPtr arg'1, M228.QLayoutPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+insertRowLayout arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M228.toQLayout arg'3) $ \arg'3' ->
+  (insertRowLayout' arg'1' arg'2' arg'3')
+
+setLabelAlignment :: (QFormLayoutPtr arg'1, M58.IsQtAlignment arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setLabelAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtAlignment $ M58.toQtAlignment arg'2 in
+  (setLabelAlignment' arg'1' arg'2')
+
+setRowWrapPolicy :: (QFormLayoutPtr arg'1) => arg'1 -> QFormLayoutRowWrapPolicy -> HoppyP.IO ()
+setRowWrapPolicy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setRowWrapPolicy' arg'1' arg'2')
+
+setItem :: (QFormLayoutPtr arg'1, M230.QLayoutItemPtr arg'4) => arg'1 -> HoppyP.Int -> QFormLayoutItemRole -> arg'4 -> HoppyP.IO ()
+setItem arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  HoppyFHR.withCppPtr (M230.toQLayoutItem arg'4) $ \arg'4' ->
+  (setItem' arg'1' arg'2' arg'3' arg'4')
+
+setLayout :: (QFormLayoutPtr arg'1, M228.QLayoutPtr arg'4) => arg'1 -> HoppyP.Int -> QFormLayoutItemRole -> arg'4 -> HoppyP.IO ()
+setLayout arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  HoppyFHR.withCppPtr (M228.toQLayout arg'4) $ \arg'4' ->
+  (setLayout' arg'1' arg'2' arg'3' arg'4')
+
+setWidget :: (QFormLayoutPtr arg'1, M280.QWidgetPtr arg'4) => arg'1 -> HoppyP.Int -> QFormLayoutItemRole -> arg'4 -> HoppyP.IO ()
+setWidget arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'4) $ \arg'4' ->
+  (setWidget' arg'1' arg'2' arg'3' arg'4')
+
+setSpacing :: (QFormLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setSpacing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setSpacing' arg'1' arg'2')
+
+setVerticalSpacing :: (QFormLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setVerticalSpacing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (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 M228.QLayoutConstPtr QFormLayoutConst where
+  toQLayoutConst (QFormLayoutConst ptr') = M228.QLayoutConst $ castQFormLayoutToQLayout ptr'
+  toQLayoutConst (QFormLayoutConstGc fptr' ptr') = M228.QLayoutConstGc fptr' $ castQFormLayoutToQLayout ptr'
+
+instance M30.QObjectConstPtr QFormLayoutConst where
+  toQObjectConst (QFormLayoutConst ptr') = M30.QObjectConst $ castQFormLayoutToQObject ptr'
+  toQObjectConst (QFormLayoutConstGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQFormLayoutToQObject ptr'
+
+instance M230.QLayoutItemConstPtr QFormLayoutConst where
+  toQLayoutItemConst (QFormLayoutConst ptr') = M230.QLayoutItemConst $ castQFormLayoutToQLayoutItem ptr'
+  toQLayoutItemConst (QFormLayoutConstGc fptr' ptr') = M230.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 M228.QLayoutConstPtr QFormLayout where
+  toQLayoutConst (QFormLayout ptr') = M228.QLayoutConst $ castQFormLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+  toQLayoutConst (QFormLayoutGc fptr' ptr') = M228.QLayoutConstGc fptr' $ castQFormLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+
+instance M228.QLayoutPtr QFormLayout where
+  toQLayout (QFormLayout ptr') = M228.QLayout $ (HoppyF.castPtr :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr M228.QLayout) $ castQFormLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+  toQLayout (QFormLayoutGc fptr' ptr') = M228.QLayoutGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr M228.QLayout) $ castQFormLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+
+instance M30.QObjectConstPtr QFormLayout where
+  toQObjectConst (QFormLayout ptr') = M30.QObjectConst $ castQFormLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+  toQObjectConst (QFormLayoutGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQFormLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+
+instance M30.QObjectPtr QFormLayout where
+  toQObject (QFormLayout ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQFormLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+  toQObject (QFormLayoutGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQFormLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+
+instance M230.QLayoutItemConstPtr QFormLayout where
+  toQLayoutItemConst (QFormLayout ptr') = M230.QLayoutItemConst $ castQFormLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+  toQLayoutItemConst (QFormLayoutGc fptr' ptr') = M230.QLayoutItemConstGc fptr' $ castQFormLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+
+instance M230.QLayoutItemPtr QFormLayout where
+  toQLayoutItem (QFormLayout ptr') = M230.QLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQFormLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+  toQLayoutItem (QFormLayoutGc fptr' ptr') = M230.QLayoutItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQFormLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+
+new ::  HoppyP.IO QFormLayout
+new =
+  HoppyP.fmap QFormLayout
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QFormLayout
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QFormLayout
+  (newWithParent' arg'1')
+
+class QFormLayoutSuper a where
+  downToQFormLayout :: a -> QFormLayout
+
+instance QFormLayoutSuper M228.QLayout where
+  downToQFormLayout = castQFormLayoutToNonconst . cast' . M228.castQLayoutToConst
+    where
+      cast' (M228.QLayoutConst ptr') = QFormLayoutConst $ castQLayoutToQFormLayout ptr'
+      cast' (M228.QLayoutConstGc fptr' ptr') = QFormLayoutConstGc fptr' $ castQLayoutToQFormLayout ptr'
+instance QFormLayoutSuper M30.QObject where
+  downToQFormLayout = castQFormLayoutToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QFormLayoutConst $ castQObjectToQFormLayout ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QFormLayoutConstGc fptr' $ castQObjectToQFormLayout ptr'
+instance QFormLayoutSuper M230.QLayoutItem where
+  downToQFormLayout = castQFormLayoutToNonconst . cast' . M230.castQLayoutItemToConst
+    where
+      cast' (M230.QLayoutItemConst ptr') = QFormLayoutConst $ castQLayoutItemToQFormLayout ptr'
+      cast' (M230.QLayoutItemConstGc fptr' ptr') = QFormLayoutConstGc fptr' $ castQLayoutItemToQFormLayout ptr'
+
+class QFormLayoutSuperConst a where
+  downToQFormLayoutConst :: a -> QFormLayoutConst
+
+instance QFormLayoutSuperConst M228.QLayoutConst where
+  downToQFormLayoutConst = cast'
+    where
+      cast' (M228.QLayoutConst ptr') = QFormLayoutConst $ castQLayoutToQFormLayout ptr'
+      cast' (M228.QLayoutConstGc fptr' ptr') = QFormLayoutConstGc fptr' $ castQLayoutToQFormLayout ptr'
+instance QFormLayoutSuperConst M30.QObjectConst where
+  downToQFormLayoutConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QFormLayoutConst $ castQObjectToQFormLayout ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QFormLayoutConstGc fptr' $ castQObjectToQFormLayout ptr'
+instance QFormLayoutSuperConst M230.QLayoutItemConst where
+  downToQFormLayoutConst = cast'
+    where
+      cast' (M230.QLayoutItemConst ptr') = QFormLayoutConst $ castQLayoutItemToQFormLayout ptr'
+      cast' (M230.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QFormLayoutFieldGrowthPolicy where
+  fromEnum FieldsStayAtSizeHint = 0
+  fromEnum ExpandingFieldsGrow = 1
+  fromEnum AllNonFixedFieldsGrow = 2
+  
+  toEnum (0) = FieldsStayAtSizeHint
+  toEnum (1) = ExpandingFieldsGrow
+  toEnum (2) = AllNonFixedFieldsGrow
+  toEnum n' = HoppyP.error $ "Unknown QFormLayoutFieldGrowthPolicy numeric value: " ++ HoppyP.show n'
+
+data QFormLayoutItemRole =
+  LabelRole
+  | FieldRole
+  | SpanningRole
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QFormLayoutItemRole where
+  fromEnum LabelRole = 0
+  fromEnum FieldRole = 1
+  fromEnum SpanningRole = 2
+  
+  toEnum (0) = LabelRole
+  toEnum (1) = FieldRole
+  toEnum (2) = SpanningRole
+  toEnum n' = HoppyP.error $ "Unknown QFormLayoutItemRole numeric value: " ++ HoppyP.show n'
+
+data QFormLayoutRowWrapPolicy =
+  DontWrapRows
+  | WrapLongRows
+  | WrapAllRows
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QFormLayoutRowWrapPolicy where
+  fromEnum DontWrapRows = 0
+  fromEnum WrapLongRows = 1
+  fromEnum WrapAllRows = 2
+  
+  toEnum (0) = DontWrapRows
+  toEnum (1) = WrapLongRows
+  toEnum (2) = WrapAllRows
+  toEnum n' = HoppyP.error $ "Unknown QFormLayoutRowWrapPolicy numeric value: " ++ HoppyP.show n'
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,370 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QFrame)
+foreign import ccall "genpop__QFrame_frameRect" frameRect' ::  HoppyF.Ptr QFrameConst -> HoppyP.IO (HoppyF.Ptr M38.QRectConst)
+foreign import ccall "genpop__QFrame_setFrameRect" setFrameRect' ::  HoppyF.Ptr QFrame -> HoppyF.Ptr M38.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 M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QFrame" castQWidgetToQFrame :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QFrameConst
+foreign import ccall "gencast__QFrame__QObject" castQFrameToQObject :: HoppyF.Ptr QFrameConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QFrame" castQObjectToQFrame :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QFrameConstPtr a => QFrameValue a where
+#else
+instance QFrameConstPtr a => QFrameValue a where
+#endif
+  withQFramePtr = HoppyP.flip ($) . toQFrameConst
+
+class (M280.QWidgetConstPtr this) => QFrameConstPtr this where
+  toQFrameConst :: this -> QFrameConst
+
+frameRect :: (QFrameValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+frameRect arg'1 =
+  withQFramePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (frameRect' arg'1')
+
+frameShadow :: (QFrameValue arg'1) => arg'1 -> HoppyP.IO QFrameShadow
+frameShadow arg'1 =
+  withQFramePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (frameShadow' arg'1')
+
+frameShape :: (QFrameValue arg'1) => arg'1 -> HoppyP.IO QFrameShape
+frameShape arg'1 =
+  withQFramePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (frameShape' arg'1')
+
+frameStyle :: (QFrameValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+frameStyle arg'1 =
+  withQFramePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (frameStyle' arg'1')
+
+frameWidth :: (QFrameValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+frameWidth arg'1 =
+  withQFramePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (frameWidth' arg'1')
+
+lineWidth :: (QFrameValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+lineWidth arg'1 =
+  withQFramePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lineWidth' arg'1')
+
+midLineWidth :: (QFrameValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+midLineWidth arg'1 =
+  withQFramePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (midLineWidth' arg'1')
+
+class (QFrameConstPtr this, M280.QWidgetPtr this) => QFramePtr this where
+  toQFrame :: this -> QFrame
+
+setFrameRect :: (QFramePtr arg'1, M38.QRectValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setFrameRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFrame arg'1) $ \arg'1' ->
+  M38.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFrameRect' arg'1' arg'2')
+
+setFrameShadow :: (QFramePtr arg'1) => arg'1 -> QFrameShadow -> HoppyP.IO ()
+setFrameShadow arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFrame arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setFrameShadow' arg'1' arg'2')
+
+setFrameShape :: (QFramePtr arg'1) => arg'1 -> QFrameShape -> HoppyP.IO ()
+setFrameShape arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFrame arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setFrameShape' arg'1' arg'2')
+
+setFrameStyle :: (QFramePtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setFrameStyle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFrame arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setFrameStyle' arg'1' arg'2')
+
+setLineWidth :: (QFramePtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setLineWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFrame arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setLineWidth' arg'1' arg'2')
+
+setMidLineWidth :: (QFramePtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setMidLineWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFrame arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (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 M280.QWidgetConstPtr QFrameConst where
+  toQWidgetConst (QFrameConst ptr') = M280.QWidgetConst $ castQFrameToQWidget ptr'
+  toQWidgetConst (QFrameConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQFrameToQWidget ptr'
+
+instance M30.QObjectConstPtr QFrameConst where
+  toQObjectConst (QFrameConst ptr') = M30.QObjectConst $ castQFrameToQObject ptr'
+  toQObjectConst (QFrameConstGc fptr' ptr') = M30.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 M280.QWidgetConstPtr QFrame where
+  toQWidgetConst (QFrame ptr') = M280.QWidgetConst $ castQFrameToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+  toQWidgetConst (QFrameGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQFrameToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+
+instance M280.QWidgetPtr QFrame where
+  toQWidget (QFrame ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQFrameToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+  toQWidget (QFrameGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQFrameToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+
+instance M30.QObjectConstPtr QFrame where
+  toQObjectConst (QFrame ptr') = M30.QObjectConst $ castQFrameToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+  toQObjectConst (QFrameGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQFrameToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+
+instance M30.QObjectPtr QFrame where
+  toQObject (QFrame ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQFrameToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+  toQObject (QFrameGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQFrameToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+
+new ::  HoppyP.IO QFrame
+new =
+  HoppyP.fmap QFrame
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QFrame
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QFrame
+  (newWithParent' arg'1')
+
+class QFrameSuper a where
+  downToQFrame :: a -> QFrame
+
+instance QFrameSuper M280.QWidget where
+  downToQFrame = castQFrameToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QFrameConst $ castQWidgetToQFrame ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QFrameConstGc fptr' $ castQWidgetToQFrame ptr'
+instance QFrameSuper M30.QObject where
+  downToQFrame = castQFrameToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QFrameConst $ castQObjectToQFrame ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QFrameConstGc fptr' $ castQObjectToQFrame ptr'
+
+class QFrameSuperConst a where
+  downToQFrameConst :: a -> QFrameConst
+
+instance QFrameSuperConst M280.QWidgetConst where
+  downToQFrameConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QFrameConst $ castQWidgetToQFrame ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QFrameConstGc fptr' $ castQWidgetToQFrame ptr'
+instance QFrameSuperConst M30.QObjectConst where
+  downToQFrameConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QFrameConst $ castQObjectToQFrame ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QFrameShadow where
+  fromEnum Plain = 16
+  fromEnum Raised = 32
+  fromEnum Sunken = 48
+  
+  toEnum (16) = Plain
+  toEnum (32) = Raised
+  toEnum (48) = Sunken
+  toEnum n' = HoppyP.error $ "Unknown QFrameShadow numeric value: " ++ HoppyP.show n'
+
+data QFrameShape =
+  NoFrame
+  | Box
+  | Panel
+  | WinPanel
+  | HLine
+  | VLine
+  | StyledPanel
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QFrameShape where
+  fromEnum NoFrame = 0
+  fromEnum Box = 1
+  fromEnum Panel = 2
+  fromEnum WinPanel = 3
+  fromEnum HLine = 4
+  fromEnum VLine = 5
+  fromEnum StyledPanel = 6
+  
+  toEnum (0) = NoFrame
+  toEnum (1) = Box
+  toEnum (2) = Panel
+  toEnum (3) = WinPanel
+  toEnum (4) = HLine
+  toEnum (5) = VLine
+  toEnum (6) = StyledPanel
+  toEnum n' = HoppyP.error $ "Unknown QFrameShape numeric value: " ++ HoppyP.show n'
+
+data QFrameStyleMask =
+  ShapeMask
+  | ShadowMask
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QFrameStyleMask where
+  fromEnum ShapeMask = 15
+  fromEnum ShadowMask = 240
+  
+  toEnum (15) = ShapeMask
+  toEnum (240) = ShadowMask
+  toEnum n' = HoppyP.error $ "Unknown QFrameStyleMask numeric value: " ++ HoppyP.show n'
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsEllipseItem.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsEllipseItem.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsEllipseItem.hs
@@ -0,0 +1,207 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M164
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M202
+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 M164.QAbstractGraphicsShapeItemConst
+foreign import ccall "gencast__QAbstractGraphicsShapeItem__QGraphicsEllipseItem" castQAbstractGraphicsShapeItemToQGraphicsEllipseItem :: HoppyF.Ptr M164.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr QGraphicsEllipseItemConst
+foreign import ccall "gencast__QGraphicsEllipseItem__QGraphicsItem" castQGraphicsEllipseItemToQGraphicsItem :: HoppyF.Ptr QGraphicsEllipseItemConst -> HoppyF.Ptr M202.QGraphicsItemConst
+foreign import ccall "gencast__QGraphicsItem__QGraphicsEllipseItem" castQGraphicsItemToQGraphicsEllipseItem :: HoppyF.Ptr M202.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QGraphicsEllipseItemConstPtr a => QGraphicsEllipseItemValue a where
+#else
+instance QGraphicsEllipseItemConstPtr a => QGraphicsEllipseItemValue a where
+#endif
+  withQGraphicsEllipseItemPtr = HoppyP.flip ($) . toQGraphicsEllipseItemConst
+
+class (M164.QAbstractGraphicsShapeItemConstPtr this) => QGraphicsEllipseItemConstPtr this where
+  toQGraphicsEllipseItemConst :: this -> QGraphicsEllipseItemConst
+
+class (QGraphicsEllipseItemConstPtr this, M164.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 M164.QAbstractGraphicsShapeItemConstPtr QGraphicsEllipseItemConst where
+  toQAbstractGraphicsShapeItemConst (QGraphicsEllipseItemConst ptr') = M164.QAbstractGraphicsShapeItemConst $ castQGraphicsEllipseItemToQAbstractGraphicsShapeItem ptr'
+  toQAbstractGraphicsShapeItemConst (QGraphicsEllipseItemConstGc fptr' ptr') = M164.QAbstractGraphicsShapeItemConstGc fptr' $ castQGraphicsEllipseItemToQAbstractGraphicsShapeItem ptr'
+
+instance M202.QGraphicsItemConstPtr QGraphicsEllipseItemConst where
+  toQGraphicsItemConst (QGraphicsEllipseItemConst ptr') = M202.QGraphicsItemConst $ castQGraphicsEllipseItemToQGraphicsItem ptr'
+  toQGraphicsItemConst (QGraphicsEllipseItemConstGc fptr' ptr') = M202.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 M164.QAbstractGraphicsShapeItemConstPtr QGraphicsEllipseItem where
+  toQAbstractGraphicsShapeItemConst (QGraphicsEllipseItem ptr') = M164.QAbstractGraphicsShapeItemConst $ castQGraphicsEllipseItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsEllipseItem -> HoppyF.Ptr QGraphicsEllipseItemConst) ptr'
+  toQAbstractGraphicsShapeItemConst (QGraphicsEllipseItemGc fptr' ptr') = M164.QAbstractGraphicsShapeItemConstGc fptr' $ castQGraphicsEllipseItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsEllipseItem -> HoppyF.Ptr QGraphicsEllipseItemConst) ptr'
+
+instance M164.QAbstractGraphicsShapeItemPtr QGraphicsEllipseItem where
+  toQAbstractGraphicsShapeItem (QGraphicsEllipseItem ptr') = M164.QAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr M164.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr M164.QAbstractGraphicsShapeItem) $ castQGraphicsEllipseItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsEllipseItem -> HoppyF.Ptr QGraphicsEllipseItemConst) ptr'
+  toQAbstractGraphicsShapeItem (QGraphicsEllipseItemGc fptr' ptr') = M164.QAbstractGraphicsShapeItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M164.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr M164.QAbstractGraphicsShapeItem) $ castQGraphicsEllipseItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsEllipseItem -> HoppyF.Ptr QGraphicsEllipseItemConst) ptr'
+
+instance M202.QGraphicsItemConstPtr QGraphicsEllipseItem where
+  toQGraphicsItemConst (QGraphicsEllipseItem ptr') = M202.QGraphicsItemConst $ castQGraphicsEllipseItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsEllipseItem -> HoppyF.Ptr QGraphicsEllipseItemConst) ptr'
+  toQGraphicsItemConst (QGraphicsEllipseItemGc fptr' ptr') = M202.QGraphicsItemConstGc fptr' $ castQGraphicsEllipseItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsEllipseItem -> HoppyF.Ptr QGraphicsEllipseItemConst) ptr'
+
+instance M202.QGraphicsItemPtr QGraphicsEllipseItem where
+  toQGraphicsItem (QGraphicsEllipseItem ptr') = M202.QGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr M202.QGraphicsItemConst -> HoppyF.Ptr M202.QGraphicsItem) $ castQGraphicsEllipseItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsEllipseItem -> HoppyF.Ptr QGraphicsEllipseItemConst) ptr'
+  toQGraphicsItem (QGraphicsEllipseItemGc fptr' ptr') = M202.QGraphicsItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M202.QGraphicsItemConst -> HoppyF.Ptr M202.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 =
+  let arg'1' = HoppyP.realToFrac arg'1 in
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  HoppyP.fmap QGraphicsEllipseItem
+  (newWithRaw' arg'1' arg'2' arg'3' arg'4')
+
+class QGraphicsEllipseItemSuper a where
+  downToQGraphicsEllipseItem :: a -> QGraphicsEllipseItem
+
+instance QGraphicsEllipseItemSuper M164.QAbstractGraphicsShapeItem where
+  downToQGraphicsEllipseItem = castQGraphicsEllipseItemToNonconst . cast' . M164.castQAbstractGraphicsShapeItemToConst
+    where
+      cast' (M164.QAbstractGraphicsShapeItemConst ptr') = QGraphicsEllipseItemConst $ castQAbstractGraphicsShapeItemToQGraphicsEllipseItem ptr'
+      cast' (M164.QAbstractGraphicsShapeItemConstGc fptr' ptr') = QGraphicsEllipseItemConstGc fptr' $ castQAbstractGraphicsShapeItemToQGraphicsEllipseItem ptr'
+instance QGraphicsEllipseItemSuper M202.QGraphicsItem where
+  downToQGraphicsEllipseItem = castQGraphicsEllipseItemToNonconst . cast' . M202.castQGraphicsItemToConst
+    where
+      cast' (M202.QGraphicsItemConst ptr') = QGraphicsEllipseItemConst $ castQGraphicsItemToQGraphicsEllipseItem ptr'
+      cast' (M202.QGraphicsItemConstGc fptr' ptr') = QGraphicsEllipseItemConstGc fptr' $ castQGraphicsItemToQGraphicsEllipseItem ptr'
+
+class QGraphicsEllipseItemSuperConst a where
+  downToQGraphicsEllipseItemConst :: a -> QGraphicsEllipseItemConst
+
+instance QGraphicsEllipseItemSuperConst M164.QAbstractGraphicsShapeItemConst where
+  downToQGraphicsEllipseItemConst = cast'
+    where
+      cast' (M164.QAbstractGraphicsShapeItemConst ptr') = QGraphicsEllipseItemConst $ castQAbstractGraphicsShapeItemToQGraphicsEllipseItem ptr'
+      cast' (M164.QAbstractGraphicsShapeItemConstGc fptr' ptr') = QGraphicsEllipseItemConstGc fptr' $ castQAbstractGraphicsShapeItemToQGraphicsEllipseItem ptr'
+instance QGraphicsEllipseItemSuperConst M202.QGraphicsItemConst where
+  downToQGraphicsEllipseItemConst = cast'
+    where
+      cast' (M202.QGraphicsItemConst ptr') = QGraphicsEllipseItemConst $ castQGraphicsItemToQGraphicsEllipseItem ptr'
+      cast' (M202.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,80 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M164
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M202
+import qualified Prelude as HoppyP
+
+
+class QGraphicsEllipseItemValue a where
+  withQGraphicsEllipseItemPtr :: a -> (QGraphicsEllipseItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QGraphicsEllipseItemConstPtr a => QGraphicsEllipseItemValue a
+#else
+instance QGraphicsEllipseItemConstPtr a => QGraphicsEllipseItemValue a
+#endif
+
+class (M164.QAbstractGraphicsShapeItemConstPtr this) => QGraphicsEllipseItemConstPtr this where
+  toQGraphicsEllipseItemConst :: this -> QGraphicsEllipseItemConst
+
+class (QGraphicsEllipseItemConstPtr this, M164.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 M164.QAbstractGraphicsShapeItemConstPtr QGraphicsEllipseItemConst
+
+instance M202.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 M164.QAbstractGraphicsShapeItemConstPtr QGraphicsEllipseItem
+
+instance M164.QAbstractGraphicsShapeItemPtr QGraphicsEllipseItem
+
+instance M202.QGraphicsItemConstPtr QGraphicsEllipseItem
+
+instance M202.QGraphicsItemPtr QGraphicsEllipseItem
+castQGraphicsEllipseItemToQAbstractGraphicsShapeItem :: HoppyF.Ptr QGraphicsEllipseItemConst -> HoppyF.Ptr M164.QAbstractGraphicsShapeItemConst
+castQGraphicsEllipseItemToQGraphicsItem :: HoppyF.Ptr QGraphicsEllipseItemConst -> HoppyF.Ptr M202.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsItem.hs
@@ -0,0 +1,1203 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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,
+  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 (..),
+  itemIsMovable,
+  itemIsSelectable,
+  itemIsFocusable,
+  itemClipsToShape,
+  itemClipsChildrenToShape,
+  itemIgnoresTransformations,
+  itemIgnoresParentOpacity,
+  itemDoesntPropagateOpacityToChildren,
+  itemStacksBehindParent,
+  itemUsesExtendedStyleOption,
+  itemHasNoContents,
+  itemSendsGeometryChanges,
+  itemAcceptsInputMethod,
+  itemNegativeZStacksBehindParent,
+  itemIsPanel,
+  itemSendsScenePositionChanges,
+  itemContainsChildrenInShape,
+  QGraphicsItemPanelModality (..),
+  ) 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.Core.HPointF as HPointF
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M36
+import qualified Graphics.UI.Qtah.Generated.Core.QRectF as M40
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Gui.QPainterPath as M128
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsScene as M208
+import Prelude (($), (++), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QGraphicsItem_acceptDrops" acceptDrops' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_acceptHoverEvents" acceptHoverEvents' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_acceptTouchEvents" acceptTouchEvents' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.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 M40.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 M40.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 M128.QPainterPathConst)
+foreign import ccall "genpop__QGraphicsItem_collidesWithItem" collidesWithItem' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_collidesWithPath" collidesWithPath' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyF.Ptr M128.QPainterPathConst -> HoppyP.IO HoppyFHR.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 M36.QPointFConst -> HoppyP.IO HoppyFHR.CBool
+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 M40.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 HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_hasFocus" hasFocus' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_isAncestorOf" isAncestorOf' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_isBlockedByModalPanel" isBlockedByModalPanel' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_isBlockedByModalPanelAll" isBlockedByModalPanelAll' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyF.Ptr (HoppyF.Ptr QGraphicsItem) -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_isClipped" isClipped' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_isEnabled" isEnabled' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_isObscured" isObscured' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_isObscuredRaw" isObscuredRaw' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_isObscuredRectF" isObscuredRectF' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyF.Ptr M40.QRectFConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_isObscuredBy" isObscuredBy' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_isPanel" isPanel' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_isSelected" isSelected' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_isUnderMouse" isUnderMouse' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_isVisible" isVisible' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_isVisibleTo" isVisibleTo' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_isWidget" isWidget' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsItem_isWindow" isWindow' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFHR.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 M128.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 M36.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 M208.QGraphicsScene)
+foreign import ccall "genpop__QGraphicsItem_sceneBoundingRect" sceneBoundingRect' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr M40.QRectFConst)
+foreign import ccall "genpop__QGraphicsItem_scenePos" scenePos' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr M36.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 M40.QRectFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setAcceptDrops" setAcceptDrops' ::  HoppyF.Ptr QGraphicsItem -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setAcceptHoverEvents" setAcceptHoverEvents' ::  HoppyF.Ptr QGraphicsItem -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setAcceptTouchEvents" setAcceptTouchEvents' ::  HoppyF.Ptr QGraphicsItem -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setActive" setActive' ::  HoppyF.Ptr QGraphicsItem -> HoppyFHR.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 -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setFiltersChildEvents" setFiltersChildEvents' ::  HoppyF.Ptr QGraphicsItem -> HoppyFHR.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 M36.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 -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setToolTip" setToolTip' ::  HoppyF.Ptr QGraphicsItem -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setTransformOriginPointF" setTransformOriginPointF' ::  HoppyF.Ptr QGraphicsItem -> HoppyF.Ptr M36.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 -> HoppyFHR.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 M128.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 M46.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 M36.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 M40.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QGraphicsItemConstPtr a => QGraphicsItemValue a where
+#else
+instance QGraphicsItemConstPtr a => QGraphicsItemValue a where
+#endif
+  withQGraphicsItemPtr = HoppyP.flip ($) . toQGraphicsItemConst
+
+class (HoppyFHR.CppPtr this) => QGraphicsItemConstPtr this where
+  toQGraphicsItemConst :: this -> QGraphicsItemConst
+
+acceptDrops :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+acceptDrops arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (acceptDrops' arg'1')
+
+acceptHoverEvents :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+acceptHoverEvents arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (acceptHoverEvents' arg'1')
+
+acceptTouchEvents :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+acceptTouchEvents arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (acceptTouchEvents' arg'1')
+
+boundingRect :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO M40.QRectF
+boundingRect arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M40.QRectFConst) =<<
+  (boundingRect' arg'1')
+
+boundingRegionGranularity :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+boundingRegionGranularity arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (boundingRegionGranularity' arg'1')
+
+childrenBoundingRect :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO M40.QRectF
+childrenBoundingRect arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M40.QRectFConst) =<<
+  (childrenBoundingRect' arg'1')
+
+clipPath :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO M128.QPainterPath
+clipPath arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M128.QPainterPathConst) =<<
+  (clipPath' arg'1')
+
+collidesWithItem :: (QGraphicsItemValue arg'1, QGraphicsItemValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (collidesWithItem' arg'1' arg'2')
+
+collidesWithPath :: (QGraphicsItemValue arg'1, M128.QPainterPathValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+collidesWithPath arg'1 arg'2 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M128.withQPainterPathPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (collidesWithPath' arg'1' arg'2')
+
+commonAncestorItem :: (QGraphicsItemValue arg'1, QGraphicsItemValue arg'2) => arg'1 -> 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 arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+contains arg'1 arg'2 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (contains' arg'1' arg'2')
+
+effectiveOpacity :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+effectiveOpacity arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (effectiveOpacity' arg'1')
+
+filtersChildEvents :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+filtersChildEvents arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (filtersChildEvents' arg'1')
+
+focusItem :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO QGraphicsItem
+focusItem arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QGraphicsItem
+  (focusItem' arg'1')
+
+focusProxy :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO QGraphicsItem
+focusProxy arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QGraphicsItem
+  (focusProxy' arg'1')
+
+hasCursor :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasCursor arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasCursor' arg'1')
+
+hasFocus :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasFocus arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasFocus' arg'1')
+
+isActive :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isActive arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isActive' arg'1')
+
+isAncestorOf :: (QGraphicsItemValue arg'1, QGraphicsItemValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (isAncestorOf' arg'1' arg'2')
+
+isBlockedByModalPanel :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isBlockedByModalPanel arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isBlockedByModalPanel' arg'1')
+
+isBlockedByModalPanelAll :: (QGraphicsItemValue arg'1) => arg'1 -> 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.fmap (/= 0)
+  (isBlockedByModalPanelAll' arg'1' arg'2')
+
+isClipped :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isClipped arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isClipped' arg'1')
+
+isEnabled :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEnabled arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEnabled' arg'1')
+
+isObscured :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isObscured arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isObscured' arg'1')
+
+isObscuredRaw :: (QGraphicsItemValue arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  HoppyP.fmap (/= 0)
+  (isObscuredRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+isObscuredRectF :: (QGraphicsItemValue arg'1, M40.QRectFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+isObscuredRectF arg'1 arg'2 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M40.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (isObscuredRectF' arg'1' arg'2')
+
+isObscuredBy :: (QGraphicsItemValue arg'1, QGraphicsItemValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (isObscuredBy' arg'1' arg'2')
+
+isPanel :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isPanel arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isPanel' arg'1')
+
+isSelected :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isSelected arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isSelected' arg'1')
+
+isUnderMouse :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isUnderMouse arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isUnderMouse' arg'1')
+
+isVisible :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isVisible arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isVisible' arg'1')
+
+isVisibleTo :: (QGraphicsItemValue arg'1, QGraphicsItemValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (isVisibleTo' arg'1' arg'2')
+
+isWidget :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isWidget arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isWidget' arg'1')
+
+isWindow :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isWindow arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isWindow' arg'1')
+
+opacity :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+opacity arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (opacity' arg'1')
+
+opaqueArea :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO M128.QPainterPath
+opaqueArea arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M128.QPainterPathConst) =<<
+  (opaqueArea' arg'1')
+
+panel :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO QGraphicsItem
+panel arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QGraphicsItem
+  (panel' arg'1')
+
+parentItem :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO QGraphicsItem
+parentItem arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QGraphicsItem
+  (parentItem' arg'1')
+
+pos :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+pos arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (pos' arg'1')
+
+rotation :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+rotation arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (rotation' arg'1')
+
+scale :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+scale arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (scale' arg'1')
+
+scene :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO M208.QGraphicsScene
+scene arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M208.QGraphicsScene
+  (scene' arg'1')
+
+sceneBoundingRect :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO M40.QRectF
+sceneBoundingRect arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M40.QRectFConst) =<<
+  (sceneBoundingRect' arg'1')
+
+scenePos :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+scenePos arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (scenePos' arg'1')
+
+shape :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO M128.QPainterPath
+shape arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M128.QPainterPathConst) =<<
+  (shape' arg'1')
+
+toolTip :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+toolTip arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (toolTip' arg'1')
+
+topLevelItem :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO QGraphicsItem
+topLevelItem arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QGraphicsItem
+  (topLevelItem' arg'1')
+
+transformOriginPoint :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+transformOriginPoint arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (transformOriginPoint' arg'1')
+
+itemType :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+itemType arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (itemType' arg'1')
+
+x :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+x arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (x' arg'1')
+
+y :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+y arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (y' arg'1')
+
+zValue :: (QGraphicsItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+zValue arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (zValue' arg'1')
+
+class (QGraphicsItemConstPtr this) => QGraphicsItemPtr this where
+  toQGraphicsItem :: this -> QGraphicsItem
+
+advance :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+advance arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (advance' arg'1' arg'2')
+
+clearFocus :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.IO ()
+clearFocus arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (clearFocus' arg'1')
+
+ensureVisible :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.IO ()
+ensureVisible arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (ensureVisible' arg'1')
+
+ensureVisibleRectFAll :: (QGraphicsItemPtr arg'1, M40.QRectFValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+ensureVisibleRectFAll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  M40.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  (ensureVisibleRectFAll' arg'1' arg'2' arg'3' arg'4')
+
+ensureVisibleRaw :: (QGraphicsItemPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (ensureVisibleRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+ensureVisibleRawAll :: (QGraphicsItemPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  let arg'6' = HoppyFHR.coerceIntegral arg'6 in
+  let arg'7' = HoppyFHR.coerceIntegral arg'7 in
+  (ensureVisibleRawAll' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+grabKeyboard :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.IO ()
+grabKeyboard arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (grabKeyboard' arg'1')
+
+grabMouse :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.IO ()
+grabMouse arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (grabMouse' arg'1')
+
+hide :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.IO ()
+hide arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (hide' arg'1')
+
+installSceneEventFilter :: (QGraphicsItemPtr arg'1, QGraphicsItemPtr arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO ()
+moveBy arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  (moveBy' arg'1' arg'2' arg'3')
+
+removeSceneEventFilter :: (QGraphicsItemPtr arg'1, QGraphicsItemPtr arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.IO ()
+resetTransform arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (resetTransform' arg'1')
+
+scroll :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO ()
+scroll arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  (scroll' arg'1' arg'2' arg'3')
+
+scrollAll :: (QGraphicsItemPtr arg'1, M40.QRectFValue arg'4) => arg'1 -> HoppyP.Double -> HoppyP.Double -> arg'4 -> HoppyP.IO ()
+scrollAll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  M40.withQRectFPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (scrollAll' arg'1' arg'2' arg'3' arg'4')
+
+setAcceptDrops :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setAcceptDrops arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setAcceptDrops' arg'1' arg'2')
+
+setAcceptHoverEvents :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setAcceptHoverEvents arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setAcceptHoverEvents' arg'1' arg'2')
+
+setAcceptTouchEvents :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setAcceptTouchEvents arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setAcceptTouchEvents' arg'1' arg'2')
+
+setActive :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setActive arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setActive' arg'1' arg'2')
+
+setBoundingRegionGranularity :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setBoundingRegionGranularity arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setBoundingRegionGranularity' arg'1' arg'2')
+
+setEnabled :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setEnabled' arg'1' arg'2')
+
+setFiltersChildEvents :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setFiltersChildEvents arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setFiltersChildEvents' arg'1' arg'2')
+
+setFocus :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.IO ()
+setFocus arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (setFocus' arg'1')
+
+setFocusProxy :: (QGraphicsItemPtr arg'1, QGraphicsItemPtr arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setOpacity arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setOpacity' arg'1' arg'2')
+
+setParentItem :: (QGraphicsItemPtr arg'1, QGraphicsItemPtr arg'2) => arg'1 -> 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 arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setPosPointF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPosPointF' arg'1' arg'2')
+
+setPosRaw :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO ()
+setPosRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  (setPosRaw' arg'1' arg'2' arg'3')
+
+setRotation :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setRotation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setRotation' arg'1' arg'2')
+
+setScale :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setScale arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setScale' arg'1' arg'2')
+
+setSelected :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setSelected arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setSelected' arg'1' arg'2')
+
+setToolTip :: (QGraphicsItemPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setToolTip arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToolTip' arg'1' arg'2')
+
+setTransformOriginPointF :: (QGraphicsItemPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setTransformOriginPointF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTransformOriginPointF' arg'1' arg'2')
+
+setTransformOriginPointRaw :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO ()
+setTransformOriginPointRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  (setTransformOriginPointRaw' arg'1' arg'2' arg'3')
+
+setVisible :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setVisible' arg'1' arg'2')
+
+setX :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setX arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setX' arg'1' arg'2')
+
+setY :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setY arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setY' arg'1' arg'2')
+
+setZValue :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setZValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setZValue' arg'1' arg'2')
+
+show :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.IO ()
+show arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (show' arg'1')
+
+stackBefore :: (QGraphicsItemPtr arg'1, QGraphicsItemValue arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.IO ()
+ungrabKeyboard arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (ungrabKeyboard' arg'1')
+
+ungrabMouse :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.IO ()
+ungrabMouse arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (ungrabMouse' arg'1')
+
+unsetCursor :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.IO ()
+unsetCursor arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (unsetCursor' arg'1')
+
+update :: (QGraphicsItemPtr arg'1) => arg'1 -> HoppyP.IO ()
+update arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (update' arg'1')
+
+updateRectF :: (QGraphicsItemPtr arg'1, M40.QRectFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+updateRectF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  M40.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (updateRectF' arg'1' arg'2')
+
+updateRaw :: (QGraphicsItemPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QGraphicsItemCacheMode where
+  fromEnum NoCache = 0
+  fromEnum ItemCoordinateCache = 1
+  fromEnum DeviceCoordinateCache = 2
+  
+  toEnum (0) = NoCache
+  toEnum (1) = ItemCoordinateCache
+  toEnum (2) = DeviceCoordinateCache
+  toEnum n' = HoppyP.error $ "Unknown QGraphicsItemCacheMode numeric value: " ++ HoppyP.show n'
+
+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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QGraphicsItemGraphicsItemChange where
+  fromEnum ItemEnabledChange = 3
+  fromEnum ItemEnabledHasChanged = 13
+  fromEnum ItemMatrixChange = 1
+  fromEnum ItemPositionChange = 0
+  fromEnum ItemPositionHasChanged = 9
+  fromEnum ItemTransformChange = 8
+  fromEnum ItemTransformHasChanged = 10
+  fromEnum ItemRotationChange = 28
+  fromEnum ItemRotationHasChanged = 29
+  fromEnum ItemScaleChange = 30
+  fromEnum ItemScaleHasChanged = 31
+  fromEnum ItemTransformOriginPointChange = 32
+  fromEnum ItemTransformOriginPointHasChanged = 33
+  fromEnum ItemSelectedChange = 4
+  fromEnum ItemSelectedHasChanged = 14
+  fromEnum ItemVisibleChange = 2
+  fromEnum ItemVisibleHasChanged = 12
+  fromEnum ItemParentChange = 5
+  fromEnum ItemParentHasChanged = 15
+  fromEnum ItemChildAddedChange = 6
+  fromEnum ItemChildRemovedChange = 7
+  fromEnum ItemSceneChange = 11
+  fromEnum ItemSceneHasChanged = 16
+  fromEnum ItemCursorChange = 17
+  fromEnum ItemCursorHasChanged = 18
+  fromEnum ItemToolTipChange = 19
+  fromEnum ItemToolTipHasChanged = 20
+  fromEnum ItemFlagsChange = 21
+  fromEnum ItemFlagsHaveChanged = 22
+  fromEnum ItemZValueChange = 23
+  fromEnum ItemZValueHasChanged = 24
+  fromEnum ItemOpacityChange = 25
+  fromEnum ItemOpacityHasChanged = 26
+  fromEnum ItemScenePositionHasChanged = 27
+  
+  toEnum (3) = ItemEnabledChange
+  toEnum (13) = ItemEnabledHasChanged
+  toEnum (1) = ItemMatrixChange
+  toEnum (0) = ItemPositionChange
+  toEnum (9) = ItemPositionHasChanged
+  toEnum (8) = ItemTransformChange
+  toEnum (10) = ItemTransformHasChanged
+  toEnum (28) = ItemRotationChange
+  toEnum (29) = ItemRotationHasChanged
+  toEnum (30) = ItemScaleChange
+  toEnum (31) = ItemScaleHasChanged
+  toEnum (32) = ItemTransformOriginPointChange
+  toEnum (33) = ItemTransformOriginPointHasChanged
+  toEnum (4) = ItemSelectedChange
+  toEnum (14) = ItemSelectedHasChanged
+  toEnum (2) = ItemVisibleChange
+  toEnum (12) = ItemVisibleHasChanged
+  toEnum (5) = ItemParentChange
+  toEnum (15) = ItemParentHasChanged
+  toEnum (6) = ItemChildAddedChange
+  toEnum (7) = ItemChildRemovedChange
+  toEnum (11) = ItemSceneChange
+  toEnum (16) = ItemSceneHasChanged
+  toEnum (17) = ItemCursorChange
+  toEnum (18) = ItemCursorHasChanged
+  toEnum (19) = ItemToolTipChange
+  toEnum (20) = ItemToolTipHasChanged
+  toEnum (21) = ItemFlagsChange
+  toEnum (22) = ItemFlagsHaveChanged
+  toEnum (23) = ItemZValueChange
+  toEnum (24) = ItemZValueHasChanged
+  toEnum (25) = ItemOpacityChange
+  toEnum (26) = ItemOpacityHasChanged
+  toEnum (27) = ItemScenePositionHasChanged
+  toEnum n' = HoppyP.error $ "Unknown QGraphicsItemGraphicsItemChange numeric value: " ++ HoppyP.show n'
+
+data QGraphicsItemGraphicsItemFlag =
+  ItemIsMovable
+  | ItemIsSelectable
+  | ItemIsFocusable
+  | ItemClipsToShape
+  | ItemClipsChildrenToShape
+  | ItemIgnoresTransformations
+  | ItemIgnoresParentOpacity
+  | ItemDoesntPropagateOpacityToChildren
+  | ItemStacksBehindParent
+  | ItemUsesExtendedStyleOption
+  | ItemHasNoContents
+  | ItemSendsGeometryChanges
+  | ItemAcceptsInputMethod
+  | ItemNegativeZStacksBehindParent
+  | ItemIsPanel
+  | ItemSendsScenePositionChanges
+  | ItemContainsChildrenInShape
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QGraphicsItemGraphicsItemFlag where
+  fromEnum ItemIsMovable = 1
+  fromEnum ItemIsSelectable = 2
+  fromEnum ItemIsFocusable = 4
+  fromEnum ItemClipsToShape = 8
+  fromEnum ItemClipsChildrenToShape = 16
+  fromEnum ItemIgnoresTransformations = 32
+  fromEnum ItemIgnoresParentOpacity = 64
+  fromEnum ItemDoesntPropagateOpacityToChildren = 128
+  fromEnum ItemStacksBehindParent = 256
+  fromEnum ItemUsesExtendedStyleOption = 512
+  fromEnum ItemHasNoContents = 1024
+  fromEnum ItemSendsGeometryChanges = 2048
+  fromEnum ItemAcceptsInputMethod = 4096
+  fromEnum ItemNegativeZStacksBehindParent = 8192
+  fromEnum ItemIsPanel = 16384
+  fromEnum ItemSendsScenePositionChanges = 65536
+  fromEnum ItemContainsChildrenInShape = 524288
+  
+  toEnum (1) = ItemIsMovable
+  toEnum (2) = ItemIsSelectable
+  toEnum (4) = ItemIsFocusable
+  toEnum (8) = ItemClipsToShape
+  toEnum (16) = ItemClipsChildrenToShape
+  toEnum (32) = ItemIgnoresTransformations
+  toEnum (64) = ItemIgnoresParentOpacity
+  toEnum (128) = ItemDoesntPropagateOpacityToChildren
+  toEnum (256) = ItemStacksBehindParent
+  toEnum (512) = ItemUsesExtendedStyleOption
+  toEnum (1024) = ItemHasNoContents
+  toEnum (2048) = ItemSendsGeometryChanges
+  toEnum (4096) = ItemAcceptsInputMethod
+  toEnum (8192) = ItemNegativeZStacksBehindParent
+  toEnum (16384) = ItemIsPanel
+  toEnum (65536) = ItemSendsScenePositionChanges
+  toEnum (524288) = ItemContainsChildrenInShape
+  toEnum n' = HoppyP.error $ "Unknown QGraphicsItemGraphicsItemFlag numeric value: " ++ HoppyP.show n'
+
+newtype QGraphicsItemGraphicsItemFlags = QGraphicsItemGraphicsItemFlags { fromQGraphicsItemGraphicsItemFlags :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQGraphicsItemGraphicsItemFlags a where
+  toQGraphicsItemGraphicsItemFlags :: a -> QGraphicsItemGraphicsItemFlags
+
+instance IsQGraphicsItemGraphicsItemFlags (HoppyFC.CInt) where
+  toQGraphicsItemGraphicsItemFlags = QGraphicsItemGraphicsItemFlags
+instance IsQGraphicsItemGraphicsItemFlags (HoppyP.Int) where
+  toQGraphicsItemGraphicsItemFlags = QGraphicsItemGraphicsItemFlags . HoppyFHR.coerceIntegral
+instance IsQGraphicsItemGraphicsItemFlags QGraphicsItemGraphicsItemFlags where
+  toQGraphicsItemGraphicsItemFlags = HoppyP.id
+
+instance IsQGraphicsItemGraphicsItemFlags QGraphicsItemGraphicsItemFlag where
+  toQGraphicsItemGraphicsItemFlags = QGraphicsItemGraphicsItemFlags . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+itemIsMovable = QGraphicsItemGraphicsItemFlags 1
+itemIsSelectable = QGraphicsItemGraphicsItemFlags 2
+itemIsFocusable = QGraphicsItemGraphicsItemFlags 4
+itemClipsToShape = QGraphicsItemGraphicsItemFlags 8
+itemClipsChildrenToShape = QGraphicsItemGraphicsItemFlags 16
+itemIgnoresTransformations = QGraphicsItemGraphicsItemFlags 32
+itemIgnoresParentOpacity = QGraphicsItemGraphicsItemFlags 64
+itemDoesntPropagateOpacityToChildren = QGraphicsItemGraphicsItemFlags 128
+itemStacksBehindParent = QGraphicsItemGraphicsItemFlags 256
+itemUsesExtendedStyleOption = QGraphicsItemGraphicsItemFlags 512
+itemHasNoContents = QGraphicsItemGraphicsItemFlags 1024
+itemSendsGeometryChanges = QGraphicsItemGraphicsItemFlags 2048
+itemAcceptsInputMethod = QGraphicsItemGraphicsItemFlags 4096
+itemNegativeZStacksBehindParent = QGraphicsItemGraphicsItemFlags 8192
+itemIsPanel = QGraphicsItemGraphicsItemFlags 16384
+itemSendsScenePositionChanges = QGraphicsItemGraphicsItemFlags 65536
+itemContainsChildrenInShape = QGraphicsItemGraphicsItemFlags 524288
+
+data QGraphicsItemPanelModality =
+  NonModal
+  | PanelModal
+  | SceneModal
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QGraphicsItemPanelModality where
+  fromEnum NonModal = 0
+  fromEnum PanelModal = 1
+  fromEnum SceneModal = 2
+  
+  toEnum (0) = NonModal
+  toEnum (1) = PanelModal
+  toEnum (2) = SceneModal
+  toEnum n' = HoppyP.error $ "Unknown QGraphicsItemPanelModality numeric value: " ++ HoppyP.show n'
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,114 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 (..),
+  QGraphicsItemPanelModality,
+  ) 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 Prelude as HoppyP
+
+
+class QGraphicsItemValue a where
+  withQGraphicsItemPtr :: a -> (QGraphicsItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QGraphicsItemConstPtr a => QGraphicsItemValue a
+#else
+instance QGraphicsItemConstPtr a => QGraphicsItemValue a
+#endif
+
+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 HoppyP.Bounded QGraphicsItemCacheMode
+instance HoppyP.Enum QGraphicsItemCacheMode
+instance HoppyP.Eq QGraphicsItemCacheMode
+instance HoppyP.Ord QGraphicsItemCacheMode
+instance HoppyP.Show QGraphicsItemCacheMode
+
+data QGraphicsItemGraphicsItemChange
+instance HoppyP.Bounded QGraphicsItemGraphicsItemChange
+instance HoppyP.Enum QGraphicsItemGraphicsItemChange
+instance HoppyP.Eq QGraphicsItemGraphicsItemChange
+instance HoppyP.Ord QGraphicsItemGraphicsItemChange
+instance HoppyP.Show QGraphicsItemGraphicsItemChange
+
+data QGraphicsItemGraphicsItemFlag
+instance HoppyP.Bounded QGraphicsItemGraphicsItemFlag
+instance HoppyP.Enum QGraphicsItemGraphicsItemFlag
+instance HoppyP.Eq QGraphicsItemGraphicsItemFlag
+instance HoppyP.Ord QGraphicsItemGraphicsItemFlag
+instance HoppyP.Show QGraphicsItemGraphicsItemFlag
+
+newtype QGraphicsItemGraphicsItemFlags = QGraphicsItemGraphicsItemFlags { fromQGraphicsItemGraphicsItemFlags :: HoppyFC.CInt }
+
+instance HoppyDB.Bits QGraphicsItemGraphicsItemFlags
+instance HoppyP.Bounded QGraphicsItemGraphicsItemFlags
+instance HoppyP.Eq QGraphicsItemGraphicsItemFlags
+instance HoppyP.Ord QGraphicsItemGraphicsItemFlags
+instance HoppyP.Show QGraphicsItemGraphicsItemFlags
+
+class IsQGraphicsItemGraphicsItemFlags a where
+  toQGraphicsItemGraphicsItemFlags :: a -> QGraphicsItemGraphicsItemFlags
+
+instance IsQGraphicsItemGraphicsItemFlags (HoppyFC.CInt)
+instance IsQGraphicsItemGraphicsItemFlags (HoppyP.Int)
+instance IsQGraphicsItemGraphicsItemFlags QGraphicsItemGraphicsItemFlags
+instance IsQGraphicsItemGraphicsItemFlags QGraphicsItemGraphicsItemFlag
+
+data QGraphicsItemPanelModality
+instance HoppyP.Bounded QGraphicsItemPanelModality
+instance HoppyP.Enum QGraphicsItemPanelModality
+instance HoppyP.Eq QGraphicsItemPanelModality
+instance HoppyP.Ord QGraphicsItemPanelModality
+instance HoppyP.Show QGraphicsItemPanelModality
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsPolygonItem.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsPolygonItem.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsPolygonItem.hs
@@ -0,0 +1,195 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M164
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M202
+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 M164.QAbstractGraphicsShapeItemConst
+foreign import ccall "gencast__QAbstractGraphicsShapeItem__QGraphicsPolygonItem" castQAbstractGraphicsShapeItemToQGraphicsPolygonItem :: HoppyF.Ptr M164.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr QGraphicsPolygonItemConst
+foreign import ccall "gencast__QGraphicsPolygonItem__QGraphicsItem" castQGraphicsPolygonItemToQGraphicsItem :: HoppyF.Ptr QGraphicsPolygonItemConst -> HoppyF.Ptr M202.QGraphicsItemConst
+foreign import ccall "gencast__QGraphicsItem__QGraphicsPolygonItem" castQGraphicsItemToQGraphicsPolygonItem :: HoppyF.Ptr M202.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QGraphicsPolygonItemConstPtr a => QGraphicsPolygonItemValue a where
+#else
+instance QGraphicsPolygonItemConstPtr a => QGraphicsPolygonItemValue a where
+#endif
+  withQGraphicsPolygonItemPtr = HoppyP.flip ($) . toQGraphicsPolygonItemConst
+
+class (M164.QAbstractGraphicsShapeItemConstPtr this) => QGraphicsPolygonItemConstPtr this where
+  toQGraphicsPolygonItemConst :: this -> QGraphicsPolygonItemConst
+
+class (QGraphicsPolygonItemConstPtr this, M164.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 M164.QAbstractGraphicsShapeItemConstPtr QGraphicsPolygonItemConst where
+  toQAbstractGraphicsShapeItemConst (QGraphicsPolygonItemConst ptr') = M164.QAbstractGraphicsShapeItemConst $ castQGraphicsPolygonItemToQAbstractGraphicsShapeItem ptr'
+  toQAbstractGraphicsShapeItemConst (QGraphicsPolygonItemConstGc fptr' ptr') = M164.QAbstractGraphicsShapeItemConstGc fptr' $ castQGraphicsPolygonItemToQAbstractGraphicsShapeItem ptr'
+
+instance M202.QGraphicsItemConstPtr QGraphicsPolygonItemConst where
+  toQGraphicsItemConst (QGraphicsPolygonItemConst ptr') = M202.QGraphicsItemConst $ castQGraphicsPolygonItemToQGraphicsItem ptr'
+  toQGraphicsItemConst (QGraphicsPolygonItemConstGc fptr' ptr') = M202.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 M164.QAbstractGraphicsShapeItemConstPtr QGraphicsPolygonItem where
+  toQAbstractGraphicsShapeItemConst (QGraphicsPolygonItem ptr') = M164.QAbstractGraphicsShapeItemConst $ castQGraphicsPolygonItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPolygonItem -> HoppyF.Ptr QGraphicsPolygonItemConst) ptr'
+  toQAbstractGraphicsShapeItemConst (QGraphicsPolygonItemGc fptr' ptr') = M164.QAbstractGraphicsShapeItemConstGc fptr' $ castQGraphicsPolygonItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPolygonItem -> HoppyF.Ptr QGraphicsPolygonItemConst) ptr'
+
+instance M164.QAbstractGraphicsShapeItemPtr QGraphicsPolygonItem where
+  toQAbstractGraphicsShapeItem (QGraphicsPolygonItem ptr') = M164.QAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr M164.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr M164.QAbstractGraphicsShapeItem) $ castQGraphicsPolygonItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPolygonItem -> HoppyF.Ptr QGraphicsPolygonItemConst) ptr'
+  toQAbstractGraphicsShapeItem (QGraphicsPolygonItemGc fptr' ptr') = M164.QAbstractGraphicsShapeItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M164.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr M164.QAbstractGraphicsShapeItem) $ castQGraphicsPolygonItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPolygonItem -> HoppyF.Ptr QGraphicsPolygonItemConst) ptr'
+
+instance M202.QGraphicsItemConstPtr QGraphicsPolygonItem where
+  toQGraphicsItemConst (QGraphicsPolygonItem ptr') = M202.QGraphicsItemConst $ castQGraphicsPolygonItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPolygonItem -> HoppyF.Ptr QGraphicsPolygonItemConst) ptr'
+  toQGraphicsItemConst (QGraphicsPolygonItemGc fptr' ptr') = M202.QGraphicsItemConstGc fptr' $ castQGraphicsPolygonItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPolygonItem -> HoppyF.Ptr QGraphicsPolygonItemConst) ptr'
+
+instance M202.QGraphicsItemPtr QGraphicsPolygonItem where
+  toQGraphicsItem (QGraphicsPolygonItem ptr') = M202.QGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr M202.QGraphicsItemConst -> HoppyF.Ptr M202.QGraphicsItem) $ castQGraphicsPolygonItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPolygonItem -> HoppyF.Ptr QGraphicsPolygonItemConst) ptr'
+  toQGraphicsItem (QGraphicsPolygonItemGc fptr' ptr') = M202.QGraphicsItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M202.QGraphicsItemConst -> HoppyF.Ptr M202.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 M164.QAbstractGraphicsShapeItem where
+  downToQGraphicsPolygonItem = castQGraphicsPolygonItemToNonconst . cast' . M164.castQAbstractGraphicsShapeItemToConst
+    where
+      cast' (M164.QAbstractGraphicsShapeItemConst ptr') = QGraphicsPolygonItemConst $ castQAbstractGraphicsShapeItemToQGraphicsPolygonItem ptr'
+      cast' (M164.QAbstractGraphicsShapeItemConstGc fptr' ptr') = QGraphicsPolygonItemConstGc fptr' $ castQAbstractGraphicsShapeItemToQGraphicsPolygonItem ptr'
+instance QGraphicsPolygonItemSuper M202.QGraphicsItem where
+  downToQGraphicsPolygonItem = castQGraphicsPolygonItemToNonconst . cast' . M202.castQGraphicsItemToConst
+    where
+      cast' (M202.QGraphicsItemConst ptr') = QGraphicsPolygonItemConst $ castQGraphicsItemToQGraphicsPolygonItem ptr'
+      cast' (M202.QGraphicsItemConstGc fptr' ptr') = QGraphicsPolygonItemConstGc fptr' $ castQGraphicsItemToQGraphicsPolygonItem ptr'
+
+class QGraphicsPolygonItemSuperConst a where
+  downToQGraphicsPolygonItemConst :: a -> QGraphicsPolygonItemConst
+
+instance QGraphicsPolygonItemSuperConst M164.QAbstractGraphicsShapeItemConst where
+  downToQGraphicsPolygonItemConst = cast'
+    where
+      cast' (M164.QAbstractGraphicsShapeItemConst ptr') = QGraphicsPolygonItemConst $ castQAbstractGraphicsShapeItemToQGraphicsPolygonItem ptr'
+      cast' (M164.QAbstractGraphicsShapeItemConstGc fptr' ptr') = QGraphicsPolygonItemConstGc fptr' $ castQAbstractGraphicsShapeItemToQGraphicsPolygonItem ptr'
+instance QGraphicsPolygonItemSuperConst M202.QGraphicsItemConst where
+  downToQGraphicsPolygonItemConst = cast'
+    where
+      cast' (M202.QGraphicsItemConst ptr') = QGraphicsPolygonItemConst $ castQGraphicsItemToQGraphicsPolygonItem ptr'
+      cast' (M202.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,80 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M164
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M202
+import qualified Prelude as HoppyP
+
+
+class QGraphicsPolygonItemValue a where
+  withQGraphicsPolygonItemPtr :: a -> (QGraphicsPolygonItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QGraphicsPolygonItemConstPtr a => QGraphicsPolygonItemValue a
+#else
+instance QGraphicsPolygonItemConstPtr a => QGraphicsPolygonItemValue a
+#endif
+
+class (M164.QAbstractGraphicsShapeItemConstPtr this) => QGraphicsPolygonItemConstPtr this where
+  toQGraphicsPolygonItemConst :: this -> QGraphicsPolygonItemConst
+
+class (QGraphicsPolygonItemConstPtr this, M164.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 M164.QAbstractGraphicsShapeItemConstPtr QGraphicsPolygonItemConst
+
+instance M202.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 M164.QAbstractGraphicsShapeItemConstPtr QGraphicsPolygonItem
+
+instance M164.QAbstractGraphicsShapeItemPtr QGraphicsPolygonItem
+
+instance M202.QGraphicsItemConstPtr QGraphicsPolygonItem
+
+instance M202.QGraphicsItemPtr QGraphicsPolygonItem
+castQGraphicsPolygonItemToQAbstractGraphicsShapeItem :: HoppyF.Ptr QGraphicsPolygonItemConst -> HoppyF.Ptr M164.QAbstractGraphicsShapeItemConst
+castQGraphicsPolygonItemToQGraphicsItem :: HoppyF.Ptr QGraphicsPolygonItemConst -> HoppyF.Ptr M202.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsRectItem.hs
@@ -0,0 +1,227 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M40
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractGraphicsShapeItem as M164
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M202
+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 M40.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 M164.QAbstractGraphicsShapeItemConst
+foreign import ccall "gencast__QAbstractGraphicsShapeItem__QGraphicsRectItem" castQAbstractGraphicsShapeItemToQGraphicsRectItem :: HoppyF.Ptr M164.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr QGraphicsRectItemConst
+foreign import ccall "gencast__QGraphicsRectItem__QGraphicsItem" castQGraphicsRectItemToQGraphicsItem :: HoppyF.Ptr QGraphicsRectItemConst -> HoppyF.Ptr M202.QGraphicsItemConst
+foreign import ccall "gencast__QGraphicsItem__QGraphicsRectItem" castQGraphicsItemToQGraphicsRectItem :: HoppyF.Ptr M202.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QGraphicsRectItemConstPtr a => QGraphicsRectItemValue a where
+#else
+instance QGraphicsRectItemConstPtr a => QGraphicsRectItemValue a where
+#endif
+  withQGraphicsRectItemPtr = HoppyP.flip ($) . toQGraphicsRectItemConst
+
+class (M164.QAbstractGraphicsShapeItemConstPtr this) => QGraphicsRectItemConstPtr this where
+  toQGraphicsRectItemConst :: this -> QGraphicsRectItemConst
+
+rect :: (QGraphicsRectItemValue arg'1) => arg'1 -> HoppyP.IO M40.QRectF
+rect arg'1 =
+  withQGraphicsRectItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M40.QRectFConst) =<<
+  (rect' arg'1')
+
+class (QGraphicsRectItemConstPtr this, M164.QAbstractGraphicsShapeItemPtr this) => QGraphicsRectItemPtr this where
+  toQGraphicsRectItem :: this -> QGraphicsRectItem
+
+setRectRaw :: (QGraphicsRectItemPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (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 M164.QAbstractGraphicsShapeItemConstPtr QGraphicsRectItemConst where
+  toQAbstractGraphicsShapeItemConst (QGraphicsRectItemConst ptr') = M164.QAbstractGraphicsShapeItemConst $ castQGraphicsRectItemToQAbstractGraphicsShapeItem ptr'
+  toQAbstractGraphicsShapeItemConst (QGraphicsRectItemConstGc fptr' ptr') = M164.QAbstractGraphicsShapeItemConstGc fptr' $ castQGraphicsRectItemToQAbstractGraphicsShapeItem ptr'
+
+instance M202.QGraphicsItemConstPtr QGraphicsRectItemConst where
+  toQGraphicsItemConst (QGraphicsRectItemConst ptr') = M202.QGraphicsItemConst $ castQGraphicsRectItemToQGraphicsItem ptr'
+  toQGraphicsItemConst (QGraphicsRectItemConstGc fptr' ptr') = M202.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 M164.QAbstractGraphicsShapeItemConstPtr QGraphicsRectItem where
+  toQAbstractGraphicsShapeItemConst (QGraphicsRectItem ptr') = M164.QAbstractGraphicsShapeItemConst $ castQGraphicsRectItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsRectItem -> HoppyF.Ptr QGraphicsRectItemConst) ptr'
+  toQAbstractGraphicsShapeItemConst (QGraphicsRectItemGc fptr' ptr') = M164.QAbstractGraphicsShapeItemConstGc fptr' $ castQGraphicsRectItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsRectItem -> HoppyF.Ptr QGraphicsRectItemConst) ptr'
+
+instance M164.QAbstractGraphicsShapeItemPtr QGraphicsRectItem where
+  toQAbstractGraphicsShapeItem (QGraphicsRectItem ptr') = M164.QAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr M164.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr M164.QAbstractGraphicsShapeItem) $ castQGraphicsRectItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsRectItem -> HoppyF.Ptr QGraphicsRectItemConst) ptr'
+  toQAbstractGraphicsShapeItem (QGraphicsRectItemGc fptr' ptr') = M164.QAbstractGraphicsShapeItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M164.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr M164.QAbstractGraphicsShapeItem) $ castQGraphicsRectItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsRectItem -> HoppyF.Ptr QGraphicsRectItemConst) ptr'
+
+instance M202.QGraphicsItemConstPtr QGraphicsRectItem where
+  toQGraphicsItemConst (QGraphicsRectItem ptr') = M202.QGraphicsItemConst $ castQGraphicsRectItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsRectItem -> HoppyF.Ptr QGraphicsRectItemConst) ptr'
+  toQGraphicsItemConst (QGraphicsRectItemGc fptr' ptr') = M202.QGraphicsItemConstGc fptr' $ castQGraphicsRectItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsRectItem -> HoppyF.Ptr QGraphicsRectItemConst) ptr'
+
+instance M202.QGraphicsItemPtr QGraphicsRectItem where
+  toQGraphicsItem (QGraphicsRectItem ptr') = M202.QGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr M202.QGraphicsItemConst -> HoppyF.Ptr M202.QGraphicsItem) $ castQGraphicsRectItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsRectItem -> HoppyF.Ptr QGraphicsRectItemConst) ptr'
+  toQGraphicsItem (QGraphicsRectItemGc fptr' ptr') = M202.QGraphicsItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M202.QGraphicsItemConst -> HoppyF.Ptr M202.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 =
+  let arg'1' = HoppyP.realToFrac arg'1 in
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  HoppyP.fmap QGraphicsRectItem
+  (newWithRaw' arg'1' arg'2' arg'3' arg'4')
+
+class QGraphicsRectItemSuper a where
+  downToQGraphicsRectItem :: a -> QGraphicsRectItem
+
+instance QGraphicsRectItemSuper M164.QAbstractGraphicsShapeItem where
+  downToQGraphicsRectItem = castQGraphicsRectItemToNonconst . cast' . M164.castQAbstractGraphicsShapeItemToConst
+    where
+      cast' (M164.QAbstractGraphicsShapeItemConst ptr') = QGraphicsRectItemConst $ castQAbstractGraphicsShapeItemToQGraphicsRectItem ptr'
+      cast' (M164.QAbstractGraphicsShapeItemConstGc fptr' ptr') = QGraphicsRectItemConstGc fptr' $ castQAbstractGraphicsShapeItemToQGraphicsRectItem ptr'
+instance QGraphicsRectItemSuper M202.QGraphicsItem where
+  downToQGraphicsRectItem = castQGraphicsRectItemToNonconst . cast' . M202.castQGraphicsItemToConst
+    where
+      cast' (M202.QGraphicsItemConst ptr') = QGraphicsRectItemConst $ castQGraphicsItemToQGraphicsRectItem ptr'
+      cast' (M202.QGraphicsItemConstGc fptr' ptr') = QGraphicsRectItemConstGc fptr' $ castQGraphicsItemToQGraphicsRectItem ptr'
+
+class QGraphicsRectItemSuperConst a where
+  downToQGraphicsRectItemConst :: a -> QGraphicsRectItemConst
+
+instance QGraphicsRectItemSuperConst M164.QAbstractGraphicsShapeItemConst where
+  downToQGraphicsRectItemConst = cast'
+    where
+      cast' (M164.QAbstractGraphicsShapeItemConst ptr') = QGraphicsRectItemConst $ castQAbstractGraphicsShapeItemToQGraphicsRectItem ptr'
+      cast' (M164.QAbstractGraphicsShapeItemConstGc fptr' ptr') = QGraphicsRectItemConstGc fptr' $ castQAbstractGraphicsShapeItemToQGraphicsRectItem ptr'
+instance QGraphicsRectItemSuperConst M202.QGraphicsItemConst where
+  downToQGraphicsRectItemConst = cast'
+    where
+      cast' (M202.QGraphicsItemConst ptr') = QGraphicsRectItemConst $ castQGraphicsItemToQGraphicsRectItem ptr'
+      cast' (M202.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,80 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M164
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M202
+import qualified Prelude as HoppyP
+
+
+class QGraphicsRectItemValue a where
+  withQGraphicsRectItemPtr :: a -> (QGraphicsRectItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QGraphicsRectItemConstPtr a => QGraphicsRectItemValue a
+#else
+instance QGraphicsRectItemConstPtr a => QGraphicsRectItemValue a
+#endif
+
+class (M164.QAbstractGraphicsShapeItemConstPtr this) => QGraphicsRectItemConstPtr this where
+  toQGraphicsRectItemConst :: this -> QGraphicsRectItemConst
+
+class (QGraphicsRectItemConstPtr this, M164.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 M164.QAbstractGraphicsShapeItemConstPtr QGraphicsRectItemConst
+
+instance M202.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 M164.QAbstractGraphicsShapeItemConstPtr QGraphicsRectItem
+
+instance M164.QAbstractGraphicsShapeItemPtr QGraphicsRectItem
+
+instance M202.QGraphicsItemConstPtr QGraphicsRectItem
+
+instance M202.QGraphicsItemPtr QGraphicsRectItem
+castQGraphicsRectItemToQAbstractGraphicsShapeItem :: HoppyF.Ptr QGraphicsRectItemConst -> HoppyF.Ptr M164.QAbstractGraphicsShapeItemConst
+castQGraphicsRectItemToQGraphicsItem :: HoppyF.Ptr QGraphicsRectItemConst -> HoppyF.Ptr M202.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsScene.hs
@@ -0,0 +1,695 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsScene (
+  castQGraphicsSceneToQObject,
+  castQObjectToQGraphicsScene,
+  QGraphicsSceneValue (..),
+  QGraphicsSceneConstPtr (..),
+  activePanel,
+  backgroundBrush,
+  bspTreeDepth,
+  focusItem,
+  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,
+  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 (..),
+  QGraphicsViewSceneLayer (..),
+  QGraphicsViewSceneLayers (..),
+  IsQGraphicsViewSceneLayers (..),
+  itemLayer,
+  backgroundLayer,
+  foregroundLayer,
+  allLayers,
+  ) 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.QEvent as M16
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M36
+import qualified Graphics.UI.Qtah.Generated.Core.QRectF as M40
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QBrush as M86
+import qualified Graphics.UI.Qtah.Generated.Gui.QPainterPath as M128
+import qualified Graphics.UI.Qtah.Generated.Gui.QPen as M130
+import qualified Graphics.UI.Qtah.Generated.Gui.QPolygonF as M134
+import qualified Graphics.UI.Qtah.Generated.Gui.QTransform as M144
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsEllipseItem as M200
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M202
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsPolygonItem as M204
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsRectItem as M206
+import Prelude (($), (++), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QGraphicsScene_new" new' ::  HoppyP.IO (HoppyF.Ptr QGraphicsScene)
+foreign import ccall "genpop__QGraphicsScene_newWithParent" newWithParent' ::  HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr QGraphicsScene)
+foreign import ccall "genpop__QGraphicsScene_newWithRect" newWithRect' ::  HoppyF.Ptr M40.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 M202.QGraphicsItem)
+foreign import ccall "genpop__QGraphicsScene_addEllipseRectF" addEllipseRectF' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M40.QRectFConst -> HoppyP.IO (HoppyF.Ptr M200.QGraphicsEllipseItem)
+foreign import ccall "genpop__QGraphicsScene_addEllipseRectFAll" addEllipseRectFAll' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M40.QRectFConst -> HoppyF.Ptr M130.QPenConst -> HoppyF.Ptr M86.QBrushConst -> HoppyP.IO (HoppyF.Ptr M200.QGraphicsEllipseItem)
+foreign import ccall "genpop__QGraphicsScene_addEllipseRaw" addEllipseRaw' ::  HoppyF.Ptr QGraphicsScene -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr M200.QGraphicsEllipseItem)
+foreign import ccall "genpop__QGraphicsScene_addEllipseRawAll" addEllipseRawAll' ::  HoppyF.Ptr QGraphicsScene -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyF.Ptr M130.QPenConst -> HoppyF.Ptr M86.QBrushConst -> HoppyP.IO (HoppyF.Ptr M200.QGraphicsEllipseItem)
+foreign import ccall "genpop__QGraphicsScene_addItem" addItem' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M202.QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_addPolygon" addPolygon' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M134.QPolygonFConst -> HoppyP.IO (HoppyF.Ptr M204.QGraphicsPolygonItem)
+foreign import ccall "genpop__QGraphicsScene_addPolygonAll" addPolygonAll' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M134.QPolygonFConst -> HoppyF.Ptr M130.QPenConst -> HoppyF.Ptr M86.QBrushConst -> HoppyP.IO (HoppyF.Ptr M204.QGraphicsPolygonItem)
+foreign import ccall "genpop__QGraphicsScene_addRect" addRect' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M40.QRectFConst -> HoppyP.IO (HoppyF.Ptr M206.QGraphicsRectItem)
+foreign import ccall "genpop__QGraphicsScene_addRectAll" addRectAll' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M40.QRectFConst -> HoppyF.Ptr M130.QPenConst -> HoppyF.Ptr M86.QBrushConst -> HoppyP.IO (HoppyF.Ptr M206.QGraphicsRectItem)
+foreign import ccall "genpop__QGraphicsScene_addRectRaw" addRectRaw' ::  HoppyF.Ptr QGraphicsScene -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr M206.QGraphicsRectItem)
+foreign import ccall "genpop__QGraphicsScene_addRectRawAll" addRectRawAll' ::  HoppyF.Ptr QGraphicsScene -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyF.Ptr M130.QPenConst -> HoppyF.Ptr M86.QBrushConst -> HoppyP.IO (HoppyF.Ptr M206.QGraphicsRectItem)
+foreign import ccall "genpop__QGraphicsScene_backgroundBrush" backgroundBrush' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO (HoppyF.Ptr M86.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 M202.QGraphicsItem)
+foreign import ccall "genpop__QGraphicsScene_foregroundBrush" foregroundBrush' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO (HoppyF.Ptr M86.QBrushConst)
+foreign import ccall "genpop__QGraphicsScene_hasFocus" hasFocus' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsScene_itemAtPointF" itemAtPointF' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyF.Ptr M36.QPointFConst -> HoppyF.Ptr M144.QTransformConst -> HoppyP.IO (HoppyF.Ptr M202.QGraphicsItem)
+foreign import ccall "genpop__QGraphicsScene_itemAtRaw" itemAtRaw' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyF.Ptr M144.QTransformConst -> HoppyP.IO (HoppyF.Ptr M202.QGraphicsItem)
+foreign import ccall "genpop__QGraphicsScene_itemsBoundingRect" itemsBoundingRect' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO (HoppyF.Ptr M40.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 M202.QGraphicsItem)
+foreign import ccall "genpop__QGraphicsScene_removeItem" removeItem' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M202.QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_sceneRect" sceneRect' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO (HoppyF.Ptr M40.QRectFConst)
+foreign import ccall "genpop__QGraphicsScene_selectionArea" selectionArea' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO (HoppyF.Ptr M128.QPainterPathConst)
+foreign import ccall "genpop__QGraphicsScene_sendEvent" sendEvent' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M202.QGraphicsItem -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsScene_setActivePanel" setActivePanel' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M202.QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setBackgroundBrush" setBackgroundBrush' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M86.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 M202.QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setFocusItemAll" setFocusItemAll' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M202.QGraphicsItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setForegroundBrush" setForegroundBrush' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M86.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 M40.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 M128.QPainterPathConst -> HoppyF.Ptr M144.QTransformConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setSelectionArea" setSelectionArea' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M128.QPainterPathConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setStickyFocus" setStickyFocus' ::  HoppyF.Ptr QGraphicsScene -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_stickyFocus" stickyFocus' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO HoppyFHR.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 M30.QObjectConst
+foreign import ccall "gencast__QObject__QGraphicsScene" castQObjectToQGraphicsScene :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QGraphicsSceneConstPtr a => QGraphicsSceneValue a where
+#else
+instance QGraphicsSceneConstPtr a => QGraphicsSceneValue a where
+#endif
+  withQGraphicsScenePtr = HoppyP.flip ($) . toQGraphicsSceneConst
+
+class (M30.QObjectConstPtr this) => QGraphicsSceneConstPtr this where
+  toQGraphicsSceneConst :: this -> QGraphicsSceneConst
+
+activePanel :: (QGraphicsSceneValue arg'1) => arg'1 -> HoppyP.IO M202.QGraphicsItem
+activePanel arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M202.QGraphicsItem
+  (activePanel' arg'1')
+
+backgroundBrush :: (QGraphicsSceneValue arg'1) => arg'1 -> HoppyP.IO M86.QBrush
+backgroundBrush arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M86.QBrushConst) =<<
+  (backgroundBrush' arg'1')
+
+bspTreeDepth :: (QGraphicsSceneValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+bspTreeDepth arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (bspTreeDepth' arg'1')
+
+focusItem :: (QGraphicsSceneValue arg'1) => arg'1 -> HoppyP.IO M202.QGraphicsItem
+focusItem arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M202.QGraphicsItem
+  (focusItem' arg'1')
+
+foregroundBrush :: (QGraphicsSceneValue arg'1) => arg'1 -> HoppyP.IO M86.QBrush
+foregroundBrush arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M86.QBrushConst) =<<
+  (foregroundBrush' arg'1')
+
+hasFocus :: (QGraphicsSceneValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasFocus arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasFocus' arg'1')
+
+height :: (QGraphicsSceneValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+height arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (height' arg'1')
+
+isActive :: (QGraphicsSceneValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isActive arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isActive' arg'1')
+
+itemAtPointF :: (QGraphicsSceneValue arg'1, M36.QPointFValue arg'2, M144.QTransformValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO M202.QGraphicsItem
+itemAtPointF arg'1 arg'2 arg'3 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M144.withQTransformPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap M202.QGraphicsItem
+  (itemAtPointF' arg'1' arg'2' arg'3')
+
+itemAtRaw :: (QGraphicsSceneValue arg'1, M144.QTransformValue arg'4) => arg'1 -> HoppyP.Double -> HoppyP.Double -> arg'4 -> HoppyP.IO M202.QGraphicsItem
+itemAtRaw arg'1 arg'2 arg'3 arg'4 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  M144.withQTransformPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap M202.QGraphicsItem
+  (itemAtRaw' arg'1' arg'2' arg'3' arg'4')
+
+itemsBoundingRect :: (QGraphicsSceneValue arg'1) => arg'1 -> HoppyP.IO M40.QRectF
+itemsBoundingRect arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M40.QRectFConst) =<<
+  (itemsBoundingRect' arg'1')
+
+minimumRenderSize :: (QGraphicsSceneValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+minimumRenderSize arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (minimumRenderSize' arg'1')
+
+mouseGrabberItem :: (QGraphicsSceneValue arg'1) => arg'1 -> HoppyP.IO M202.QGraphicsItem
+mouseGrabberItem arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M202.QGraphicsItem
+  (mouseGrabberItem' arg'1')
+
+sceneRect :: (QGraphicsSceneValue arg'1) => arg'1 -> HoppyP.IO M40.QRectF
+sceneRect arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M40.QRectFConst) =<<
+  (sceneRect' arg'1')
+
+selectionArea :: (QGraphicsSceneValue arg'1) => arg'1 -> HoppyP.IO M128.QPainterPath
+selectionArea arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M128.QPainterPathConst) =<<
+  (selectionArea' arg'1')
+
+stickyFocus :: (QGraphicsSceneValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+stickyFocus arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (stickyFocus' arg'1')
+
+width :: (QGraphicsSceneValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+width arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (width' arg'1')
+
+class (QGraphicsSceneConstPtr this, M30.QObjectPtr this) => QGraphicsScenePtr this where
+  toQGraphicsScene :: this -> QGraphicsScene
+
+addEllipseRectF :: (QGraphicsScenePtr arg'1, M40.QRectFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M200.QGraphicsEllipseItem
+addEllipseRectF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M40.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M200.QGraphicsEllipseItem
+  (addEllipseRectF' arg'1' arg'2')
+
+addEllipseRectFAll :: (QGraphicsScenePtr arg'1, M40.QRectFValue arg'2, M130.QPenValue arg'3, M86.QBrushValue arg'4) => arg'1 -> arg'2 -> arg'3 -> arg'4 -> HoppyP.IO M200.QGraphicsEllipseItem
+addEllipseRectFAll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M40.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M130.withQPenPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M86.withQBrushPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap M200.QGraphicsEllipseItem
+  (addEllipseRectFAll' arg'1' arg'2' arg'3' arg'4')
+
+addEllipseRaw :: (QGraphicsScenePtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO M200.QGraphicsEllipseItem
+addEllipseRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  HoppyP.fmap M200.QGraphicsEllipseItem
+  (addEllipseRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+addEllipseRawAll :: (QGraphicsScenePtr arg'1, M130.QPenValue arg'6, M86.QBrushValue arg'7) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> arg'6 -> arg'7 -> HoppyP.IO M200.QGraphicsEllipseItem
+addEllipseRawAll arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  M130.withQPenPtr arg'6 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'6' ->
+  M86.withQBrushPtr arg'7 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'7' ->
+  HoppyP.fmap M200.QGraphicsEllipseItem
+  (addEllipseRawAll' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+addItem :: (QGraphicsScenePtr arg'1, M202.QGraphicsItemPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+addItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M202.toQGraphicsItem arg'2) $ \arg'2' ->
+  (addItem' arg'1' arg'2')
+
+addPolygon :: (QGraphicsScenePtr arg'1, M134.QPolygonFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M204.QGraphicsPolygonItem
+addPolygon arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M134.withQPolygonFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M204.QGraphicsPolygonItem
+  (addPolygon' arg'1' arg'2')
+
+addPolygonAll :: (QGraphicsScenePtr arg'1, M134.QPolygonFValue arg'2, M130.QPenValue arg'3, M86.QBrushValue arg'4) => arg'1 -> arg'2 -> arg'3 -> arg'4 -> HoppyP.IO M204.QGraphicsPolygonItem
+addPolygonAll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M134.withQPolygonFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M130.withQPenPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M86.withQBrushPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap M204.QGraphicsPolygonItem
+  (addPolygonAll' arg'1' arg'2' arg'3' arg'4')
+
+addRect :: (QGraphicsScenePtr arg'1, M40.QRectFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M206.QGraphicsRectItem
+addRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M40.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M206.QGraphicsRectItem
+  (addRect' arg'1' arg'2')
+
+addRectAll :: (QGraphicsScenePtr arg'1, M40.QRectFValue arg'2, M130.QPenValue arg'3, M86.QBrushValue arg'4) => arg'1 -> arg'2 -> arg'3 -> arg'4 -> HoppyP.IO M206.QGraphicsRectItem
+addRectAll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M40.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M130.withQPenPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M86.withQBrushPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap M206.QGraphicsRectItem
+  (addRectAll' arg'1' arg'2' arg'3' arg'4')
+
+addRectRaw :: (QGraphicsScenePtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO M206.QGraphicsRectItem
+addRectRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  HoppyP.fmap M206.QGraphicsRectItem
+  (addRectRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+addRectRawAll :: (QGraphicsScenePtr arg'1, M130.QPenValue arg'6, M86.QBrushValue arg'7) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> arg'6 -> arg'7 -> HoppyP.IO M206.QGraphicsRectItem
+addRectRawAll arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  M130.withQPenPtr arg'6 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'6' ->
+  M86.withQBrushPtr arg'7 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'7' ->
+  HoppyP.fmap M206.QGraphicsRectItem
+  (addRectRawAll' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+clearFocus :: (QGraphicsScenePtr arg'1) => arg'1 -> HoppyP.IO ()
+clearFocus arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  (clearFocus' arg'1')
+
+invalidate :: (QGraphicsScenePtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (invalidate' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+removeItem :: (QGraphicsScenePtr arg'1, M202.QGraphicsItemPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+removeItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M202.toQGraphicsItem arg'2) $ \arg'2' ->
+  (removeItem' arg'1' arg'2')
+
+sendEvent :: (QGraphicsScenePtr arg'1, M202.QGraphicsItemPtr arg'2, M16.QEventPtr arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+sendEvent arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M202.toQGraphicsItem arg'2) $ \arg'2' ->
+  HoppyFHR.withCppPtr (M16.toQEvent arg'3) $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (sendEvent' arg'1' arg'2' arg'3')
+
+setActivePanel :: (QGraphicsScenePtr arg'1, M202.QGraphicsItemPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setActivePanel arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M202.toQGraphicsItem arg'2) $ \arg'2' ->
+  (setActivePanel' arg'1' arg'2')
+
+setBackgroundBrush :: (QGraphicsScenePtr arg'1, M86.QBrushValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setBackgroundBrush arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M86.withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBackgroundBrush' arg'1' arg'2')
+
+setBspTreeDepth :: (QGraphicsScenePtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setBspTreeDepth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setBspTreeDepth' arg'1' arg'2')
+
+setFocus :: (QGraphicsScenePtr arg'1) => arg'1 -> HoppyP.IO ()
+setFocus arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  (setFocus' arg'1')
+
+setFocusAll :: (QGraphicsScenePtr arg'1) => arg'1 -> M58.QtFocusReason -> HoppyP.IO ()
+setFocusAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setFocusAll' arg'1' arg'2')
+
+setFocusItem :: (QGraphicsScenePtr arg'1, M202.QGraphicsItemPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setFocusItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M202.toQGraphicsItem arg'2) $ \arg'2' ->
+  (setFocusItem' arg'1' arg'2')
+
+setFocusItemAll :: (QGraphicsScenePtr arg'1, M202.QGraphicsItemPtr arg'2) => arg'1 -> arg'2 -> M58.QtFocusReason -> HoppyP.IO ()
+setFocusItemAll arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M202.toQGraphicsItem arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (setFocusItemAll' arg'1' arg'2' arg'3')
+
+setForegroundBrush :: (QGraphicsScenePtr arg'1, M86.QBrushValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setForegroundBrush arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M86.withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setForegroundBrush' arg'1' arg'2')
+
+setMinimumRenderSize :: (QGraphicsScenePtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setMinimumRenderSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setMinimumRenderSize' arg'1' arg'2')
+
+setSceneRect :: (QGraphicsScenePtr arg'1, M40.QRectFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setSceneRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M40.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSceneRect' arg'1' arg'2')
+
+setSceneRectRaw :: (QGraphicsScenePtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (setSceneRectRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setSelectionAreaTransform :: (QGraphicsScenePtr arg'1, M128.QPainterPathValue arg'2, M144.QTransformValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO ()
+setSelectionAreaTransform arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M128.withQPainterPathPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M144.withQTransformPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setSelectionAreaTransform' arg'1' arg'2' arg'3')
+
+setSelectionArea :: (QGraphicsScenePtr arg'1, M128.QPainterPathValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setSelectionArea arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M128.withQPainterPathPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSelectionArea' arg'1' arg'2')
+
+setStickyFocus :: (QGraphicsScenePtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setStickyFocus arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setStickyFocus' arg'1' arg'2')
+
+update :: (QGraphicsScenePtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (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 M30.QObjectConstPtr QGraphicsSceneConst where
+  toQObjectConst (QGraphicsSceneConst ptr') = M30.QObjectConst $ castQGraphicsSceneToQObject ptr'
+  toQObjectConst (QGraphicsSceneConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr QGraphicsScene where
+  toQObjectConst (QGraphicsScene ptr') = M30.QObjectConst $ castQGraphicsSceneToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr QGraphicsSceneConst) ptr'
+  toQObjectConst (QGraphicsSceneGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQGraphicsSceneToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr QGraphicsSceneConst) ptr'
+
+instance M30.QObjectPtr QGraphicsScene where
+  toQObject (QGraphicsScene ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQGraphicsSceneToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr QGraphicsSceneConst) ptr'
+  toQObject (QGraphicsSceneGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQGraphicsSceneToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr QGraphicsSceneConst) ptr'
+
+new ::  HoppyP.IO QGraphicsScene
+new =
+  HoppyP.fmap QGraphicsScene
+  (new')
+
+newWithParent :: (M30.QObjectPtr arg'1) => arg'1 -> HoppyP.IO QGraphicsScene
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M30.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QGraphicsScene
+  (newWithParent' arg'1')
+
+newWithRect :: (M40.QRectFValue arg'1) => arg'1 -> HoppyP.IO QGraphicsScene
+newWithRect arg'1 =
+  M40.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 =
+  let arg'1' = HoppyP.realToFrac arg'1 in
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  HoppyP.fmap QGraphicsScene
+  (newWithRaw' arg'1' arg'2' arg'3' arg'4')
+
+class QGraphicsSceneSuper a where
+  downToQGraphicsScene :: a -> QGraphicsScene
+
+instance QGraphicsSceneSuper M30.QObject where
+  downToQGraphicsScene = castQGraphicsSceneToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QGraphicsSceneConst $ castQObjectToQGraphicsScene ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QGraphicsSceneConstGc fptr' $ castQObjectToQGraphicsScene ptr'
+
+class QGraphicsSceneSuperConst a where
+  downToQGraphicsSceneConst :: a -> QGraphicsSceneConst
+
+instance QGraphicsSceneSuperConst M30.QObjectConst where
+  downToQGraphicsSceneConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QGraphicsSceneConst $ castQObjectToQGraphicsScene ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QGraphicsSceneItemIndexMethod where
+  fromEnum BspTreeIndex = 0
+  fromEnum NoIndex = -1
+  
+  toEnum (0) = BspTreeIndex
+  toEnum (-1) = NoIndex
+  toEnum n' = HoppyP.error $ "Unknown QGraphicsSceneItemIndexMethod numeric value: " ++ HoppyP.show n'
+
+data QGraphicsViewSceneLayer =
+  ItemLayer
+  | BackgroundLayer
+  | ForegroundLayer
+  | AllLayers
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QGraphicsViewSceneLayer where
+  fromEnum ItemLayer = 1
+  fromEnum BackgroundLayer = 2
+  fromEnum ForegroundLayer = 4
+  fromEnum AllLayers = 65535
+  
+  toEnum (1) = ItemLayer
+  toEnum (2) = BackgroundLayer
+  toEnum (4) = ForegroundLayer
+  toEnum (65535) = AllLayers
+  toEnum n' = HoppyP.error $ "Unknown QGraphicsViewSceneLayer numeric value: " ++ HoppyP.show n'
+
+newtype QGraphicsViewSceneLayers = QGraphicsViewSceneLayers { fromQGraphicsViewSceneLayers :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQGraphicsViewSceneLayers a where
+  toQGraphicsViewSceneLayers :: a -> QGraphicsViewSceneLayers
+
+instance IsQGraphicsViewSceneLayers (HoppyFC.CInt) where
+  toQGraphicsViewSceneLayers = QGraphicsViewSceneLayers
+instance IsQGraphicsViewSceneLayers (HoppyP.Int) where
+  toQGraphicsViewSceneLayers = QGraphicsViewSceneLayers . HoppyFHR.coerceIntegral
+instance IsQGraphicsViewSceneLayers QGraphicsViewSceneLayers where
+  toQGraphicsViewSceneLayers = HoppyP.id
+
+instance IsQGraphicsViewSceneLayers QGraphicsViewSceneLayer where
+  toQGraphicsViewSceneLayers = QGraphicsViewSceneLayers . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+itemLayer = QGraphicsViewSceneLayers 1
+backgroundLayer = QGraphicsViewSceneLayers 2
+foregroundLayer = QGraphicsViewSceneLayers 4
+allLayers = QGraphicsViewSceneLayers 65535
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 CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsScene (
+  QGraphicsSceneValue (..),
+  QGraphicsSceneConstPtr (..),
+  QGraphicsScenePtr (..),
+  QGraphicsSceneConst (..),
+  castQGraphicsSceneToConst,
+  QGraphicsScene (..),
+  castQGraphicsSceneToNonconst,
+  castQGraphicsSceneToQObject,
+  QGraphicsSceneItemIndexMethod,
+  QGraphicsViewSceneLayer,
+  QGraphicsViewSceneLayers (..),
+  IsQGraphicsViewSceneLayers (..),
+  ) 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 M30
+import qualified Prelude as HoppyP
+
+
+class QGraphicsSceneValue a where
+  withQGraphicsScenePtr :: a -> (QGraphicsSceneConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QGraphicsSceneConstPtr a => QGraphicsSceneValue a
+#else
+instance QGraphicsSceneConstPtr a => QGraphicsSceneValue a
+#endif
+
+class (M30.QObjectConstPtr this) => QGraphicsSceneConstPtr this where
+  toQGraphicsSceneConst :: this -> QGraphicsSceneConst
+
+class (QGraphicsSceneConstPtr this, M30.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 M30.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 M30.QObjectConstPtr QGraphicsScene
+
+instance M30.QObjectPtr QGraphicsScene
+castQGraphicsSceneToQObject :: HoppyF.Ptr QGraphicsSceneConst -> HoppyF.Ptr M30.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGraphicsScene)) QGraphicsScene
+
+data QGraphicsSceneItemIndexMethod
+instance HoppyP.Bounded QGraphicsSceneItemIndexMethod
+instance HoppyP.Enum QGraphicsSceneItemIndexMethod
+instance HoppyP.Eq QGraphicsSceneItemIndexMethod
+instance HoppyP.Ord QGraphicsSceneItemIndexMethod
+instance HoppyP.Show QGraphicsSceneItemIndexMethod
+
+data QGraphicsViewSceneLayer
+instance HoppyP.Bounded QGraphicsViewSceneLayer
+instance HoppyP.Enum QGraphicsViewSceneLayer
+instance HoppyP.Eq QGraphicsViewSceneLayer
+instance HoppyP.Ord QGraphicsViewSceneLayer
+instance HoppyP.Show QGraphicsViewSceneLayer
+
+newtype QGraphicsViewSceneLayers = QGraphicsViewSceneLayers { fromQGraphicsViewSceneLayers :: HoppyFC.CInt }
+
+instance HoppyDB.Bits QGraphicsViewSceneLayers
+instance HoppyP.Bounded QGraphicsViewSceneLayers
+instance HoppyP.Eq QGraphicsViewSceneLayers
+instance HoppyP.Ord QGraphicsViewSceneLayers
+instance HoppyP.Show QGraphicsViewSceneLayers
+
+class IsQGraphicsViewSceneLayers a where
+  toQGraphicsViewSceneLayers :: a -> QGraphicsViewSceneLayers
+
+instance IsQGraphicsViewSceneLayers (HoppyFC.CInt)
+instance IsQGraphicsViewSceneLayers (HoppyP.Int)
+instance IsQGraphicsViewSceneLayers QGraphicsViewSceneLayers
+instance IsQGraphicsViewSceneLayers QGraphicsViewSceneLayer
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsSceneEvent.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsSceneEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsSceneEvent.hs
@@ -0,0 +1,170 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M16
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QGraphicsSceneEvent_widget" widget' ::  HoppyF.Ptr QGraphicsSceneEventConst -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "gencast__QGraphicsSceneEvent__QEvent" castQGraphicsSceneEventToQEvent :: HoppyF.Ptr QGraphicsSceneEventConst -> HoppyF.Ptr M16.QEventConst
+foreign import ccall "gencast__QEvent__QGraphicsSceneEvent" castQEventToQGraphicsSceneEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QGraphicsSceneEventConstPtr a => QGraphicsSceneEventValue a where
+#else
+instance QGraphicsSceneEventConstPtr a => QGraphicsSceneEventValue a where
+#endif
+  withQGraphicsSceneEventPtr = HoppyP.flip ($) . toQGraphicsSceneEventConst
+
+class (M16.QEventConstPtr this) => QGraphicsSceneEventConstPtr this where
+  toQGraphicsSceneEventConst :: this -> QGraphicsSceneEventConst
+
+widget :: (QGraphicsSceneEventValue arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+widget arg'1 =
+  withQGraphicsSceneEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (widget' arg'1')
+
+class (QGraphicsSceneEventConstPtr this, M16.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 M16.QEventConstPtr QGraphicsSceneEventConst where
+  toQEventConst (QGraphicsSceneEventConst ptr') = M16.QEventConst $ castQGraphicsSceneEventToQEvent ptr'
+  toQEventConst (QGraphicsSceneEventConstGc fptr' ptr') = M16.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 M16.QEventConstPtr QGraphicsSceneEvent where
+  toQEventConst (QGraphicsSceneEvent ptr') = M16.QEventConst $ castQGraphicsSceneEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneEvent -> HoppyF.Ptr QGraphicsSceneEventConst) ptr'
+  toQEventConst (QGraphicsSceneEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQGraphicsSceneEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneEvent -> HoppyF.Ptr QGraphicsSceneEventConst) ptr'
+
+instance M16.QEventPtr QGraphicsSceneEvent where
+  toQEvent (QGraphicsSceneEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQGraphicsSceneEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneEvent -> HoppyF.Ptr QGraphicsSceneEventConst) ptr'
+  toQEvent (QGraphicsSceneEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQGraphicsSceneEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneEvent -> HoppyF.Ptr QGraphicsSceneEventConst) ptr'
+
+class QGraphicsSceneEventSuper a where
+  downToQGraphicsSceneEvent :: a -> QGraphicsSceneEvent
+
+instance QGraphicsSceneEventSuper M16.QEvent where
+  downToQGraphicsSceneEvent = castQGraphicsSceneEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QGraphicsSceneEventConst $ castQEventToQGraphicsSceneEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QGraphicsSceneEventConstGc fptr' $ castQEventToQGraphicsSceneEvent ptr'
+
+class QGraphicsSceneEventSuperConst a where
+  downToQGraphicsSceneEventConst :: a -> QGraphicsSceneEventConst
+
+instance QGraphicsSceneEventSuperConst M16.QEventConst where
+  downToQGraphicsSceneEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QGraphicsSceneEventConst $ castQEventToQGraphicsSceneEvent ptr'
+      cast' (M16.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsSceneMouseEvent.hs
@@ -0,0 +1,309 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Generated.Core.QEvent as M16
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M36
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsSceneEvent as M210
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+
+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 M36.QPointFConst)
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_buttonDownScenePos" buttonDownScenePos' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_buttonDownScreenPos" buttonDownScreenPos' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M34.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 M36.QPointFConst)
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_lastScenePos" lastScenePos' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_lastScreenPos" lastScreenPos' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyP.IO (HoppyF.Ptr M34.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 M36.QPointFConst)
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_scenePos" scenePos' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_screenPos" screenPos' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyP.IO (HoppyF.Ptr M34.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 M210.QGraphicsSceneEventConst
+foreign import ccall "gencast__QGraphicsSceneEvent__QGraphicsSceneMouseEvent" castQGraphicsSceneEventToQGraphicsSceneMouseEvent :: HoppyF.Ptr M210.QGraphicsSceneEventConst -> HoppyF.Ptr QGraphicsSceneMouseEventConst
+foreign import ccall "gencast__QGraphicsSceneMouseEvent__QEvent" castQGraphicsSceneMouseEventToQEvent :: HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyF.Ptr M16.QEventConst
+foreign import ccall "gencast__QEvent__QGraphicsSceneMouseEvent" castQEventToQGraphicsSceneMouseEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QGraphicsSceneMouseEventConstPtr a => QGraphicsSceneMouseEventValue a where
+#else
+instance QGraphicsSceneMouseEventConstPtr a => QGraphicsSceneMouseEventValue a where
+#endif
+  withQGraphicsSceneMouseEventPtr = HoppyP.flip ($) . toQGraphicsSceneMouseEventConst
+
+class (M210.QGraphicsSceneEventConstPtr this) => QGraphicsSceneMouseEventConstPtr this where
+  toQGraphicsSceneMouseEventConst :: this -> QGraphicsSceneMouseEventConst
+
+button :: (QGraphicsSceneMouseEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtMouseButton
+button arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (button' arg'1')
+
+buttonDownPos :: (QGraphicsSceneMouseEventValue arg'1) => arg'1 -> M58.QtMouseButton -> HoppyP.IO HPointF.HPointF
+buttonDownPos arg'1 arg'2 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (buttonDownPos' arg'1' arg'2')
+
+buttonDownScenePos :: (QGraphicsSceneMouseEventValue arg'1) => arg'1 -> M58.QtMouseButton -> HoppyP.IO HPointF.HPointF
+buttonDownScenePos arg'1 arg'2 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (buttonDownScenePos' arg'1' arg'2')
+
+buttonDownScreenPos :: (QGraphicsSceneMouseEventValue arg'1) => arg'1 -> M58.QtMouseButton -> HoppyP.IO HPoint.HPoint
+buttonDownScreenPos arg'1 arg'2 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (buttonDownScreenPos' arg'1' arg'2')
+
+buttons :: (QGraphicsSceneMouseEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtMouseButtons
+buttons arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtMouseButtons
+  (buttons' arg'1')
+
+flags :: (QGraphicsSceneMouseEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtMouseEventFlags
+flags arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtMouseEventFlags
+  (flags' arg'1')
+
+lastPos :: (QGraphicsSceneMouseEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+lastPos arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (lastPos' arg'1')
+
+lastScenePos :: (QGraphicsSceneMouseEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+lastScenePos arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (lastScenePos' arg'1')
+
+lastScreenPos :: (QGraphicsSceneMouseEventValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+lastScreenPos arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (lastScreenPos' arg'1')
+
+modifiers :: (QGraphicsSceneMouseEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtKeyboardModifiers
+modifiers arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtKeyboardModifiers
+  (modifiers' arg'1')
+
+pos :: (QGraphicsSceneMouseEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+pos arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (pos' arg'1')
+
+scenePos :: (QGraphicsSceneMouseEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+scenePos arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (scenePos' arg'1')
+
+screenPos :: (QGraphicsSceneMouseEventValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+screenPos arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (screenPos' arg'1')
+
+source :: (QGraphicsSceneMouseEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtMouseEventSource
+source arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (source' arg'1')
+
+class (QGraphicsSceneMouseEventConstPtr this, M210.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 M210.QGraphicsSceneEventConstPtr QGraphicsSceneMouseEventConst where
+  toQGraphicsSceneEventConst (QGraphicsSceneMouseEventConst ptr') = M210.QGraphicsSceneEventConst $ castQGraphicsSceneMouseEventToQGraphicsSceneEvent ptr'
+  toQGraphicsSceneEventConst (QGraphicsSceneMouseEventConstGc fptr' ptr') = M210.QGraphicsSceneEventConstGc fptr' $ castQGraphicsSceneMouseEventToQGraphicsSceneEvent ptr'
+
+instance M16.QEventConstPtr QGraphicsSceneMouseEventConst where
+  toQEventConst (QGraphicsSceneMouseEventConst ptr') = M16.QEventConst $ castQGraphicsSceneMouseEventToQEvent ptr'
+  toQEventConst (QGraphicsSceneMouseEventConstGc fptr' ptr') = M16.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 M210.QGraphicsSceneEventConstPtr QGraphicsSceneMouseEvent where
+  toQGraphicsSceneEventConst (QGraphicsSceneMouseEvent ptr') = M210.QGraphicsSceneEventConst $ castQGraphicsSceneMouseEventToQGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+  toQGraphicsSceneEventConst (QGraphicsSceneMouseEventGc fptr' ptr') = M210.QGraphicsSceneEventConstGc fptr' $ castQGraphicsSceneMouseEventToQGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+
+instance M210.QGraphicsSceneEventPtr QGraphicsSceneMouseEvent where
+  toQGraphicsSceneEvent (QGraphicsSceneMouseEvent ptr') = M210.QGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr M210.QGraphicsSceneEventConst -> HoppyF.Ptr M210.QGraphicsSceneEvent) $ castQGraphicsSceneMouseEventToQGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+  toQGraphicsSceneEvent (QGraphicsSceneMouseEventGc fptr' ptr') = M210.QGraphicsSceneEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M210.QGraphicsSceneEventConst -> HoppyF.Ptr M210.QGraphicsSceneEvent) $ castQGraphicsSceneMouseEventToQGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+
+instance M16.QEventConstPtr QGraphicsSceneMouseEvent where
+  toQEventConst (QGraphicsSceneMouseEvent ptr') = M16.QEventConst $ castQGraphicsSceneMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+  toQEventConst (QGraphicsSceneMouseEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQGraphicsSceneMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+
+instance M16.QEventPtr QGraphicsSceneMouseEvent where
+  toQEvent (QGraphicsSceneMouseEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQGraphicsSceneMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+  toQEvent (QGraphicsSceneMouseEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQGraphicsSceneMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+
+class QGraphicsSceneMouseEventSuper a where
+  downToQGraphicsSceneMouseEvent :: a -> QGraphicsSceneMouseEvent
+
+instance QGraphicsSceneMouseEventSuper M210.QGraphicsSceneEvent where
+  downToQGraphicsSceneMouseEvent = castQGraphicsSceneMouseEventToNonconst . cast' . M210.castQGraphicsSceneEventToConst
+    where
+      cast' (M210.QGraphicsSceneEventConst ptr') = QGraphicsSceneMouseEventConst $ castQGraphicsSceneEventToQGraphicsSceneMouseEvent ptr'
+      cast' (M210.QGraphicsSceneEventConstGc fptr' ptr') = QGraphicsSceneMouseEventConstGc fptr' $ castQGraphicsSceneEventToQGraphicsSceneMouseEvent ptr'
+instance QGraphicsSceneMouseEventSuper M16.QEvent where
+  downToQGraphicsSceneMouseEvent = castQGraphicsSceneMouseEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QGraphicsSceneMouseEventConst $ castQEventToQGraphicsSceneMouseEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QGraphicsSceneMouseEventConstGc fptr' $ castQEventToQGraphicsSceneMouseEvent ptr'
+
+class QGraphicsSceneMouseEventSuperConst a where
+  downToQGraphicsSceneMouseEventConst :: a -> QGraphicsSceneMouseEventConst
+
+instance QGraphicsSceneMouseEventSuperConst M210.QGraphicsSceneEventConst where
+  downToQGraphicsSceneMouseEventConst = cast'
+    where
+      cast' (M210.QGraphicsSceneEventConst ptr') = QGraphicsSceneMouseEventConst $ castQGraphicsSceneEventToQGraphicsSceneMouseEvent ptr'
+      cast' (M210.QGraphicsSceneEventConstGc fptr' ptr') = QGraphicsSceneMouseEventConstGc fptr' $ castQGraphicsSceneEventToQGraphicsSceneMouseEvent ptr'
+instance QGraphicsSceneMouseEventSuperConst M16.QEventConst where
+  downToQGraphicsSceneMouseEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QGraphicsSceneMouseEventConst $ castQEventToQGraphicsSceneMouseEvent ptr'
+      cast' (M16.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsSceneWheelEvent.hs
@@ -0,0 +1,250 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Generated.Core.QEvent as M16
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M36
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsSceneEvent as M210
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+
+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 M36.QPointFConst)
+foreign import ccall "genpop__QGraphicsSceneWheelEvent_scenePos" scenePos' ::  HoppyF.Ptr QGraphicsSceneWheelEventConst -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QGraphicsSceneWheelEvent_screenPos" screenPos' ::  HoppyF.Ptr QGraphicsSceneWheelEventConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "gencast__QGraphicsSceneWheelEvent__QGraphicsSceneEvent" castQGraphicsSceneWheelEventToQGraphicsSceneEvent :: HoppyF.Ptr QGraphicsSceneWheelEventConst -> HoppyF.Ptr M210.QGraphicsSceneEventConst
+foreign import ccall "gencast__QGraphicsSceneEvent__QGraphicsSceneWheelEvent" castQGraphicsSceneEventToQGraphicsSceneWheelEvent :: HoppyF.Ptr M210.QGraphicsSceneEventConst -> HoppyF.Ptr QGraphicsSceneWheelEventConst
+foreign import ccall "gencast__QGraphicsSceneWheelEvent__QEvent" castQGraphicsSceneWheelEventToQEvent :: HoppyF.Ptr QGraphicsSceneWheelEventConst -> HoppyF.Ptr M16.QEventConst
+foreign import ccall "gencast__QEvent__QGraphicsSceneWheelEvent" castQEventToQGraphicsSceneWheelEvent :: HoppyF.Ptr M16.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QGraphicsSceneWheelEventConstPtr a => QGraphicsSceneWheelEventValue a where
+#else
+instance QGraphicsSceneWheelEventConstPtr a => QGraphicsSceneWheelEventValue a where
+#endif
+  withQGraphicsSceneWheelEventPtr = HoppyP.flip ($) . toQGraphicsSceneWheelEventConst
+
+class (M210.QGraphicsSceneEventConstPtr this) => QGraphicsSceneWheelEventConstPtr this where
+  toQGraphicsSceneWheelEventConst :: this -> QGraphicsSceneWheelEventConst
+
+buttons :: (QGraphicsSceneWheelEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtMouseButtons
+buttons arg'1 =
+  withQGraphicsSceneWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtMouseButtons
+  (buttons' arg'1')
+
+delta :: (QGraphicsSceneWheelEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+delta arg'1 =
+  withQGraphicsSceneWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (delta' arg'1')
+
+modifiers :: (QGraphicsSceneWheelEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtKeyboardModifiers
+modifiers arg'1 =
+  withQGraphicsSceneWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtKeyboardModifiers
+  (modifiers' arg'1')
+
+orientation :: (QGraphicsSceneWheelEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtOrientation
+orientation arg'1 =
+  withQGraphicsSceneWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (orientation' arg'1')
+
+pos :: (QGraphicsSceneWheelEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+pos arg'1 =
+  withQGraphicsSceneWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (pos' arg'1')
+
+scenePos :: (QGraphicsSceneWheelEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
+scenePos arg'1 =
+  withQGraphicsSceneWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (scenePos' arg'1')
+
+screenPos :: (QGraphicsSceneWheelEventValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+screenPos arg'1 =
+  withQGraphicsSceneWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (screenPos' arg'1')
+
+class (QGraphicsSceneWheelEventConstPtr this, M210.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 M210.QGraphicsSceneEventConstPtr QGraphicsSceneWheelEventConst where
+  toQGraphicsSceneEventConst (QGraphicsSceneWheelEventConst ptr') = M210.QGraphicsSceneEventConst $ castQGraphicsSceneWheelEventToQGraphicsSceneEvent ptr'
+  toQGraphicsSceneEventConst (QGraphicsSceneWheelEventConstGc fptr' ptr') = M210.QGraphicsSceneEventConstGc fptr' $ castQGraphicsSceneWheelEventToQGraphicsSceneEvent ptr'
+
+instance M16.QEventConstPtr QGraphicsSceneWheelEventConst where
+  toQEventConst (QGraphicsSceneWheelEventConst ptr') = M16.QEventConst $ castQGraphicsSceneWheelEventToQEvent ptr'
+  toQEventConst (QGraphicsSceneWheelEventConstGc fptr' ptr') = M16.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 M210.QGraphicsSceneEventConstPtr QGraphicsSceneWheelEvent where
+  toQGraphicsSceneEventConst (QGraphicsSceneWheelEvent ptr') = M210.QGraphicsSceneEventConst $ castQGraphicsSceneWheelEventToQGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+  toQGraphicsSceneEventConst (QGraphicsSceneWheelEventGc fptr' ptr') = M210.QGraphicsSceneEventConstGc fptr' $ castQGraphicsSceneWheelEventToQGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+
+instance M210.QGraphicsSceneEventPtr QGraphicsSceneWheelEvent where
+  toQGraphicsSceneEvent (QGraphicsSceneWheelEvent ptr') = M210.QGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr M210.QGraphicsSceneEventConst -> HoppyF.Ptr M210.QGraphicsSceneEvent) $ castQGraphicsSceneWheelEventToQGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+  toQGraphicsSceneEvent (QGraphicsSceneWheelEventGc fptr' ptr') = M210.QGraphicsSceneEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M210.QGraphicsSceneEventConst -> HoppyF.Ptr M210.QGraphicsSceneEvent) $ castQGraphicsSceneWheelEventToQGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+
+instance M16.QEventConstPtr QGraphicsSceneWheelEvent where
+  toQEventConst (QGraphicsSceneWheelEvent ptr') = M16.QEventConst $ castQGraphicsSceneWheelEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+  toQEventConst (QGraphicsSceneWheelEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQGraphicsSceneWheelEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+
+instance M16.QEventPtr QGraphicsSceneWheelEvent where
+  toQEvent (QGraphicsSceneWheelEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQGraphicsSceneWheelEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+  toQEvent (QGraphicsSceneWheelEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQGraphicsSceneWheelEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+
+class QGraphicsSceneWheelEventSuper a where
+  downToQGraphicsSceneWheelEvent :: a -> QGraphicsSceneWheelEvent
+
+instance QGraphicsSceneWheelEventSuper M210.QGraphicsSceneEvent where
+  downToQGraphicsSceneWheelEvent = castQGraphicsSceneWheelEventToNonconst . cast' . M210.castQGraphicsSceneEventToConst
+    where
+      cast' (M210.QGraphicsSceneEventConst ptr') = QGraphicsSceneWheelEventConst $ castQGraphicsSceneEventToQGraphicsSceneWheelEvent ptr'
+      cast' (M210.QGraphicsSceneEventConstGc fptr' ptr') = QGraphicsSceneWheelEventConstGc fptr' $ castQGraphicsSceneEventToQGraphicsSceneWheelEvent ptr'
+instance QGraphicsSceneWheelEventSuper M16.QEvent where
+  downToQGraphicsSceneWheelEvent = castQGraphicsSceneWheelEventToNonconst . cast' . M16.castQEventToConst
+    where
+      cast' (M16.QEventConst ptr') = QGraphicsSceneWheelEventConst $ castQEventToQGraphicsSceneWheelEvent ptr'
+      cast' (M16.QEventConstGc fptr' ptr') = QGraphicsSceneWheelEventConstGc fptr' $ castQEventToQGraphicsSceneWheelEvent ptr'
+
+class QGraphicsSceneWheelEventSuperConst a where
+  downToQGraphicsSceneWheelEventConst :: a -> QGraphicsSceneWheelEventConst
+
+instance QGraphicsSceneWheelEventSuperConst M210.QGraphicsSceneEventConst where
+  downToQGraphicsSceneWheelEventConst = cast'
+    where
+      cast' (M210.QGraphicsSceneEventConst ptr') = QGraphicsSceneWheelEventConst $ castQGraphicsSceneEventToQGraphicsSceneWheelEvent ptr'
+      cast' (M210.QGraphicsSceneEventConstGc fptr' ptr') = QGraphicsSceneWheelEventConstGc fptr' $ castQGraphicsSceneEventToQGraphicsSceneWheelEvent ptr'
+instance QGraphicsSceneWheelEventSuperConst M16.QEventConst where
+  downToQGraphicsSceneWheelEventConst = cast'
+    where
+      cast' (M16.QEventConst ptr') = QGraphicsSceneWheelEventConst $ castQEventToQGraphicsSceneWheelEvent ptr'
+      cast' (M16.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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsView.hs
@@ -0,0 +1,1043 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsView (
+  castQGraphicsViewToQAbstractScrollArea,
+  castQAbstractScrollAreaToQGraphicsView,
+  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 (..),
+  cacheNone,
+  cacheBackground,
+  QGraphicsViewCacheModeFlag (..),
+  QGraphicsViewDragMode (..),
+  QGraphicsViewOptimizationFlag (..),
+  QGraphicsViewOptimizationFlags (..),
+  IsQGraphicsViewOptimizationFlags (..),
+  dontClipPainter,
+  dontSavePainterState,
+  dontAdjustForAntialiasing,
+  indirectPainting,
+  QGraphicsViewViewportAnchor (..),
+  QGraphicsViewViewportUpdateMode (..),
+  ) 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.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HPointF as HPointF
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M36
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Core.QRectF as M40
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QBrush as M86
+import qualified Graphics.UI.Qtah.Generated.Gui.QPainter as M126
+import qualified Graphics.UI.Qtah.Generated.Gui.QPainterPath as M128
+import qualified Graphics.UI.Qtah.Generated.Gui.QPolygon as M132
+import qualified Graphics.UI.Qtah.Generated.Gui.QPolygonF as M134
+import qualified Graphics.UI.Qtah.Generated.Gui.QTransform as M144
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea as M168
+import qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M202
+import qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsScene as M208
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Prelude (($), (++), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QGraphicsView_new" new' ::  HoppyP.IO (HoppyF.Ptr QGraphicsView)
+foreign import ccall "genpop__QGraphicsView_newWithScene" newWithScene' ::  HoppyF.Ptr M208.QGraphicsScene -> HoppyP.IO (HoppyF.Ptr QGraphicsView)
+foreign import ccall "genpop__QGraphicsView_newWithParent" newWithParent' ::  HoppyF.Ptr M280.QWidget -> HoppyP.IO (HoppyF.Ptr QGraphicsView)
+foreign import ccall "genpop__QGraphicsView_newWithSceneAndParent" newWithSceneAndParent' ::  HoppyF.Ptr M208.QGraphicsScene -> HoppyF.Ptr M280.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 M86.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 M36.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 M202.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 M40.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 M202.QGraphicsItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_ensureVisibleRectFAll" ensureVisibleRectFAll' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M40.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 M202.QGraphicsItemConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_fitInViewRectF" fitInViewRectF' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M40.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 M202.QGraphicsItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_fitInViewRectFAll" fitInViewRectFAll' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M40.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 M202.QGraphicsItemConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_foregroundBrush" foregroundBrush' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO (HoppyF.Ptr M86.QBrushConst)
+foreign import ccall "genpop__QGraphicsView_isInteractive" isInteractive' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsView_isTransformed" isTransformed' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGraphicsView_itemAtPoint" itemAtPoint' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M202.QGraphicsItem)
+foreign import ccall "genpop__QGraphicsView_itemAtRaw" itemAtRaw' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M202.QGraphicsItem)
+foreign import ccall "genpop__QGraphicsView_mapFromScenePointF" mapFromScenePointF' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M36.QPointFConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QGraphicsView_mapFromSceneRectF" mapFromSceneRectF' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M40.QRectFConst -> HoppyP.IO (HoppyF.Ptr M132.QPolygonConst)
+foreign import ccall "genpop__QGraphicsView_mapFromScenePolygonF" mapFromScenePolygonF' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M134.QPolygonFConst -> HoppyP.IO (HoppyF.Ptr M132.QPolygonConst)
+foreign import ccall "genpop__QGraphicsView_mapFromScenePainterPath" mapFromScenePainterPath' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M128.QPainterPathConst -> HoppyP.IO (HoppyF.Ptr M128.QPainterPathConst)
+foreign import ccall "genpop__QGraphicsView_mapFromScenePointFRaw" mapFromScenePointFRaw' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QGraphicsView_mapFromSceneRectFRaw" mapFromSceneRectFRaw' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr M132.QPolygonConst)
+foreign import ccall "genpop__QGraphicsView_mapToScenePoint" mapToScenePoint' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QGraphicsView_mapToSceneRect" mapToSceneRect' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M38.QRectConst -> HoppyP.IO (HoppyF.Ptr M134.QPolygonFConst)
+foreign import ccall "genpop__QGraphicsView_mapToScenePolygon" mapToScenePolygon' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M132.QPolygonConst -> HoppyP.IO (HoppyF.Ptr M134.QPolygonFConst)
+foreign import ccall "genpop__QGraphicsView_mapToScenePainterPath" mapToScenePainterPath' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M128.QPainterPathConst -> HoppyP.IO (HoppyF.Ptr M128.QPainterPathConst)
+foreign import ccall "genpop__QGraphicsView_mapToScenePointRaw" mapToScenePointRaw' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
+foreign import ccall "genpop__QGraphicsView_mapToSceneRectRaw" mapToSceneRectRaw' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M134.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 M126.QPainter -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_renderAll" renderAll' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M126.QPainter -> HoppyF.Ptr M40.QRectFConst -> HoppyF.Ptr M38.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 M208.QGraphicsScene)
+foreign import ccall "genpop__QGraphicsView_sceneRect" sceneRect' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO (HoppyF.Ptr M40.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 M86.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 M86.QBrushConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setInteractive" setInteractive' ::  HoppyF.Ptr QGraphicsView -> HoppyFHR.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 -> HoppyFHR.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 -> HoppyFHR.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 M208.QGraphicsScene -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setSceneRectF" setSceneRectF' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M40.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 M144.QTransformConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setTransformAll" setTransformAll' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M144.QTransformConst -> HoppyFHR.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 M144.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 M144.QTransformConst)
+foreign import ccall "gencast__QGraphicsView__QAbstractScrollArea" castQGraphicsViewToQAbstractScrollArea :: HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M168.QAbstractScrollAreaConst
+foreign import ccall "gencast__QAbstractScrollArea__QGraphicsView" castQAbstractScrollAreaToQGraphicsView :: HoppyF.Ptr M168.QAbstractScrollAreaConst -> HoppyF.Ptr QGraphicsViewConst
+foreign import ccall "gencast__QGraphicsView__QWidget" castQGraphicsViewToQWidget :: HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QGraphicsView" castQWidgetToQGraphicsView :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QGraphicsViewConst
+foreign import ccall "gencast__QGraphicsView__QObject" castQGraphicsViewToQObject :: HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QGraphicsView" castQObjectToQGraphicsView :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QGraphicsViewConstPtr a => QGraphicsViewValue a where
+#else
+instance QGraphicsViewConstPtr a => QGraphicsViewValue a where
+#endif
+  withQGraphicsViewPtr = HoppyP.flip ($) . toQGraphicsViewConst
+
+class (M168.QAbstractScrollAreaConstPtr this) => QGraphicsViewConstPtr this where
+  toQGraphicsViewConst :: this -> QGraphicsViewConst
+
+alignment :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.IO M58.QtAlignment
+alignment arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtAlignment
+  (alignment' arg'1')
+
+backgroundBrush :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.IO M86.QBrush
+backgroundBrush arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M86.QBrushConst) =<<
+  (backgroundBrush' arg'1')
+
+cacheMode :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.IO QGraphicsViewCacheMode
+cacheMode arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QGraphicsViewCacheMode
+  (cacheMode' arg'1')
+
+dragMode :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.IO QGraphicsViewDragMode
+dragMode arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (dragMode' arg'1')
+
+foregroundBrush :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.IO M86.QBrush
+foregroundBrush arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M86.QBrushConst) =<<
+  (foregroundBrush' arg'1')
+
+isInteractive :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isInteractive arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isInteractive' arg'1')
+
+isTransformed :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isTransformed arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isTransformed' arg'1')
+
+itemAtPoint :: (QGraphicsViewValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M202.QGraphicsItem
+itemAtPoint arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M202.QGraphicsItem
+  (itemAtPoint' arg'1' arg'2')
+
+itemAtRaw :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO M202.QGraphicsItem
+itemAtRaw arg'1 arg'2 arg'3 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap M202.QGraphicsItem
+  (itemAtRaw' arg'1' arg'2' arg'3')
+
+mapFromScenePointF :: (QGraphicsViewValue arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HPoint.HPoint
+mapFromScenePointF arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (mapFromScenePointF' arg'1' arg'2')
+
+mapFromSceneRectF :: (QGraphicsViewValue arg'1, M40.QRectFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M132.QPolygon
+mapFromSceneRectF arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M40.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M132.QPolygonConst) =<<
+  (mapFromSceneRectF' arg'1' arg'2')
+
+mapFromScenePolygonF :: (QGraphicsViewValue arg'1, M134.QPolygonFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M132.QPolygon
+mapFromScenePolygonF arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQPolygonFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M132.QPolygonConst) =<<
+  (mapFromScenePolygonF' arg'1' arg'2')
+
+mapFromScenePainterPath :: (QGraphicsViewValue arg'1, M128.QPainterPathValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M128.QPainterPath
+mapFromScenePainterPath arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M128.withQPainterPathPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M128.QPainterPathConst) =<<
+  (mapFromScenePainterPath' arg'1' arg'2')
+
+mapFromScenePointFRaw :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO HPoint.HPoint
+mapFromScenePointFRaw arg'1 arg'2 arg'3 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (mapFromScenePointFRaw' arg'1' arg'2' arg'3')
+
+mapFromSceneRectFRaw :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO M132.QPolygon
+mapFromSceneRectFRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (HoppyFHR.decodeAndDelete . M132.QPolygonConst) =<<
+  (mapFromSceneRectFRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+mapToScenePoint :: (QGraphicsViewValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HPointF.HPointF
+mapToScenePoint arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (mapToScenePoint' arg'1' arg'2')
+
+mapToSceneRect :: (QGraphicsViewValue arg'1, M38.QRectValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M134.QPolygonF
+mapToSceneRect arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M38.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M134.QPolygonFConst) =<<
+  (mapToSceneRect' arg'1' arg'2')
+
+mapToScenePolygon :: (QGraphicsViewValue arg'1, M132.QPolygonValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M134.QPolygonF
+mapToScenePolygon arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M132.withQPolygonPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M134.QPolygonFConst) =<<
+  (mapToScenePolygon' arg'1' arg'2')
+
+mapToScenePainterPath :: (QGraphicsViewValue arg'1, M128.QPainterPathValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M128.QPainterPath
+mapToScenePainterPath arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M128.withQPainterPathPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M128.QPainterPathConst) =<<
+  (mapToScenePainterPath' arg'1' arg'2')
+
+mapToScenePointRaw :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO HPointF.HPointF
+mapToScenePointRaw arg'1 arg'2 arg'3 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
+  (mapToScenePointRaw' arg'1' arg'2' arg'3')
+
+mapToSceneRectRaw :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO M134.QPolygonF
+mapToSceneRectRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (HoppyFHR.decodeAndDelete . M134.QPolygonFConst) =<<
+  (mapToSceneRectRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+optimizationFlags :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.IO QGraphicsViewOptimizationFlags
+optimizationFlags arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QGraphicsViewOptimizationFlags
+  (optimizationFlags' arg'1')
+
+renderHints :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.IO M126.QPainterRenderHints
+renderHints arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M126.QPainterRenderHints
+  (renderHints' arg'1')
+
+resizeAnchor :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.IO QGraphicsViewViewportAnchor
+resizeAnchor arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (resizeAnchor' arg'1')
+
+scene :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.IO M208.QGraphicsScene
+scene arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M208.QGraphicsScene
+  (scene' arg'1')
+
+sceneRect :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.IO M40.QRectF
+sceneRect arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M40.QRectFConst) =<<
+  (sceneRect' arg'1')
+
+transform :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.IO M144.QTransform
+transform arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QTransformConst) =<<
+  (transform' arg'1')
+
+transformationAnchor :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.IO QGraphicsViewViewportAnchor
+transformationAnchor arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (transformationAnchor' arg'1')
+
+viewportTransform :: (QGraphicsViewValue arg'1) => arg'1 -> HoppyP.IO M144.QTransform
+viewportTransform arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QTransformConst) =<<
+  (viewportTransform' arg'1')
+
+class (QGraphicsViewConstPtr this, M168.QAbstractScrollAreaPtr this) => QGraphicsViewPtr this where
+  toQGraphicsView :: this -> QGraphicsView
+
+centerOnPointF :: (QGraphicsViewPtr arg'1, M36.QPointFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+centerOnPointF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (centerOnPointF' arg'1' arg'2')
+
+centerOnRaw :: (QGraphicsViewPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO ()
+centerOnRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  (centerOnRaw' arg'1' arg'2' arg'3')
+
+centerOnItem :: (QGraphicsViewPtr arg'1, M202.QGraphicsItemValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+centerOnItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M202.withQGraphicsItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (centerOnItem' arg'1' arg'2')
+
+ensureVisibleRectF :: (QGraphicsViewPtr arg'1, M40.QRectFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+ensureVisibleRectF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M40.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (ensureVisibleRectF' arg'1' arg'2')
+
+ensureVisibleRaw :: (QGraphicsViewPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (ensureVisibleRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+ensureVisibleItem :: (QGraphicsViewPtr arg'1, M202.QGraphicsItemValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+ensureVisibleItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M202.withQGraphicsItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (ensureVisibleItem' arg'1' arg'2')
+
+ensureVisibleRectFAll :: (QGraphicsViewPtr arg'1, M40.QRectFValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+ensureVisibleRectFAll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M40.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  (ensureVisibleRectFAll' arg'1' arg'2' arg'3' arg'4')
+
+ensureVisibleRawAll :: (QGraphicsViewPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  let arg'6' = HoppyFHR.coerceIntegral arg'6 in
+  let arg'7' = HoppyFHR.coerceIntegral arg'7 in
+  (ensureVisibleRawAll' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+ensureVisibleItemAll :: (QGraphicsViewPtr arg'1, M202.QGraphicsItemValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+ensureVisibleItemAll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M202.withQGraphicsItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  (ensureVisibleItemAll' arg'1' arg'2' arg'3' arg'4')
+
+fitInViewRectF :: (QGraphicsViewPtr arg'1, M40.QRectFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+fitInViewRectF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M40.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fitInViewRectF' arg'1' arg'2')
+
+fitInViewRect :: (QGraphicsViewPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (fitInViewRect' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+fitInViewItem :: (QGraphicsViewPtr arg'1, M202.QGraphicsItemValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+fitInViewItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M202.withQGraphicsItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fitInViewItem' arg'1' arg'2')
+
+fitInViewRectFAll :: (QGraphicsViewPtr arg'1, M40.QRectFValue arg'2) => arg'1 -> arg'2 -> M58.QtAspectRatioMode -> HoppyP.IO ()
+fitInViewRectFAll arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M40.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (fitInViewRectFAll' arg'1' arg'2' arg'3')
+
+fitInViewRectAll :: (QGraphicsViewPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> M58.QtAspectRatioMode -> HoppyP.IO ()
+fitInViewRectAll arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  let arg'6' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'6 in
+  (fitInViewRectAll' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+fitInViewItemAll :: (QGraphicsViewPtr arg'1, M202.QGraphicsItemValue arg'2) => arg'1 -> arg'2 -> M58.QtAspectRatioMode -> HoppyP.IO ()
+fitInViewItemAll arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M202.withQGraphicsItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (fitInViewItemAll' arg'1' arg'2' arg'3')
+
+render :: (QGraphicsViewPtr arg'1, M126.QPainterPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+render arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M126.toQPainter arg'2) $ \arg'2' ->
+  (render' arg'1' arg'2')
+
+renderAll :: (QGraphicsViewPtr arg'1, M126.QPainterPtr arg'2, M40.QRectFValue arg'3, M38.QRectValue arg'4) => arg'1 -> arg'2 -> arg'3 -> arg'4 -> M58.QtAspectRatioMode -> HoppyP.IO ()
+renderAll arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M126.toQPainter arg'2) $ \arg'2' ->
+  M40.withQRectFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M38.withQRectPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  let arg'5' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'5 in
+  (renderAll' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+resetCachedContent :: (QGraphicsViewPtr arg'1) => arg'1 -> HoppyP.IO ()
+resetCachedContent arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (resetCachedContent' arg'1')
+
+resetMatrix :: (QGraphicsViewPtr arg'1) => arg'1 -> HoppyP.IO ()
+resetMatrix arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (resetMatrix' arg'1')
+
+resetTransform :: (QGraphicsViewPtr arg'1) => arg'1 -> HoppyP.IO ()
+resetTransform arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (resetTransform' arg'1')
+
+rotate :: (QGraphicsViewPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+rotate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (rotate' arg'1' arg'2')
+
+scale :: (QGraphicsViewPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO ()
+scale arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  (scale' arg'1' arg'2' arg'3')
+
+setAlignment :: (QGraphicsViewPtr arg'1, M58.IsQtAlignment arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtAlignment $ M58.toQtAlignment arg'2 in
+  (setAlignment' arg'1' arg'2')
+
+setBackgroundBrush :: (QGraphicsViewPtr arg'1, M86.QBrushValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setBackgroundBrush arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M86.withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBackgroundBrush' arg'1' arg'2')
+
+setCacheMode :: (QGraphicsViewPtr arg'1, IsQGraphicsViewCacheMode arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setCacheMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = fromQGraphicsViewCacheMode $ toQGraphicsViewCacheMode arg'2 in
+  (setCacheMode' arg'1' arg'2')
+
+setDragMode :: (QGraphicsViewPtr arg'1) => arg'1 -> QGraphicsViewDragMode -> HoppyP.IO ()
+setDragMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setDragMode' arg'1' arg'2')
+
+setForegroundBrush :: (QGraphicsViewPtr arg'1, M86.QBrushValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setForegroundBrush arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M86.withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setForegroundBrush' arg'1' arg'2')
+
+setInteractive :: (QGraphicsViewPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setInteractive arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setInteractive' arg'1' arg'2')
+
+setOptimizationFlag :: (QGraphicsViewPtr arg'1) => arg'1 -> QGraphicsViewOptimizationFlag -> HoppyP.IO ()
+setOptimizationFlag arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setOptimizationFlag' arg'1' arg'2')
+
+setOptimizationFlagAll :: (QGraphicsViewPtr arg'1) => arg'1 -> QGraphicsViewOptimizationFlag -> HoppyP.Bool -> HoppyP.IO ()
+setOptimizationFlagAll arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  let arg'3' = if arg'3 then 1 else 0 in
+  (setOptimizationFlagAll' arg'1' arg'2' arg'3')
+
+setOptimizationFlags :: (QGraphicsViewPtr arg'1, IsQGraphicsViewOptimizationFlags arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setOptimizationFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = fromQGraphicsViewOptimizationFlags $ toQGraphicsViewOptimizationFlags arg'2 in
+  (setOptimizationFlags' arg'1' arg'2')
+
+setRenderHint :: (QGraphicsViewPtr arg'1) => arg'1 -> M126.QPainterRenderHint -> HoppyP.IO ()
+setRenderHint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setRenderHint' arg'1' arg'2')
+
+setRenderHintAll :: (QGraphicsViewPtr arg'1) => arg'1 -> M126.QPainterRenderHint -> HoppyP.Bool -> HoppyP.IO ()
+setRenderHintAll arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  let arg'3' = if arg'3 then 1 else 0 in
+  (setRenderHintAll' arg'1' arg'2' arg'3')
+
+setRenderHints :: (QGraphicsViewPtr arg'1, M126.IsQPainterRenderHints arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setRenderHints arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = M126.fromQPainterRenderHints $ M126.toQPainterRenderHints arg'2 in
+  (setRenderHints' arg'1' arg'2')
+
+setResizeAnchor :: (QGraphicsViewPtr arg'1) => arg'1 -> QGraphicsViewViewportAnchor -> HoppyP.IO ()
+setResizeAnchor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setResizeAnchor' arg'1' arg'2')
+
+setScene :: (QGraphicsViewPtr arg'1, M208.QGraphicsScenePtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setScene arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M208.toQGraphicsScene arg'2) $ \arg'2' ->
+  (setScene' arg'1' arg'2')
+
+setSceneRectF :: (QGraphicsViewPtr arg'1, M40.QRectFValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setSceneRectF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M40.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSceneRectF' arg'1' arg'2')
+
+setSceneRectRaw :: (QGraphicsViewPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  (setSceneRectRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setTransform :: (QGraphicsViewPtr arg'1, M144.QTransformValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setTransform arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M144.withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTransform' arg'1' arg'2')
+
+setTransformAll :: (QGraphicsViewPtr arg'1, M144.QTransformValue arg'2) => arg'1 -> arg'2 -> HoppyP.Bool -> HoppyP.IO ()
+setTransformAll arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M144.withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = if arg'3 then 1 else 0 in
+  (setTransformAll' arg'1' arg'2' arg'3')
+
+setTransformationAnchor :: (QGraphicsViewPtr arg'1) => arg'1 -> QGraphicsViewViewportAnchor -> HoppyP.IO ()
+setTransformationAnchor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setTransformationAnchor' arg'1' arg'2')
+
+setViewportUpdateMode :: (QGraphicsViewPtr arg'1) => arg'1 -> QGraphicsViewViewportUpdateMode -> HoppyP.IO ()
+setViewportUpdateMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setViewportUpdateMode' arg'1' arg'2')
+
+shear :: (QGraphicsViewPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO ()
+shear arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  (shear' arg'1' arg'2' arg'3')
+
+translate :: (QGraphicsViewPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO ()
+translate arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  (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 M168.QAbstractScrollAreaConstPtr QGraphicsViewConst where
+  toQAbstractScrollAreaConst (QGraphicsViewConst ptr') = M168.QAbstractScrollAreaConst $ castQGraphicsViewToQAbstractScrollArea ptr'
+  toQAbstractScrollAreaConst (QGraphicsViewConstGc fptr' ptr') = M168.QAbstractScrollAreaConstGc fptr' $ castQGraphicsViewToQAbstractScrollArea ptr'
+
+instance M280.QWidgetConstPtr QGraphicsViewConst where
+  toQWidgetConst (QGraphicsViewConst ptr') = M280.QWidgetConst $ castQGraphicsViewToQWidget ptr'
+  toQWidgetConst (QGraphicsViewConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQGraphicsViewToQWidget ptr'
+
+instance M30.QObjectConstPtr QGraphicsViewConst where
+  toQObjectConst (QGraphicsViewConst ptr') = M30.QObjectConst $ castQGraphicsViewToQObject ptr'
+  toQObjectConst (QGraphicsViewConstGc fptr' ptr') = M30.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 M168.QAbstractScrollAreaConstPtr QGraphicsView where
+  toQAbstractScrollAreaConst (QGraphicsView ptr') = M168.QAbstractScrollAreaConst $ castQGraphicsViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+  toQAbstractScrollAreaConst (QGraphicsViewGc fptr' ptr') = M168.QAbstractScrollAreaConstGc fptr' $ castQGraphicsViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+
+instance M168.QAbstractScrollAreaPtr QGraphicsView where
+  toQAbstractScrollArea (QGraphicsView ptr') = M168.QAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr M168.QAbstractScrollAreaConst -> HoppyF.Ptr M168.QAbstractScrollArea) $ castQGraphicsViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+  toQAbstractScrollArea (QGraphicsViewGc fptr' ptr') = M168.QAbstractScrollAreaGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M168.QAbstractScrollAreaConst -> HoppyF.Ptr M168.QAbstractScrollArea) $ castQGraphicsViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+
+instance M280.QWidgetConstPtr QGraphicsView where
+  toQWidgetConst (QGraphicsView ptr') = M280.QWidgetConst $ castQGraphicsViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+  toQWidgetConst (QGraphicsViewGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQGraphicsViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+
+instance M280.QWidgetPtr QGraphicsView where
+  toQWidget (QGraphicsView ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQGraphicsViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+  toQWidget (QGraphicsViewGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQGraphicsViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+
+instance M30.QObjectConstPtr QGraphicsView where
+  toQObjectConst (QGraphicsView ptr') = M30.QObjectConst $ castQGraphicsViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+  toQObjectConst (QGraphicsViewGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQGraphicsViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+
+instance M30.QObjectPtr QGraphicsView where
+  toQObject (QGraphicsView ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQGraphicsViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+  toQObject (QGraphicsViewGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQGraphicsViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+
+new ::  HoppyP.IO QGraphicsView
+new =
+  HoppyP.fmap QGraphicsView
+  (new')
+
+newWithScene :: (M208.QGraphicsScenePtr arg'1) => arg'1 -> HoppyP.IO QGraphicsView
+newWithScene arg'1 =
+  HoppyFHR.withCppPtr (M208.toQGraphicsScene arg'1) $ \arg'1' ->
+  HoppyP.fmap QGraphicsView
+  (newWithScene' arg'1')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QGraphicsView
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QGraphicsView
+  (newWithParent' arg'1')
+
+newWithSceneAndParent :: (M208.QGraphicsScenePtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QGraphicsView
+newWithSceneAndParent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M208.toQGraphicsScene arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QGraphicsView
+  (newWithSceneAndParent' arg'1' arg'2')
+
+class QGraphicsViewSuper a where
+  downToQGraphicsView :: a -> QGraphicsView
+
+instance QGraphicsViewSuper M168.QAbstractScrollArea where
+  downToQGraphicsView = castQGraphicsViewToNonconst . cast' . M168.castQAbstractScrollAreaToConst
+    where
+      cast' (M168.QAbstractScrollAreaConst ptr') = QGraphicsViewConst $ castQAbstractScrollAreaToQGraphicsView ptr'
+      cast' (M168.QAbstractScrollAreaConstGc fptr' ptr') = QGraphicsViewConstGc fptr' $ castQAbstractScrollAreaToQGraphicsView ptr'
+instance QGraphicsViewSuper M280.QWidget where
+  downToQGraphicsView = castQGraphicsViewToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QGraphicsViewConst $ castQWidgetToQGraphicsView ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QGraphicsViewConstGc fptr' $ castQWidgetToQGraphicsView ptr'
+instance QGraphicsViewSuper M30.QObject where
+  downToQGraphicsView = castQGraphicsViewToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QGraphicsViewConst $ castQObjectToQGraphicsView ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QGraphicsViewConstGc fptr' $ castQObjectToQGraphicsView ptr'
+
+class QGraphicsViewSuperConst a where
+  downToQGraphicsViewConst :: a -> QGraphicsViewConst
+
+instance QGraphicsViewSuperConst M168.QAbstractScrollAreaConst where
+  downToQGraphicsViewConst = cast'
+    where
+      cast' (M168.QAbstractScrollAreaConst ptr') = QGraphicsViewConst $ castQAbstractScrollAreaToQGraphicsView ptr'
+      cast' (M168.QAbstractScrollAreaConstGc fptr' ptr') = QGraphicsViewConstGc fptr' $ castQAbstractScrollAreaToQGraphicsView ptr'
+instance QGraphicsViewSuperConst M280.QWidgetConst where
+  downToQGraphicsViewConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QGraphicsViewConst $ castQWidgetToQGraphicsView ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QGraphicsViewConstGc fptr' $ castQWidgetToQGraphicsView ptr'
+instance QGraphicsViewSuperConst M30.QObjectConst where
+  downToQGraphicsViewConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QGraphicsViewConst $ castQObjectToQGraphicsView ptr'
+      cast' (M30.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 { fromQGraphicsViewCacheMode :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQGraphicsViewCacheMode a where
+  toQGraphicsViewCacheMode :: a -> QGraphicsViewCacheMode
+
+instance IsQGraphicsViewCacheMode (HoppyFC.CInt) where
+  toQGraphicsViewCacheMode = QGraphicsViewCacheMode
+instance IsQGraphicsViewCacheMode (HoppyP.Int) where
+  toQGraphicsViewCacheMode = QGraphicsViewCacheMode . HoppyFHR.coerceIntegral
+instance IsQGraphicsViewCacheMode QGraphicsViewCacheMode where
+  toQGraphicsViewCacheMode = HoppyP.id
+
+instance IsQGraphicsViewCacheMode QGraphicsViewCacheModeFlag where
+  toQGraphicsViewCacheMode = QGraphicsViewCacheMode . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+cacheNone = QGraphicsViewCacheMode 0
+cacheBackground = QGraphicsViewCacheMode 1
+
+data QGraphicsViewCacheModeFlag =
+  CacheNone
+  | CacheBackground
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QGraphicsViewCacheModeFlag where
+  fromEnum CacheNone = 0
+  fromEnum CacheBackground = 1
+  
+  toEnum (0) = CacheNone
+  toEnum (1) = CacheBackground
+  toEnum n' = HoppyP.error $ "Unknown QGraphicsViewCacheModeFlag numeric value: " ++ HoppyP.show n'
+
+data QGraphicsViewDragMode =
+  NoDrag
+  | ScrollHandDrag
+  | RubberBandDrag
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QGraphicsViewDragMode where
+  fromEnum NoDrag = 0
+  fromEnum ScrollHandDrag = 1
+  fromEnum RubberBandDrag = 2
+  
+  toEnum (0) = NoDrag
+  toEnum (1) = ScrollHandDrag
+  toEnum (2) = RubberBandDrag
+  toEnum n' = HoppyP.error $ "Unknown QGraphicsViewDragMode numeric value: " ++ HoppyP.show n'
+
+data QGraphicsViewOptimizationFlag =
+  DontClipPainter
+  | DontSavePainterState
+  | DontAdjustForAntialiasing
+  | IndirectPainting
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QGraphicsViewOptimizationFlag where
+  fromEnum DontClipPainter = 1
+  fromEnum DontSavePainterState = 2
+  fromEnum DontAdjustForAntialiasing = 4
+  fromEnum IndirectPainting = 8
+  
+  toEnum (1) = DontClipPainter
+  toEnum (2) = DontSavePainterState
+  toEnum (4) = DontAdjustForAntialiasing
+  toEnum (8) = IndirectPainting
+  toEnum n' = HoppyP.error $ "Unknown QGraphicsViewOptimizationFlag numeric value: " ++ HoppyP.show n'
+
+newtype QGraphicsViewOptimizationFlags = QGraphicsViewOptimizationFlags { fromQGraphicsViewOptimizationFlags :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQGraphicsViewOptimizationFlags a where
+  toQGraphicsViewOptimizationFlags :: a -> QGraphicsViewOptimizationFlags
+
+instance IsQGraphicsViewOptimizationFlags (HoppyFC.CInt) where
+  toQGraphicsViewOptimizationFlags = QGraphicsViewOptimizationFlags
+instance IsQGraphicsViewOptimizationFlags (HoppyP.Int) where
+  toQGraphicsViewOptimizationFlags = QGraphicsViewOptimizationFlags . HoppyFHR.coerceIntegral
+instance IsQGraphicsViewOptimizationFlags QGraphicsViewOptimizationFlags where
+  toQGraphicsViewOptimizationFlags = HoppyP.id
+
+instance IsQGraphicsViewOptimizationFlags QGraphicsViewOptimizationFlag where
+  toQGraphicsViewOptimizationFlags = QGraphicsViewOptimizationFlags . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+dontClipPainter = QGraphicsViewOptimizationFlags 1
+dontSavePainterState = QGraphicsViewOptimizationFlags 2
+dontAdjustForAntialiasing = QGraphicsViewOptimizationFlags 4
+indirectPainting = QGraphicsViewOptimizationFlags 8
+
+data QGraphicsViewViewportAnchor =
+  NoAnchor
+  | AnchorViewCenter
+  | AnchorUnderMouse
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QGraphicsViewViewportAnchor where
+  fromEnum NoAnchor = 0
+  fromEnum AnchorViewCenter = 1
+  fromEnum AnchorUnderMouse = 2
+  
+  toEnum (0) = NoAnchor
+  toEnum (1) = AnchorViewCenter
+  toEnum (2) = AnchorUnderMouse
+  toEnum n' = HoppyP.error $ "Unknown QGraphicsViewViewportAnchor numeric value: " ++ HoppyP.show n'
+
+data QGraphicsViewViewportUpdateMode =
+  FullViewportUpdate
+  | MinimalViewportUpdate
+  | SmartViewportUpdate
+  | BoundingRectViewportUpdate
+  | NoViewportUpdate
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QGraphicsViewViewportUpdateMode where
+  fromEnum FullViewportUpdate = 0
+  fromEnum MinimalViewportUpdate = 1
+  fromEnum SmartViewportUpdate = 2
+  fromEnum BoundingRectViewportUpdate = 4
+  fromEnum NoViewportUpdate = 3
+  
+  toEnum (0) = FullViewportUpdate
+  toEnum (1) = MinimalViewportUpdate
+  toEnum (2) = SmartViewportUpdate
+  toEnum (4) = BoundingRectViewportUpdate
+  toEnum (3) = NoViewportUpdate
+  toEnum n' = HoppyP.error $ "Unknown QGraphicsViewViewportUpdateMode numeric value: " ++ HoppyP.show n'
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,540 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayout as M228
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M230
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QGridLayout_new" new' ::  HoppyP.IO (HoppyF.Ptr QGridLayout)
+foreign import ccall "genpop__QGridLayout_newWithParent" newWithParent' ::  HoppyF.Ptr M280.QWidget -> HoppyP.IO (HoppyF.Ptr QGridLayout)
+foreign import ccall "genpop__QGridLayout_addItem" addItem' ::  HoppyF.Ptr QGridLayout -> HoppyF.Ptr M230.QLayoutItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_addItemWithSpan" addItemWithSpan' ::  HoppyF.Ptr QGridLayout -> HoppyF.Ptr M230.QLayoutItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_addItemWithSpanAndAlignment" addItemWithSpanAndAlignment' ::  HoppyF.Ptr QGridLayout -> HoppyF.Ptr M230.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 M228.QLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_addLayoutWithSpan" addLayoutWithSpan' ::  HoppyF.Ptr QGridLayout -> HoppyF.Ptr M228.QLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_addLayoutWithSpanAndAlignment" addLayoutWithSpanAndAlignment' ::  HoppyF.Ptr QGridLayout -> HoppyF.Ptr M228.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 M280.QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_addWidgetWithSpan" addWidgetWithSpan' ::  HoppyF.Ptr QGridLayout -> HoppyF.Ptr M280.QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_addWidgetWithSpanAndAlignment" addWidgetWithSpanAndAlignment' ::  HoppyF.Ptr QGridLayout -> HoppyF.Ptr M280.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 M38.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 M230.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 M228.QLayoutConst
+foreign import ccall "gencast__QLayout__QGridLayout" castQLayoutToQGridLayout :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr QGridLayoutConst
+foreign import ccall "gencast__QGridLayout__QObject" castQGridLayoutToQObject :: HoppyF.Ptr QGridLayoutConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QGridLayout" castQObjectToQGridLayout :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr QGridLayoutConst
+foreign import ccall "gencast__QGridLayout__QLayoutItem" castQGridLayoutToQLayoutItem :: HoppyF.Ptr QGridLayoutConst -> HoppyF.Ptr M230.QLayoutItemConst
+foreign import ccall "gencast__QLayoutItem__QGridLayout" castQLayoutItemToQGridLayout :: HoppyF.Ptr M230.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QGridLayoutConstPtr a => QGridLayoutValue a where
+#else
+instance QGridLayoutConstPtr a => QGridLayoutValue a where
+#endif
+  withQGridLayoutPtr = HoppyP.flip ($) . toQGridLayoutConst
+
+class (M228.QLayoutConstPtr this) => QGridLayoutConstPtr this where
+  toQGridLayoutConst :: this -> QGridLayoutConst
+
+cellRect :: (QGridLayoutValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO HRect.HRect
+cellRect arg'1 arg'2 arg'3 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (cellRect' arg'1' arg'2' arg'3')
+
+columnCount :: (QGridLayoutValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+columnCount arg'1 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (columnCount' arg'1')
+
+columnMinimumWidth :: (QGridLayoutValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+columnMinimumWidth arg'1 arg'2 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (columnMinimumWidth' arg'1' arg'2')
+
+columnStretch :: (QGridLayoutValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+columnStretch arg'1 arg'2 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (getItemColumnSpan' arg'1' arg'2')
+
+horizontalSpacing :: (QGridLayoutValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+horizontalSpacing arg'1 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (horizontalSpacing' arg'1')
+
+itemAtPosition :: (QGridLayoutValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO M230.QLayoutItem
+itemAtPosition arg'1 arg'2 arg'3 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap M230.QLayoutItem
+  (itemAtPosition' arg'1' arg'2' arg'3')
+
+originCorner :: (QGridLayoutValue arg'1) => arg'1 -> HoppyP.IO M58.QtCorner
+originCorner arg'1 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (originCorner' arg'1')
+
+rowCount :: (QGridLayoutValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+rowCount arg'1 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (rowCount' arg'1')
+
+rowMinimumHeight :: (QGridLayoutValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+rowMinimumHeight arg'1 arg'2 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (rowMinimumHeight' arg'1' arg'2')
+
+rowStretch :: (QGridLayoutValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+rowStretch arg'1 arg'2 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (rowStretch' arg'1' arg'2')
+
+spacing :: (QGridLayoutValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+spacing arg'1 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (spacing' arg'1')
+
+verticalSpacing :: (QGridLayoutValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+verticalSpacing arg'1 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (verticalSpacing' arg'1')
+
+class (QGridLayoutConstPtr this, M228.QLayoutPtr this) => QGridLayoutPtr this where
+  toQGridLayout :: this -> QGridLayout
+
+addItem :: (QGridLayoutPtr arg'1, M230.QLayoutItemPtr arg'2) => arg'1 -> 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 (M230.toQLayoutItem arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  (addItem' arg'1' arg'2' arg'3' arg'4')
+
+addItemWithSpan :: (QGridLayoutPtr arg'1, M230.QLayoutItemPtr arg'2) => arg'1 -> 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 (M230.toQLayoutItem arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  let arg'6' = HoppyFHR.coerceIntegral arg'6 in
+  (addItemWithSpan' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+addItemWithSpanAndAlignment :: (QGridLayoutPtr arg'1, M230.QLayoutItemPtr arg'2, M58.IsQtAlignment arg'7) => arg'1 -> 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 (M230.toQLayoutItem arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  let arg'6' = HoppyFHR.coerceIntegral arg'6 in
+  let arg'7' = M58.fromQtAlignment $ M58.toQtAlignment arg'7 in
+  (addItemWithSpanAndAlignment' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+addLayout :: (QGridLayoutPtr arg'1, M228.QLayoutPtr arg'2) => arg'1 -> 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 (M228.toQLayout arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  (addLayout' arg'1' arg'2' arg'3' arg'4')
+
+addLayoutWithSpan :: (QGridLayoutPtr arg'1, M228.QLayoutPtr arg'2) => arg'1 -> 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 (M228.toQLayout arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  let arg'6' = HoppyFHR.coerceIntegral arg'6 in
+  (addLayoutWithSpan' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+addLayoutWithSpanAndAlignment :: (QGridLayoutPtr arg'1, M228.QLayoutPtr arg'2, M58.IsQtAlignment arg'7) => arg'1 -> 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 (M228.toQLayout arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  let arg'6' = HoppyFHR.coerceIntegral arg'6 in
+  let arg'7' = M58.fromQtAlignment $ M58.toQtAlignment arg'7 in
+  (addLayoutWithSpanAndAlignment' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+addWidget :: (QGridLayoutPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> 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 (M280.toQWidget arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  (addWidget' arg'1' arg'2' arg'3' arg'4')
+
+addWidgetWithSpan :: (QGridLayoutPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> 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 (M280.toQWidget arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  let arg'6' = HoppyFHR.coerceIntegral arg'6 in
+  (addWidgetWithSpan' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+addWidgetWithSpanAndAlignment :: (QGridLayoutPtr arg'1, M280.QWidgetPtr arg'2, M58.IsQtAlignment arg'7) => arg'1 -> 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 (M280.toQWidget arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  let arg'6' = HoppyFHR.coerceIntegral arg'6 in
+  let arg'7' = M58.fromQtAlignment $ M58.toQtAlignment arg'7 in
+  (addWidgetWithSpanAndAlignment' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+setHorizontalSpacing :: (QGridLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setHorizontalSpacing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setHorizontalSpacing' arg'1' arg'2')
+
+setOriginCorner :: (QGridLayoutPtr arg'1) => arg'1 -> M58.QtCorner -> HoppyP.IO ()
+setOriginCorner arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setOriginCorner' arg'1' arg'2')
+
+setColumnMinimumWidth :: (QGridLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setColumnMinimumWidth arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setColumnMinimumWidth' arg'1' arg'2' arg'3')
+
+setColumnStretch :: (QGridLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setColumnStretch arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setColumnStretch' arg'1' arg'2' arg'3')
+
+setRowMinimumHeight :: (QGridLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setRowMinimumHeight arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setRowMinimumHeight' arg'1' arg'2' arg'3')
+
+setRowStretch :: (QGridLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setRowStretch arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setRowStretch' arg'1' arg'2' arg'3')
+
+setVerticalSpacing :: (QGridLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setVerticalSpacing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (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 M228.QLayoutConstPtr QGridLayoutConst where
+  toQLayoutConst (QGridLayoutConst ptr') = M228.QLayoutConst $ castQGridLayoutToQLayout ptr'
+  toQLayoutConst (QGridLayoutConstGc fptr' ptr') = M228.QLayoutConstGc fptr' $ castQGridLayoutToQLayout ptr'
+
+instance M30.QObjectConstPtr QGridLayoutConst where
+  toQObjectConst (QGridLayoutConst ptr') = M30.QObjectConst $ castQGridLayoutToQObject ptr'
+  toQObjectConst (QGridLayoutConstGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQGridLayoutToQObject ptr'
+
+instance M230.QLayoutItemConstPtr QGridLayoutConst where
+  toQLayoutItemConst (QGridLayoutConst ptr') = M230.QLayoutItemConst $ castQGridLayoutToQLayoutItem ptr'
+  toQLayoutItemConst (QGridLayoutConstGc fptr' ptr') = M230.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 M228.QLayoutConstPtr QGridLayout where
+  toQLayoutConst (QGridLayout ptr') = M228.QLayoutConst $ castQGridLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+  toQLayoutConst (QGridLayoutGc fptr' ptr') = M228.QLayoutConstGc fptr' $ castQGridLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+
+instance M228.QLayoutPtr QGridLayout where
+  toQLayout (QGridLayout ptr') = M228.QLayout $ (HoppyF.castPtr :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr M228.QLayout) $ castQGridLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+  toQLayout (QGridLayoutGc fptr' ptr') = M228.QLayoutGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr M228.QLayout) $ castQGridLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+
+instance M30.QObjectConstPtr QGridLayout where
+  toQObjectConst (QGridLayout ptr') = M30.QObjectConst $ castQGridLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+  toQObjectConst (QGridLayoutGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQGridLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+
+instance M30.QObjectPtr QGridLayout where
+  toQObject (QGridLayout ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQGridLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+  toQObject (QGridLayoutGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQGridLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+
+instance M230.QLayoutItemConstPtr QGridLayout where
+  toQLayoutItemConst (QGridLayout ptr') = M230.QLayoutItemConst $ castQGridLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+  toQLayoutItemConst (QGridLayoutGc fptr' ptr') = M230.QLayoutItemConstGc fptr' $ castQGridLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+
+instance M230.QLayoutItemPtr QGridLayout where
+  toQLayoutItem (QGridLayout ptr') = M230.QLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQGridLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+  toQLayoutItem (QGridLayoutGc fptr' ptr') = M230.QLayoutItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQGridLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+
+new ::  HoppyP.IO QGridLayout
+new =
+  HoppyP.fmap QGridLayout
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QGridLayout
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QGridLayout
+  (newWithParent' arg'1')
+
+class QGridLayoutSuper a where
+  downToQGridLayout :: a -> QGridLayout
+
+instance QGridLayoutSuper M228.QLayout where
+  downToQGridLayout = castQGridLayoutToNonconst . cast' . M228.castQLayoutToConst
+    where
+      cast' (M228.QLayoutConst ptr') = QGridLayoutConst $ castQLayoutToQGridLayout ptr'
+      cast' (M228.QLayoutConstGc fptr' ptr') = QGridLayoutConstGc fptr' $ castQLayoutToQGridLayout ptr'
+instance QGridLayoutSuper M30.QObject where
+  downToQGridLayout = castQGridLayoutToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QGridLayoutConst $ castQObjectToQGridLayout ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QGridLayoutConstGc fptr' $ castQObjectToQGridLayout ptr'
+instance QGridLayoutSuper M230.QLayoutItem where
+  downToQGridLayout = castQGridLayoutToNonconst . cast' . M230.castQLayoutItemToConst
+    where
+      cast' (M230.QLayoutItemConst ptr') = QGridLayoutConst $ castQLayoutItemToQGridLayout ptr'
+      cast' (M230.QLayoutItemConstGc fptr' ptr') = QGridLayoutConstGc fptr' $ castQLayoutItemToQGridLayout ptr'
+
+class QGridLayoutSuperConst a where
+  downToQGridLayoutConst :: a -> QGridLayoutConst
+
+instance QGridLayoutSuperConst M228.QLayoutConst where
+  downToQGridLayoutConst = cast'
+    where
+      cast' (M228.QLayoutConst ptr') = QGridLayoutConst $ castQLayoutToQGridLayout ptr'
+      cast' (M228.QLayoutConstGc fptr' ptr') = QGridLayoutConstGc fptr' $ castQLayoutToQGridLayout ptr'
+instance QGridLayoutSuperConst M30.QObjectConst where
+  downToQGridLayoutConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QGridLayoutConst $ castQObjectToQGridLayout ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QGridLayoutConstGc fptr' $ castQObjectToQGridLayout ptr'
+instance QGridLayoutSuperConst M230.QLayoutItemConst where
+  downToQGridLayoutConst = cast'
+    where
+      cast' (M230.QLayoutItemConst ptr') = QGridLayoutConst $ castQLayoutItemToQGridLayout ptr'
+      cast' (M230.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,304 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QGroupBox)
+foreign import ccall "genpop__QGroupBox_newWithTitle" newWithTitle' ::  HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr QGroupBox)
+foreign import ccall "genpop__QGroupBox_newWithTitleAndParent" newWithTitleAndParent' ::  HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M280.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 HoppyFHR.CBool
+foreign import ccall "genpop__QGroupBox_setCheckable" setCheckable' ::  HoppyF.Ptr QGroupBox -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGroupBox_isChecked" isChecked' ::  HoppyF.Ptr QGroupBoxConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGroupBox_setChecked" setChecked' ::  HoppyF.Ptr QGroupBox -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGroupBox_isFlat" isFlat' ::  HoppyF.Ptr QGroupBoxConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QGroupBox_setFlat" setFlat' ::  HoppyF.Ptr QGroupBox -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGroupBox_title" title' ::  HoppyF.Ptr QGroupBoxConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QGroupBox_setTitle" setTitle' ::  HoppyF.Ptr QGroupBox -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "gencast__QGroupBox__QWidget" castQGroupBoxToQWidget :: HoppyF.Ptr QGroupBoxConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QGroupBox" castQWidgetToQGroupBox :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QGroupBoxConst
+foreign import ccall "gencast__QGroupBox__QObject" castQGroupBoxToQObject :: HoppyF.Ptr QGroupBoxConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QGroupBox" castQObjectToQGroupBox :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QGroupBoxConstPtr a => QGroupBoxValue a where
+#else
+instance QGroupBoxConstPtr a => QGroupBoxValue a where
+#endif
+  withQGroupBoxPtr = HoppyP.flip ($) . toQGroupBoxConst
+
+class (M280.QWidgetConstPtr this) => QGroupBoxConstPtr this where
+  toQGroupBoxConst :: this -> QGroupBoxConst
+
+alignment :: (QGroupBoxValue arg'1) => arg'1 -> HoppyP.IO M58.QtAlignment
+alignment arg'1 =
+  withQGroupBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtAlignment
+  (alignment' arg'1')
+
+isCheckable :: (QGroupBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isCheckable arg'1 =
+  withQGroupBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isCheckable' arg'1')
+
+isChecked :: (QGroupBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isChecked arg'1 =
+  withQGroupBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isChecked' arg'1')
+
+isFlat :: (QGroupBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isFlat arg'1 =
+  withQGroupBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isFlat' arg'1')
+
+title :: (QGroupBoxValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+title arg'1 =
+  withQGroupBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (title' arg'1')
+
+class (QGroupBoxConstPtr this, M280.QWidgetPtr this) => QGroupBoxPtr this where
+  toQGroupBox :: this -> QGroupBox
+
+setAlignment :: (QGroupBoxPtr arg'1, M58.IsQtAlignment arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGroupBox arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtAlignment $ M58.toQtAlignment arg'2 in
+  (setAlignment' arg'1' arg'2')
+
+setCheckable :: (QGroupBoxPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setCheckable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGroupBox arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setCheckable' arg'1' arg'2')
+
+setChecked :: (QGroupBoxPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setChecked arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGroupBox arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setChecked' arg'1' arg'2')
+
+setFlat :: (QGroupBoxPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setFlat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGroupBox arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setFlat' arg'1' arg'2')
+
+setTitle :: (QGroupBoxPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setTitle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGroupBox arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTitle' 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 M280.QWidgetConstPtr QGroupBoxConst where
+  toQWidgetConst (QGroupBoxConst ptr') = M280.QWidgetConst $ castQGroupBoxToQWidget ptr'
+  toQWidgetConst (QGroupBoxConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQGroupBoxToQWidget ptr'
+
+instance M30.QObjectConstPtr QGroupBoxConst where
+  toQObjectConst (QGroupBoxConst ptr') = M30.QObjectConst $ castQGroupBoxToQObject ptr'
+  toQObjectConst (QGroupBoxConstGc fptr' ptr') = M30.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 M280.QWidgetConstPtr QGroupBox where
+  toQWidgetConst (QGroupBox ptr') = M280.QWidgetConst $ castQGroupBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+  toQWidgetConst (QGroupBoxGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQGroupBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+
+instance M280.QWidgetPtr QGroupBox where
+  toQWidget (QGroupBox ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQGroupBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+  toQWidget (QGroupBoxGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQGroupBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+
+instance M30.QObjectConstPtr QGroupBox where
+  toQObjectConst (QGroupBox ptr') = M30.QObjectConst $ castQGroupBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+  toQObjectConst (QGroupBoxGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQGroupBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+
+instance M30.QObjectPtr QGroupBox where
+  toQObject (QGroupBox ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQGroupBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+  toQObject (QGroupBoxGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQGroupBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+
+new ::  HoppyP.IO QGroupBox
+new =
+  HoppyP.fmap QGroupBox
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QGroupBox
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QGroupBox
+  (newWithParent' arg'1')
+
+newWithTitle :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO QGroupBox
+newWithTitle arg'1 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QGroupBox
+  (newWithTitle' arg'1')
+
+newWithTitleAndParent :: (M46.QStringValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QGroupBox
+newWithTitleAndParent arg'1 arg'2 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QGroupBox
+  (newWithTitleAndParent' arg'1' arg'2')
+
+class QGroupBoxSuper a where
+  downToQGroupBox :: a -> QGroupBox
+
+instance QGroupBoxSuper M280.QWidget where
+  downToQGroupBox = castQGroupBoxToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QGroupBoxConst $ castQWidgetToQGroupBox ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QGroupBoxConstGc fptr' $ castQWidgetToQGroupBox ptr'
+instance QGroupBoxSuper M30.QObject where
+  downToQGroupBox = castQGroupBoxToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QGroupBoxConst $ castQObjectToQGroupBox ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QGroupBoxConstGc fptr' $ castQObjectToQGroupBox ptr'
+
+class QGroupBoxSuperConst a where
+  downToQGroupBoxConst :: a -> QGroupBoxConst
+
+instance QGroupBoxSuperConst M280.QWidgetConst where
+  downToQGroupBoxConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QGroupBoxConst $ castQWidgetToQGroupBox ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QGroupBoxConstGc fptr' $ castQWidgetToQGroupBox ptr'
+instance QGroupBoxSuperConst M30.QObjectConst where
+  downToQGroupBoxConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QGroupBoxConst $ castQObjectToQGroupBox ptr'
+      cast' (M30.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,258 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Graphics.UI.Qtah.Generated.Widgets.QBoxLayout as M180
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayout as M228
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M230
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QHBoxLayout)
+foreign import ccall "gencast__QHBoxLayout__QBoxLayout" castQHBoxLayoutToQBoxLayout :: HoppyF.Ptr QHBoxLayoutConst -> HoppyF.Ptr M180.QBoxLayoutConst
+foreign import ccall "gencast__QBoxLayout__QHBoxLayout" castQBoxLayoutToQHBoxLayout :: HoppyF.Ptr M180.QBoxLayoutConst -> HoppyF.Ptr QHBoxLayoutConst
+foreign import ccall "gencast__QHBoxLayout__QLayout" castQHBoxLayoutToQLayout :: HoppyF.Ptr QHBoxLayoutConst -> HoppyF.Ptr M228.QLayoutConst
+foreign import ccall "gencast__QLayout__QHBoxLayout" castQLayoutToQHBoxLayout :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr QHBoxLayoutConst
+foreign import ccall "gencast__QHBoxLayout__QObject" castQHBoxLayoutToQObject :: HoppyF.Ptr QHBoxLayoutConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QHBoxLayout" castQObjectToQHBoxLayout :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr QHBoxLayoutConst
+foreign import ccall "gencast__QHBoxLayout__QLayoutItem" castQHBoxLayoutToQLayoutItem :: HoppyF.Ptr QHBoxLayoutConst -> HoppyF.Ptr M230.QLayoutItemConst
+foreign import ccall "gencast__QLayoutItem__QHBoxLayout" castQLayoutItemToQHBoxLayout :: HoppyF.Ptr M230.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QHBoxLayoutConstPtr a => QHBoxLayoutValue a where
+#else
+instance QHBoxLayoutConstPtr a => QHBoxLayoutValue a where
+#endif
+  withQHBoxLayoutPtr = HoppyP.flip ($) . toQHBoxLayoutConst
+
+class (M180.QBoxLayoutConstPtr this) => QHBoxLayoutConstPtr this where
+  toQHBoxLayoutConst :: this -> QHBoxLayoutConst
+
+class (QHBoxLayoutConstPtr this, M180.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 M180.QBoxLayoutConstPtr QHBoxLayoutConst where
+  toQBoxLayoutConst (QHBoxLayoutConst ptr') = M180.QBoxLayoutConst $ castQHBoxLayoutToQBoxLayout ptr'
+  toQBoxLayoutConst (QHBoxLayoutConstGc fptr' ptr') = M180.QBoxLayoutConstGc fptr' $ castQHBoxLayoutToQBoxLayout ptr'
+
+instance M228.QLayoutConstPtr QHBoxLayoutConst where
+  toQLayoutConst (QHBoxLayoutConst ptr') = M228.QLayoutConst $ castQHBoxLayoutToQLayout ptr'
+  toQLayoutConst (QHBoxLayoutConstGc fptr' ptr') = M228.QLayoutConstGc fptr' $ castQHBoxLayoutToQLayout ptr'
+
+instance M30.QObjectConstPtr QHBoxLayoutConst where
+  toQObjectConst (QHBoxLayoutConst ptr') = M30.QObjectConst $ castQHBoxLayoutToQObject ptr'
+  toQObjectConst (QHBoxLayoutConstGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQHBoxLayoutToQObject ptr'
+
+instance M230.QLayoutItemConstPtr QHBoxLayoutConst where
+  toQLayoutItemConst (QHBoxLayoutConst ptr') = M230.QLayoutItemConst $ castQHBoxLayoutToQLayoutItem ptr'
+  toQLayoutItemConst (QHBoxLayoutConstGc fptr' ptr') = M230.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 M180.QBoxLayoutConstPtr QHBoxLayout where
+  toQBoxLayoutConst (QHBoxLayout ptr') = M180.QBoxLayoutConst $ castQHBoxLayoutToQBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+  toQBoxLayoutConst (QHBoxLayoutGc fptr' ptr') = M180.QBoxLayoutConstGc fptr' $ castQHBoxLayoutToQBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+
+instance M180.QBoxLayoutPtr QHBoxLayout where
+  toQBoxLayout (QHBoxLayout ptr') = M180.QBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr M180.QBoxLayoutConst -> HoppyF.Ptr M180.QBoxLayout) $ castQHBoxLayoutToQBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+  toQBoxLayout (QHBoxLayoutGc fptr' ptr') = M180.QBoxLayoutGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M180.QBoxLayoutConst -> HoppyF.Ptr M180.QBoxLayout) $ castQHBoxLayoutToQBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+
+instance M228.QLayoutConstPtr QHBoxLayout where
+  toQLayoutConst (QHBoxLayout ptr') = M228.QLayoutConst $ castQHBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+  toQLayoutConst (QHBoxLayoutGc fptr' ptr') = M228.QLayoutConstGc fptr' $ castQHBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+
+instance M228.QLayoutPtr QHBoxLayout where
+  toQLayout (QHBoxLayout ptr') = M228.QLayout $ (HoppyF.castPtr :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr M228.QLayout) $ castQHBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+  toQLayout (QHBoxLayoutGc fptr' ptr') = M228.QLayoutGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr M228.QLayout) $ castQHBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+
+instance M30.QObjectConstPtr QHBoxLayout where
+  toQObjectConst (QHBoxLayout ptr') = M30.QObjectConst $ castQHBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+  toQObjectConst (QHBoxLayoutGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQHBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+
+instance M30.QObjectPtr QHBoxLayout where
+  toQObject (QHBoxLayout ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQHBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+  toQObject (QHBoxLayoutGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQHBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+
+instance M230.QLayoutItemConstPtr QHBoxLayout where
+  toQLayoutItemConst (QHBoxLayout ptr') = M230.QLayoutItemConst $ castQHBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+  toQLayoutItemConst (QHBoxLayoutGc fptr' ptr') = M230.QLayoutItemConstGc fptr' $ castQHBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+
+instance M230.QLayoutItemPtr QHBoxLayout where
+  toQLayoutItem (QHBoxLayout ptr') = M230.QLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQHBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+  toQLayoutItem (QHBoxLayoutGc fptr' ptr') = M230.QLayoutItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQHBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+
+new ::  HoppyP.IO QHBoxLayout
+new =
+  HoppyP.fmap QHBoxLayout
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QHBoxLayout
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QHBoxLayout
+  (newWithParent' arg'1')
+
+class QHBoxLayoutSuper a where
+  downToQHBoxLayout :: a -> QHBoxLayout
+
+instance QHBoxLayoutSuper M180.QBoxLayout where
+  downToQHBoxLayout = castQHBoxLayoutToNonconst . cast' . M180.castQBoxLayoutToConst
+    where
+      cast' (M180.QBoxLayoutConst ptr') = QHBoxLayoutConst $ castQBoxLayoutToQHBoxLayout ptr'
+      cast' (M180.QBoxLayoutConstGc fptr' ptr') = QHBoxLayoutConstGc fptr' $ castQBoxLayoutToQHBoxLayout ptr'
+instance QHBoxLayoutSuper M228.QLayout where
+  downToQHBoxLayout = castQHBoxLayoutToNonconst . cast' . M228.castQLayoutToConst
+    where
+      cast' (M228.QLayoutConst ptr') = QHBoxLayoutConst $ castQLayoutToQHBoxLayout ptr'
+      cast' (M228.QLayoutConstGc fptr' ptr') = QHBoxLayoutConstGc fptr' $ castQLayoutToQHBoxLayout ptr'
+instance QHBoxLayoutSuper M30.QObject where
+  downToQHBoxLayout = castQHBoxLayoutToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QHBoxLayoutConst $ castQObjectToQHBoxLayout ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QHBoxLayoutConstGc fptr' $ castQObjectToQHBoxLayout ptr'
+instance QHBoxLayoutSuper M230.QLayoutItem where
+  downToQHBoxLayout = castQHBoxLayoutToNonconst . cast' . M230.castQLayoutItemToConst
+    where
+      cast' (M230.QLayoutItemConst ptr') = QHBoxLayoutConst $ castQLayoutItemToQHBoxLayout ptr'
+      cast' (M230.QLayoutItemConstGc fptr' ptr') = QHBoxLayoutConstGc fptr' $ castQLayoutItemToQHBoxLayout ptr'
+
+class QHBoxLayoutSuperConst a where
+  downToQHBoxLayoutConst :: a -> QHBoxLayoutConst
+
+instance QHBoxLayoutSuperConst M180.QBoxLayoutConst where
+  downToQHBoxLayoutConst = cast'
+    where
+      cast' (M180.QBoxLayoutConst ptr') = QHBoxLayoutConst $ castQBoxLayoutToQHBoxLayout ptr'
+      cast' (M180.QBoxLayoutConstGc fptr' ptr') = QHBoxLayoutConstGc fptr' $ castQBoxLayoutToQHBoxLayout ptr'
+instance QHBoxLayoutSuperConst M228.QLayoutConst where
+  downToQHBoxLayoutConst = cast'
+    where
+      cast' (M228.QLayoutConst ptr') = QHBoxLayoutConst $ castQLayoutToQHBoxLayout ptr'
+      cast' (M228.QLayoutConstGc fptr' ptr') = QHBoxLayoutConstGc fptr' $ castQLayoutToQHBoxLayout ptr'
+instance QHBoxLayoutSuperConst M30.QObjectConst where
+  downToQHBoxLayoutConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QHBoxLayoutConst $ castQObjectToQHBoxLayout ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QHBoxLayoutConstGc fptr' $ castQObjectToQHBoxLayout ptr'
+instance QHBoxLayoutSuperConst M230.QLayoutItemConst where
+  downToQHBoxLayoutConst = cast'
+    where
+      cast' (M230.QLayoutItemConst ptr') = QHBoxLayoutConst $ castQLayoutItemToQHBoxLayout ptr'
+      cast' (M230.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,741 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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 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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M48
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QDialog as M188
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLineEdit as M232
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QInputDialog)
+foreign import ccall "genpop__QInputDialog_newWithParentAndFlags" newWithParentAndFlags' ::  HoppyF.Ptr M280.QWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QInputDialog)
+foreign import ccall "genpop__QInputDialog_cancelButtonText" cancelButtonText' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QInputDialog_setCancelButtonText" setCancelButtonText' ::  HoppyF.Ptr QInputDialog -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_isComboBoxEditable" isComboBoxEditable' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QInputDialog_setComboBoxEditable" setComboBoxEditable' ::  HoppyF.Ptr QInputDialog -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_comboBoxItems" comboBoxItems' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO (HoppyF.Ptr M48.QStringListConst)
+foreign import ccall "genpop__QInputDialog_setComboBoxItems" setComboBoxItems' ::  HoppyF.Ptr QInputDialog -> HoppyF.Ptr M48.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 M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QInputDialog_getDoubleWithOptions" getDoubleWithOptions' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CInt -> HoppyF.Ptr HoppyFHR.CBool -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QInputDialog_getInt" getInt' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QInputDialog_getIntWithOptions" getIntWithOptions' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr HoppyFHR.CBool -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QInputDialog_getItem" getItem' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M48.QStringListConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QInputDialog_getItemWithOptions" getItemWithOptions' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M48.QStringListConst -> HoppyFC.CInt -> HoppyFHR.CBool -> HoppyF.Ptr HoppyFHR.CBool -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QInputDialog_getMultiLineText" getMultiLineText' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QInputDialog_getMultiLineTextWithOptions" getMultiLineTextWithOptions' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr HoppyFHR.CBool -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QInputDialog_getText" getText' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QInputDialog_getTextWithOptions" getTextWithOptions' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyFC.CInt -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr HoppyFHR.CBool -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.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 M46.QStringConst)
+foreign import ccall "genpop__QInputDialog_setLabelText" setLabelText' ::  HoppyF.Ptr QInputDialog -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_okButtonText" okButtonText' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QInputDialog_setOkButtonText" setOkButtonText' ::  HoppyF.Ptr QInputDialog -> HoppyF.Ptr M46.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 -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_testOption" testOption' ::  HoppyF.Ptr QInputDialogConst -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.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 M46.QStringConst)
+foreign import ccall "genpop__QInputDialog_setTextValue" setTextValue' ::  HoppyF.Ptr QInputDialog -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "gencast__QInputDialog__QDialog" castQInputDialogToQDialog :: HoppyF.Ptr QInputDialogConst -> HoppyF.Ptr M188.QDialogConst
+foreign import ccall "gencast__QDialog__QInputDialog" castQDialogToQInputDialog :: HoppyF.Ptr M188.QDialogConst -> HoppyF.Ptr QInputDialogConst
+foreign import ccall "gencast__QInputDialog__QWidget" castQInputDialogToQWidget :: HoppyF.Ptr QInputDialogConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QInputDialog" castQWidgetToQInputDialog :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QInputDialogConst
+foreign import ccall "gencast__QInputDialog__QObject" castQInputDialogToQObject :: HoppyF.Ptr QInputDialogConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QInputDialog" castQObjectToQInputDialog :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QInputDialogConstPtr a => QInputDialogValue a where
+#else
+instance QInputDialogConstPtr a => QInputDialogValue a where
+#endif
+  withQInputDialogPtr = HoppyP.flip ($) . toQInputDialogConst
+
+class (M188.QDialogConstPtr this) => QInputDialogConstPtr this where
+  toQInputDialogConst :: this -> QInputDialogConst
+
+cancelButtonText :: (QInputDialogValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+cancelButtonText arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (cancelButtonText' arg'1')
+
+isComboBoxEditable :: (QInputDialogValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isComboBoxEditable arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isComboBoxEditable' arg'1')
+
+comboBoxItems :: (QInputDialogValue arg'1) => arg'1 -> HoppyP.IO [QtahP.String]
+comboBoxItems arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M48.QStringListConst) =<<
+  (comboBoxItems' arg'1')
+
+doubleDecimals :: (QInputDialogValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+doubleDecimals arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (doubleDecimals' arg'1')
+
+doubleMaximum :: (QInputDialogValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+doubleMaximum arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (doubleMaximum' arg'1')
+
+doubleMinimum :: (QInputDialogValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+doubleMinimum arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (doubleMinimum' arg'1')
+
+doubleValue :: (QInputDialogValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+doubleValue arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (doubleValue' arg'1')
+
+inputMode :: (QInputDialogValue arg'1) => arg'1 -> HoppyP.IO QInputDialogInputMode
+inputMode arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (inputMode' arg'1')
+
+intMaximum :: (QInputDialogValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+intMaximum arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (intMaximum' arg'1')
+
+intMinimum :: (QInputDialogValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+intMinimum arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (intMinimum' arg'1')
+
+intStep :: (QInputDialogValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+intStep arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (intStep' arg'1')
+
+intValue :: (QInputDialogValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+intValue arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (intValue' arg'1')
+
+labelText :: (QInputDialogValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+labelText arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (labelText' arg'1')
+
+okButtonText :: (QInputDialogValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+okButtonText arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (okButtonText' arg'1')
+
+options :: (QInputDialogValue arg'1) => arg'1 -> HoppyP.IO QInputDialogInputDialogOptions
+options arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QInputDialogInputDialogOptions
+  (options' arg'1')
+
+testOption :: (QInputDialogValue arg'1) => arg'1 -> QInputDialogInputDialogOption -> HoppyP.IO HoppyP.Bool
+testOption arg'1 arg'2 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  HoppyP.fmap (/= 0)
+  (testOption' arg'1' arg'2')
+
+textEchoMode :: (QInputDialogValue arg'1) => arg'1 -> HoppyP.IO M232.QLineEditEchoMode
+textEchoMode arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (textEchoMode' arg'1')
+
+textValue :: (QInputDialogValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+textValue arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (textValue' arg'1')
+
+class (QInputDialogConstPtr this, M188.QDialogPtr this) => QInputDialogPtr this where
+  toQInputDialog :: this -> QInputDialog
+
+setCancelButtonText :: (QInputDialogPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setCancelButtonText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setCancelButtonText' arg'1' arg'2')
+
+setComboBoxEditable :: (QInputDialogPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setComboBoxEditable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setComboBoxEditable' arg'1' arg'2')
+
+setComboBoxItems :: (QInputDialogPtr arg'1, M48.QStringListValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setComboBoxItems arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  M48.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setComboBoxItems' arg'1' arg'2')
+
+setDoubleDecimals :: (QInputDialogPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setDoubleDecimals arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setDoubleDecimals' arg'1' arg'2')
+
+setDoubleMaximum :: (QInputDialogPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setDoubleMaximum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setDoubleMaximum' arg'1' arg'2')
+
+setDoubleMinimum :: (QInputDialogPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setDoubleMinimum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setDoubleMinimum' arg'1' arg'2')
+
+setDoubleValue :: (QInputDialogPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setDoubleValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setDoubleValue' arg'1' arg'2')
+
+setInputMode :: (QInputDialogPtr arg'1) => arg'1 -> QInputDialogInputMode -> HoppyP.IO ()
+setInputMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setInputMode' arg'1' arg'2')
+
+setIntMaximum :: (QInputDialogPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setIntMaximum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setIntMaximum' arg'1' arg'2')
+
+setIntMinimum :: (QInputDialogPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setIntMinimum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setIntMinimum' arg'1' arg'2')
+
+setIntStep :: (QInputDialogPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setIntStep arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setIntStep' arg'1' arg'2')
+
+setIntValue :: (QInputDialogPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setIntValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setIntValue' arg'1' arg'2')
+
+setLabelText :: (QInputDialogPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setLabelText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setLabelText' arg'1' arg'2')
+
+setOkButtonText :: (QInputDialogPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setOkButtonText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setOkButtonText' arg'1' arg'2')
+
+setOptions :: (QInputDialogPtr arg'1, IsQInputDialogInputDialogOptions arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setOptions arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  let arg'2' = fromQInputDialogInputDialogOptions $ toQInputDialogInputDialogOptions arg'2 in
+  (setOptions' arg'1' arg'2')
+
+setDoubleRange :: (QInputDialogPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO ()
+setDoubleRange arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  let arg'3' = HoppyP.realToFrac arg'3 in
+  (setDoubleRange' arg'1' arg'2' arg'3')
+
+setIntRange :: (QInputDialogPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setIntRange arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setIntRange' arg'1' arg'2' arg'3')
+
+setOption :: (QInputDialogPtr arg'1) => arg'1 -> QInputDialogInputDialogOption -> HoppyP.Bool -> HoppyP.IO ()
+setOption arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  let arg'3' = if arg'3 then 1 else 0 in
+  (setOption' arg'1' arg'2' arg'3')
+
+setTextEchoMode :: (QInputDialogPtr arg'1) => arg'1 -> M232.QLineEditEchoMode -> HoppyP.IO ()
+setTextEchoMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setTextEchoMode' arg'1' arg'2')
+
+setTextValue :: (QInputDialogPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setTextValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTextValue' arg'1' arg'2')
+
+getDouble :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Double
+getDouble arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (getDouble' arg'1' arg'2' arg'3')
+
+getDoubleWithOptions :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M58.IsQtWindowFlags arg'9) => arg'1 -> arg'2 -> arg'3 -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> HoppyP.Int -> HoppyF.Ptr HoppyFHR.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  let arg'4' = HoppyP.realToFrac arg'4 in
+  let arg'5' = HoppyP.realToFrac arg'5 in
+  let arg'6' = HoppyP.realToFrac arg'6 in
+  let arg'7' = HoppyFHR.coerceIntegral arg'7 in
+  let arg'8' = arg'8 in
+  let arg'9' = M58.fromQtWindowFlags $ M58.toQtWindowFlags arg'9 in
+  HoppyP.fmap HoppyP.realToFrac
+  (getDoubleWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8' arg'9')
+
+getInt :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Int
+getInt arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (getInt' arg'1' arg'2' arg'3')
+
+getIntWithOptions :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M58.IsQtWindowFlags arg'9) => arg'1 -> arg'2 -> arg'3 -> HoppyP.Int -> HoppyP.Int -> HoppyP.Int -> HoppyP.Int -> HoppyF.Ptr HoppyFHR.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  let arg'6' = HoppyFHR.coerceIntegral arg'6 in
+  let arg'7' = HoppyFHR.coerceIntegral arg'7 in
+  let arg'8' = arg'8 in
+  let arg'9' = M58.fromQtWindowFlags $ M58.toQtWindowFlags arg'9 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (getIntWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8' arg'9')
+
+getItem :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M48.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M48.withQStringListPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (getItem' arg'1' arg'2' arg'3' arg'4')
+
+getItemWithOptions :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M48.QStringListValue arg'4, M58.IsQtWindowFlags arg'8, M58.IsQtInputMethodHints arg'9) => arg'1 -> arg'2 -> arg'3 -> arg'4 -> HoppyP.Int -> HoppyP.Bool -> HoppyF.Ptr HoppyFHR.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M48.withQStringListPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  let arg'6' = if arg'6 then 1 else 0 in
+  let arg'7' = arg'7 in
+  let arg'8' = M58.fromQtWindowFlags $ M58.toQtWindowFlags arg'8 in
+  let arg'9' = M58.fromQtInputMethodHints $ M58.toQtInputMethodHints arg'9 in
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (getItemWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8' arg'9')
+
+getMultiLineText :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO QtahP.String
+getMultiLineText arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (getMultiLineText' arg'1' arg'2' arg'3')
+
+getMultiLineTextWithOptions :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M46.QStringValue arg'4, M58.IsQtWindowFlags arg'6, M58.IsQtInputMethodHints arg'7) => arg'1 -> arg'2 -> arg'3 -> arg'4 -> HoppyF.Ptr HoppyFHR.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M46.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  let arg'5' = arg'5 in
+  let arg'6' = M58.fromQtWindowFlags $ M58.toQtWindowFlags arg'6 in
+  let arg'7' = M58.fromQtInputMethodHints $ M58.toQtInputMethodHints arg'7 in
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (getMultiLineTextWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+getText :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO QtahP.String
+getText arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (getText' arg'1' arg'2' arg'3')
+
+getTextWithOptions :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M46.QStringValue arg'5, M58.IsQtWindowFlags arg'7, M58.IsQtInputMethodHints arg'8) => arg'1 -> arg'2 -> arg'3 -> M232.QLineEditEchoMode -> arg'5 -> HoppyF.Ptr HoppyFHR.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  let arg'4' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'4 in
+  M46.withQStringPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  let arg'6' = arg'6 in
+  let arg'7' = M58.fromQtWindowFlags $ M58.toQtWindowFlags arg'7 in
+  let arg'8' = M58.fromQtInputMethodHints $ M58.toQtInputMethodHints arg'8 in
+  (HoppyFHR.decodeAndDelete . M46.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 M188.QDialogConstPtr QInputDialogConst where
+  toQDialogConst (QInputDialogConst ptr') = M188.QDialogConst $ castQInputDialogToQDialog ptr'
+  toQDialogConst (QInputDialogConstGc fptr' ptr') = M188.QDialogConstGc fptr' $ castQInputDialogToQDialog ptr'
+
+instance M280.QWidgetConstPtr QInputDialogConst where
+  toQWidgetConst (QInputDialogConst ptr') = M280.QWidgetConst $ castQInputDialogToQWidget ptr'
+  toQWidgetConst (QInputDialogConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQInputDialogToQWidget ptr'
+
+instance M30.QObjectConstPtr QInputDialogConst where
+  toQObjectConst (QInputDialogConst ptr') = M30.QObjectConst $ castQInputDialogToQObject ptr'
+  toQObjectConst (QInputDialogConstGc fptr' ptr') = M30.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 M188.QDialogConstPtr QInputDialog where
+  toQDialogConst (QInputDialog ptr') = M188.QDialogConst $ castQInputDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+  toQDialogConst (QInputDialogGc fptr' ptr') = M188.QDialogConstGc fptr' $ castQInputDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+
+instance M188.QDialogPtr QInputDialog where
+  toQDialog (QInputDialog ptr') = M188.QDialog $ (HoppyF.castPtr :: HoppyF.Ptr M188.QDialogConst -> HoppyF.Ptr M188.QDialog) $ castQInputDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+  toQDialog (QInputDialogGc fptr' ptr') = M188.QDialogGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M188.QDialogConst -> HoppyF.Ptr M188.QDialog) $ castQInputDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+
+instance M280.QWidgetConstPtr QInputDialog where
+  toQWidgetConst (QInputDialog ptr') = M280.QWidgetConst $ castQInputDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+  toQWidgetConst (QInputDialogGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQInputDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+
+instance M280.QWidgetPtr QInputDialog where
+  toQWidget (QInputDialog ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQInputDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+  toQWidget (QInputDialogGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQInputDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+
+instance M30.QObjectConstPtr QInputDialog where
+  toQObjectConst (QInputDialog ptr') = M30.QObjectConst $ castQInputDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+  toQObjectConst (QInputDialogGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQInputDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+
+instance M30.QObjectPtr QInputDialog where
+  toQObject (QInputDialog ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQInputDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+  toQObject (QInputDialogGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQInputDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+
+new ::  HoppyP.IO QInputDialog
+new =
+  HoppyP.fmap QInputDialog
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QInputDialog
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QInputDialog
+  (newWithParent' arg'1')
+
+newWithParentAndFlags :: (M280.QWidgetPtr arg'1, M58.IsQtWindowFlags arg'2) => arg'1 -> arg'2 -> HoppyP.IO QInputDialog
+newWithParentAndFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtWindowFlags $ M58.toQtWindowFlags arg'2 in
+  HoppyP.fmap QInputDialog
+  (newWithParentAndFlags' arg'1' arg'2')
+
+class QInputDialogSuper a where
+  downToQInputDialog :: a -> QInputDialog
+
+instance QInputDialogSuper M188.QDialog where
+  downToQInputDialog = castQInputDialogToNonconst . cast' . M188.castQDialogToConst
+    where
+      cast' (M188.QDialogConst ptr') = QInputDialogConst $ castQDialogToQInputDialog ptr'
+      cast' (M188.QDialogConstGc fptr' ptr') = QInputDialogConstGc fptr' $ castQDialogToQInputDialog ptr'
+instance QInputDialogSuper M280.QWidget where
+  downToQInputDialog = castQInputDialogToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QInputDialogConst $ castQWidgetToQInputDialog ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QInputDialogConstGc fptr' $ castQWidgetToQInputDialog ptr'
+instance QInputDialogSuper M30.QObject where
+  downToQInputDialog = castQInputDialogToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QInputDialogConst $ castQObjectToQInputDialog ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QInputDialogConstGc fptr' $ castQObjectToQInputDialog ptr'
+
+class QInputDialogSuperConst a where
+  downToQInputDialogConst :: a -> QInputDialogConst
+
+instance QInputDialogSuperConst M188.QDialogConst where
+  downToQInputDialogConst = cast'
+    where
+      cast' (M188.QDialogConst ptr') = QInputDialogConst $ castQDialogToQInputDialog ptr'
+      cast' (M188.QDialogConstGc fptr' ptr') = QInputDialogConstGc fptr' $ castQDialogToQInputDialog ptr'
+instance QInputDialogSuperConst M280.QWidgetConst where
+  downToQInputDialogConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QInputDialogConst $ castQWidgetToQInputDialog ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QInputDialogConstGc fptr' $ castQWidgetToQInputDialog ptr'
+instance QInputDialogSuperConst M30.QObjectConst where
+  downToQInputDialogConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QInputDialogConst $ castQObjectToQInputDialog ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QInputDialogInputDialogOption where
+  fromEnum NoButtons = 1
+  fromEnum UseListViewForComboBoxItems = 2
+  fromEnum UsePlainTextEditForTextInput = 4
+  
+  toEnum (1) = NoButtons
+  toEnum (2) = UseListViewForComboBoxItems
+  toEnum (4) = UsePlainTextEditForTextInput
+  toEnum n' = HoppyP.error $ "Unknown QInputDialogInputDialogOption numeric value: " ++ HoppyP.show n'
+
+newtype QInputDialogInputDialogOptions = QInputDialogInputDialogOptions { fromQInputDialogInputDialogOptions :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQInputDialogInputDialogOptions a where
+  toQInputDialogInputDialogOptions :: a -> QInputDialogInputDialogOptions
+
+instance IsQInputDialogInputDialogOptions (HoppyFC.CInt) where
+  toQInputDialogInputDialogOptions = QInputDialogInputDialogOptions
+instance IsQInputDialogInputDialogOptions (HoppyP.Int) where
+  toQInputDialogInputDialogOptions = QInputDialogInputDialogOptions . HoppyFHR.coerceIntegral
+instance IsQInputDialogInputDialogOptions QInputDialogInputDialogOptions where
+  toQInputDialogInputDialogOptions = HoppyP.id
+
+instance IsQInputDialogInputDialogOptions QInputDialogInputDialogOption where
+  toQInputDialogInputDialogOptions = QInputDialogInputDialogOptions . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+noButtons = QInputDialogInputDialogOptions 1
+useListViewForComboBoxItems = QInputDialogInputDialogOptions 2
+usePlainTextEditForTextInput = QInputDialogInputDialogOptions 4
+
+data QInputDialogInputMode =
+  TextInput
+  | IntInput
+  | DoubleInput
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QInputDialogInputMode where
+  fromEnum TextInput = 0
+  fromEnum IntInput = 1
+  fromEnum DoubleInput = 2
+  
+  toEnum (0) = TextInput
+  toEnum (1) = IntInput
+  toEnum (2) = DoubleInput
+  toEnum n' = HoppyP.error $ "Unknown QInputDialogInputMode numeric value: " ++ HoppyP.show n'
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,451 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  hasScaledContents,
+  selectedText,
+  selectionStart,
+  text,
+  textFormat,
+  wordWrap,
+  QLabelPtr (..),
+  setAlignment,
+  setBuddy,
+  clear,
+  setIndent,
+  setMargin,
+  setOpenExternalLinks,
+  setScaledContents,
+  setInt,
+  setDouble,
+  setSelection,
+  setText,
+  setTextFormat,
+  setWordWrap,
+  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.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M198
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QLabel)
+foreign import ccall "genpop__QLabel_newWithText" newWithText' ::  HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr QLabel)
+foreign import ccall "genpop__QLabel_newWithTextAndParent" newWithTextAndParent' ::  HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M280.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 M280.QWidget)
+foreign import ccall "genpop__QLabel_setBuddy" setBuddy' ::  HoppyF.Ptr QLabel -> HoppyF.Ptr M280.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 HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QLabel_setOpenExternalLinks" setOpenExternalLinks' ::  HoppyF.Ptr QLabel -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_hasScaledContents" hasScaledContents' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QLabel_setScaledContents" setScaledContents' ::  HoppyF.Ptr QLabel -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_selectedText" selectedText' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO (HoppyF.Ptr M46.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_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 M46.QStringConst)
+foreign import ccall "genpop__QLabel_setText" setText' ::  HoppyF.Ptr QLabel -> HoppyF.Ptr M46.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_wordWrap" wordWrap' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QLabel_setWordWrap" setWordWrap' ::  HoppyF.Ptr QLabel -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QLabel__QFrame" castQLabelToQFrame :: HoppyF.Ptr QLabelConst -> HoppyF.Ptr M198.QFrameConst
+foreign import ccall "gencast__QFrame__QLabel" castQFrameToQLabel :: HoppyF.Ptr M198.QFrameConst -> HoppyF.Ptr QLabelConst
+foreign import ccall "gencast__QLabel__QWidget" castQLabelToQWidget :: HoppyF.Ptr QLabelConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QLabel" castQWidgetToQLabel :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QLabelConst
+foreign import ccall "gencast__QLabel__QObject" castQLabelToQObject :: HoppyF.Ptr QLabelConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QLabel" castQObjectToQLabel :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QLabelConstPtr a => QLabelValue a where
+#else
+instance QLabelConstPtr a => QLabelValue a where
+#endif
+  withQLabelPtr = HoppyP.flip ($) . toQLabelConst
+
+class (M198.QFrameConstPtr this) => QLabelConstPtr this where
+  toQLabelConst :: this -> QLabelConst
+
+alignment :: (QLabelValue arg'1) => arg'1 -> HoppyP.IO M58.QtAlignment
+alignment arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtAlignment
+  (alignment' arg'1')
+
+buddy :: (QLabelValue arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+buddy arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (buddy' arg'1')
+
+hasSelectedText :: (QLabelValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasSelectedText arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasSelectedText' arg'1')
+
+indent :: (QLabelValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+indent arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indent' arg'1')
+
+margin :: (QLabelValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+margin arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (margin' arg'1')
+
+openExternalLinks :: (QLabelValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+openExternalLinks arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (openExternalLinks' arg'1')
+
+hasScaledContents :: (QLabelValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasScaledContents arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasScaledContents' arg'1')
+
+selectedText :: (QLabelValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+selectedText arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (selectedText' arg'1')
+
+selectionStart :: (QLabelValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+selectionStart arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (selectionStart' arg'1')
+
+text :: (QLabelValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+text arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (text' arg'1')
+
+textFormat :: (QLabelValue arg'1) => arg'1 -> HoppyP.IO M58.QtTextFormat
+textFormat arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (textFormat' arg'1')
+
+wordWrap :: (QLabelValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+wordWrap arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (wordWrap' arg'1')
+
+class (QLabelConstPtr this, M198.QFramePtr this) => QLabelPtr this where
+  toQLabel :: this -> QLabel
+
+setAlignment :: (QLabelPtr arg'1, M58.IsQtAlignment arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtAlignment $ M58.toQtAlignment arg'2 in
+  (setAlignment' arg'1' arg'2')
+
+setBuddy :: (QLabelPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setBuddy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (setBuddy' arg'1' arg'2')
+
+clear :: (QLabelPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+setIndent :: (QLabelPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setIndent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setIndent' arg'1' arg'2')
+
+setMargin :: (QLabelPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setMargin arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setMargin' arg'1' arg'2')
+
+setOpenExternalLinks :: (QLabelPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setOpenExternalLinks arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setOpenExternalLinks' arg'1' arg'2')
+
+setScaledContents :: (QLabelPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setScaledContents arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setScaledContents' arg'1' arg'2')
+
+setInt :: (QLabelPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setInt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setInt' arg'1' arg'2')
+
+setDouble :: (QLabelPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setDouble arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setDouble' arg'1' arg'2')
+
+setSelection :: (QLabelPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setSelection arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setSelection' arg'1' arg'2' arg'3')
+
+setText :: (QLabelPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setText' arg'1' arg'2')
+
+setTextFormat :: (QLabelPtr arg'1) => arg'1 -> M58.QtTextFormat -> HoppyP.IO ()
+setTextFormat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setTextFormat' arg'1' arg'2')
+
+setWordWrap :: (QLabelPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setWordWrap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setWordWrap' 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 M198.QFrameConstPtr QLabelConst where
+  toQFrameConst (QLabelConst ptr') = M198.QFrameConst $ castQLabelToQFrame ptr'
+  toQFrameConst (QLabelConstGc fptr' ptr') = M198.QFrameConstGc fptr' $ castQLabelToQFrame ptr'
+
+instance M280.QWidgetConstPtr QLabelConst where
+  toQWidgetConst (QLabelConst ptr') = M280.QWidgetConst $ castQLabelToQWidget ptr'
+  toQWidgetConst (QLabelConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQLabelToQWidget ptr'
+
+instance M30.QObjectConstPtr QLabelConst where
+  toQObjectConst (QLabelConst ptr') = M30.QObjectConst $ castQLabelToQObject ptr'
+  toQObjectConst (QLabelConstGc fptr' ptr') = M30.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 M198.QFrameConstPtr QLabel where
+  toQFrameConst (QLabel ptr') = M198.QFrameConst $ castQLabelToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+  toQFrameConst (QLabelGc fptr' ptr') = M198.QFrameConstGc fptr' $ castQLabelToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+
+instance M198.QFramePtr QLabel where
+  toQFrame (QLabel ptr') = M198.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M198.QFrameConst -> HoppyF.Ptr M198.QFrame) $ castQLabelToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+  toQFrame (QLabelGc fptr' ptr') = M198.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M198.QFrameConst -> HoppyF.Ptr M198.QFrame) $ castQLabelToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+
+instance M280.QWidgetConstPtr QLabel where
+  toQWidgetConst (QLabel ptr') = M280.QWidgetConst $ castQLabelToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+  toQWidgetConst (QLabelGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQLabelToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+
+instance M280.QWidgetPtr QLabel where
+  toQWidget (QLabel ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQLabelToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+  toQWidget (QLabelGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQLabelToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+
+instance M30.QObjectConstPtr QLabel where
+  toQObjectConst (QLabel ptr') = M30.QObjectConst $ castQLabelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+  toQObjectConst (QLabelGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQLabelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+
+instance M30.QObjectPtr QLabel where
+  toQObject (QLabel ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQLabelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+  toQObject (QLabelGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQLabelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+
+new ::  HoppyP.IO QLabel
+new =
+  HoppyP.fmap QLabel
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QLabel
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QLabel
+  (newWithParent' arg'1')
+
+newWithText :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO QLabel
+newWithText arg'1 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QLabel
+  (newWithText' arg'1')
+
+newWithTextAndParent :: (M46.QStringValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QLabel
+newWithTextAndParent arg'1 arg'2 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QLabel
+  (newWithTextAndParent' arg'1' arg'2')
+
+class QLabelSuper a where
+  downToQLabel :: a -> QLabel
+
+instance QLabelSuper M198.QFrame where
+  downToQLabel = castQLabelToNonconst . cast' . M198.castQFrameToConst
+    where
+      cast' (M198.QFrameConst ptr') = QLabelConst $ castQFrameToQLabel ptr'
+      cast' (M198.QFrameConstGc fptr' ptr') = QLabelConstGc fptr' $ castQFrameToQLabel ptr'
+instance QLabelSuper M280.QWidget where
+  downToQLabel = castQLabelToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QLabelConst $ castQWidgetToQLabel ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QLabelConstGc fptr' $ castQWidgetToQLabel ptr'
+instance QLabelSuper M30.QObject where
+  downToQLabel = castQLabelToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QLabelConst $ castQObjectToQLabel ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QLabelConstGc fptr' $ castQObjectToQLabel ptr'
+
+class QLabelSuperConst a where
+  downToQLabelConst :: a -> QLabelConst
+
+instance QLabelSuperConst M198.QFrameConst where
+  downToQLabelConst = cast'
+    where
+      cast' (M198.QFrameConst ptr') = QLabelConst $ castQFrameToQLabel ptr'
+      cast' (M198.QFrameConstGc fptr' ptr') = QLabelConstGc fptr' $ castQFrameToQLabel ptr'
+instance QLabelSuperConst M280.QWidgetConst where
+  downToQLabelConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QLabelConst $ castQWidgetToQLabel ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QLabelConstGc fptr' $ castQWidgetToQLabel ptr'
+instance QLabelSuperConst M30.QObjectConst where
+  downToQLabelConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QLabelConst $ castQObjectToQLabel ptr'
+      cast' (M30.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,449 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Generated.Core.QMargins as M24
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M42
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M230
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Prelude (($), (++), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QLayout_activate" activate' ::  HoppyF.Ptr QLayout -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QLayout_addItem" addItem' ::  HoppyF.Ptr QLayout -> HoppyF.Ptr M230.QLayoutItem -> HoppyP.IO ()
+foreign import ccall "genpop__QLayout_addWidget" addWidget' ::  HoppyF.Ptr QLayout -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QLayout_closestAcceptableSize" closestAcceptableSize' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M42.QSizeConst -> HoppyP.IO (HoppyF.Ptr M42.QSizeConst)
+foreign import ccall "genpop__QLayout_contentsMargins" contentsMargins' ::  HoppyF.Ptr QLayoutConst -> HoppyP.IO (HoppyF.Ptr M24.QMarginsConst)
+foreign import ccall "genpop__QLayout_contentsRect" contentsRect' ::  HoppyF.Ptr QLayoutConst -> HoppyP.IO (HoppyF.Ptr M38.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 HoppyFHR.CBool
+foreign import ccall "genpop__QLayout_setEnabled" setEnabled' ::  HoppyF.Ptr QLayout -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLayout_indexOf" indexOf' ::  HoppyF.Ptr QLayoutConst -> HoppyF.Ptr M280.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLayout_itemAt" itemAt' ::  HoppyF.Ptr QLayoutConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M230.QLayoutItem)
+foreign import ccall "genpop__QLayout_menuBar" menuBar' ::  HoppyF.Ptr QLayoutConst -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "genpop__QLayout_setMenuBar" setMenuBar' ::  HoppyF.Ptr QLayout -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QLayout_parentWidget" parentWidget' ::  HoppyF.Ptr QLayoutConst -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "genpop__QLayout_removeItem" removeItem' ::  HoppyF.Ptr QLayout -> HoppyF.Ptr M230.QLayoutItem -> HoppyP.IO ()
+foreign import ccall "genpop__QLayout_removeWidget" removeWidget' ::  HoppyF.Ptr QLayout -> HoppyF.Ptr M280.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 HoppyFHR.CBool
+foreign import ccall "genpop__QLayout_setWidgetAlignment" setWidgetAlignment' ::  HoppyF.Ptr QLayout -> HoppyF.Ptr M280.QWidget -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QLayout_setContentsMargins" setContentsMargins' ::  HoppyF.Ptr QLayout -> HoppyF.Ptr M24.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 M230.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 M30.QObjectConst
+foreign import ccall "gencast__QObject__QLayout" castQObjectToQLayout :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr QLayoutConst
+foreign import ccall "gencast__QLayout__QLayoutItem" castQLayoutToQLayoutItem :: HoppyF.Ptr QLayoutConst -> HoppyF.Ptr M230.QLayoutItemConst
+foreign import ccall "gencast__QLayoutItem__QLayout" castQLayoutItemToQLayout :: HoppyF.Ptr M230.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QLayoutConstPtr a => QLayoutValue a where
+#else
+instance QLayoutConstPtr a => QLayoutValue a where
+#endif
+  withQLayoutPtr = HoppyP.flip ($) . toQLayoutConst
+
+class (M30.QObjectConstPtr this, M230.QLayoutItemConstPtr this) => QLayoutConstPtr this where
+  toQLayoutConst :: this -> QLayoutConst
+
+contentsMargins :: (QLayoutValue arg'1) => arg'1 -> HoppyP.IO HMargins.HMargins
+contentsMargins arg'1 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M24.QMarginsConst) =<<
+  (contentsMargins' arg'1')
+
+contentsRect :: (QLayoutValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+contentsRect arg'1 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (contentsRect' arg'1')
+
+count :: (QLayoutValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+count arg'1 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1')
+
+isEnabled :: (QLayoutValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEnabled arg'1 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEnabled' arg'1')
+
+indexOf :: (QLayoutValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+indexOf arg'1 arg'2 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOf' arg'1' arg'2')
+
+itemAt :: (QLayoutValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M230.QLayoutItem
+itemAt arg'1 arg'2 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M230.QLayoutItem
+  (itemAt' arg'1' arg'2')
+
+menuBar :: (QLayoutValue arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+menuBar arg'1 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (menuBar' arg'1')
+
+parentWidget :: (QLayoutValue arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+parentWidget arg'1 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (parentWidget' arg'1')
+
+sizeConstraint :: (QLayoutValue arg'1) => arg'1 -> HoppyP.IO QLayoutSizeConstraint
+sizeConstraint arg'1 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (sizeConstraint' arg'1')
+
+spacing :: (QLayoutValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+spacing arg'1 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (spacing' arg'1')
+
+class (QLayoutConstPtr this, M30.QObjectPtr this, M230.QLayoutItemPtr this) => QLayoutPtr this where
+  toQLayout :: this -> QLayout
+
+activate :: (QLayoutPtr arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+activate arg'1 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (activate' arg'1')
+
+addItem :: (QLayoutPtr arg'1, M230.QLayoutItemPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+addItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M230.toQLayoutItem arg'2) $ \arg'2' ->
+  (addItem' arg'1' arg'2')
+
+addWidget :: (QLayoutPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+addWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (addWidget' arg'1' arg'2')
+
+setEnabled :: (QLayoutPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setEnabled' arg'1' arg'2')
+
+setMenuBar :: (QLayoutPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setMenuBar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (setMenuBar' arg'1' arg'2')
+
+removeItem :: (QLayoutPtr arg'1, M230.QLayoutItemPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+removeItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M230.toQLayoutItem arg'2) $ \arg'2' ->
+  (removeItem' arg'1' arg'2')
+
+removeWidget :: (QLayoutPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+removeWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (removeWidget' arg'1' arg'2')
+
+setAlignment :: (QLayoutPtr arg'1, M58.IsQtAlignment arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtAlignment $ M58.toQtAlignment arg'2 in
+  (setAlignment' arg'1' arg'2')
+
+setLayoutAlignment :: (QLayoutPtr arg'1, QLayoutPtr arg'2, M58.IsQtAlignment arg'3) => arg'1 -> 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' ->
+  let arg'3' = M58.fromQtAlignment $ M58.toQtAlignment arg'3 in
+  HoppyP.fmap (/= 0)
+  (setLayoutAlignment' arg'1' arg'2' arg'3')
+
+setWidgetAlignment :: (QLayoutPtr arg'1, M280.QWidgetPtr arg'2, M58.IsQtAlignment arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+setWidgetAlignment arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  let arg'3' = M58.fromQtAlignment $ M58.toQtAlignment arg'3 in
+  HoppyP.fmap (/= 0)
+  (setWidgetAlignment' arg'1' arg'2' arg'3')
+
+setContentsMargins :: (QLayoutPtr arg'1, M24.QMarginsValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setContentsMargins arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  M24.withQMarginsPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setContentsMargins' arg'1' arg'2')
+
+setContentsMarginsRaw :: (QLayoutPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (setContentsMarginsRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setSizeConstraint :: (QLayoutPtr arg'1) => arg'1 -> QLayoutSizeConstraint -> HoppyP.IO ()
+setSizeConstraint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setSizeConstraint' arg'1' arg'2')
+
+setSpacing :: (QLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setSpacing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setSpacing' arg'1' arg'2')
+
+takeAt :: (QLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M230.QLayoutItem
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M230.QLayoutItem
+  (takeAt' arg'1' arg'2')
+
+update :: (QLayoutPtr arg'1) => arg'1 -> HoppyP.IO ()
+update arg'1 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  (update' arg'1')
+
+closestAcceptableSize :: (M280.QWidgetPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HSize.HSize
+closestAcceptableSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M42.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 M30.QObjectConstPtr QLayoutConst where
+  toQObjectConst (QLayoutConst ptr') = M30.QObjectConst $ castQLayoutToQObject ptr'
+  toQObjectConst (QLayoutConstGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQLayoutToQObject ptr'
+
+instance M230.QLayoutItemConstPtr QLayoutConst where
+  toQLayoutItemConst (QLayoutConst ptr') = M230.QLayoutItemConst $ castQLayoutToQLayoutItem ptr'
+  toQLayoutItemConst (QLayoutConstGc fptr' ptr') = M230.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 M30.QObjectConstPtr QLayout where
+  toQObjectConst (QLayout ptr') = M30.QObjectConst $ castQLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+  toQObjectConst (QLayoutGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+
+instance M30.QObjectPtr QLayout where
+  toQObject (QLayout ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+  toQObject (QLayoutGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+
+instance M230.QLayoutItemConstPtr QLayout where
+  toQLayoutItemConst (QLayout ptr') = M230.QLayoutItemConst $ castQLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+  toQLayoutItemConst (QLayoutGc fptr' ptr') = M230.QLayoutItemConstGc fptr' $ castQLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+
+instance M230.QLayoutItemPtr QLayout where
+  toQLayoutItem (QLayout ptr') = M230.QLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+  toQLayoutItem (QLayoutGc fptr' ptr') = M230.QLayoutItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+
+class QLayoutSuper a where
+  downToQLayout :: a -> QLayout
+
+instance QLayoutSuper M30.QObject where
+  downToQLayout = castQLayoutToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QLayoutConst $ castQObjectToQLayout ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QLayoutConstGc fptr' $ castQObjectToQLayout ptr'
+instance QLayoutSuper M230.QLayoutItem where
+  downToQLayout = castQLayoutToNonconst . cast' . M230.castQLayoutItemToConst
+    where
+      cast' (M230.QLayoutItemConst ptr') = QLayoutConst $ castQLayoutItemToQLayout ptr'
+      cast' (M230.QLayoutItemConstGc fptr' ptr') = QLayoutConstGc fptr' $ castQLayoutItemToQLayout ptr'
+
+class QLayoutSuperConst a where
+  downToQLayoutConst :: a -> QLayoutConst
+
+instance QLayoutSuperConst M30.QObjectConst where
+  downToQLayoutConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QLayoutConst $ castQObjectToQLayout ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QLayoutConstGc fptr' $ castQObjectToQLayout ptr'
+instance QLayoutSuperConst M230.QLayoutItemConst where
+  downToQLayoutConst = cast'
+    where
+      cast' (M230.QLayoutItemConst ptr') = QLayoutConst $ castQLayoutItemToQLayout ptr'
+      cast' (M230.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 =
+  SetDefaultSizeConstraint
+  | SetNoConstraint
+  | SetMinimumSize
+  | SetFixedSize
+  | SetMaximumSize
+  | SetMinAndMaxSize
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QLayoutSizeConstraint where
+  fromEnum SetDefaultSizeConstraint = 0
+  fromEnum SetNoConstraint = 1
+  fromEnum SetMinimumSize = 2
+  fromEnum SetFixedSize = 3
+  fromEnum SetMaximumSize = 4
+  fromEnum SetMinAndMaxSize = 5
+  
+  toEnum (0) = SetDefaultSizeConstraint
+  toEnum (1) = SetNoConstraint
+  toEnum (2) = SetMinimumSize
+  toEnum (3) = SetFixedSize
+  toEnum (4) = SetMaximumSize
+  toEnum (5) = SetMinAndMaxSize
+  toEnum n' = HoppyP.error $ "Unknown QLayoutSizeConstraint numeric value: " ++ HoppyP.show n'
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,88 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M230
+import qualified Prelude as HoppyP
+
+
+class QLayoutValue a where
+  withQLayoutPtr :: a -> (QLayoutConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QLayoutConstPtr a => QLayoutValue a
+#else
+instance QLayoutConstPtr a => QLayoutValue a
+#endif
+
+class (M30.QObjectConstPtr this, M230.QLayoutItemConstPtr this) => QLayoutConstPtr this where
+  toQLayoutConst :: this -> QLayoutConst
+
+class (QLayoutConstPtr this, M30.QObjectPtr this, M230.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 M30.QObjectConstPtr QLayoutConst
+
+instance M230.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 M30.QObjectConstPtr QLayout
+
+instance M30.QObjectPtr QLayout
+
+instance M230.QLayoutItemConstPtr QLayout
+
+instance M230.QLayoutItemPtr QLayout
+castQLayoutToQObject :: HoppyF.Ptr QLayoutConst -> HoppyF.Ptr M30.QObjectConst
+castQLayoutToQLayoutItem :: HoppyF.Ptr QLayoutConst -> HoppyF.Ptr M230.QLayoutItemConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QLayout)) QLayout
+
+data QLayoutSizeConstraint
+instance HoppyP.Bounded QLayoutSizeConstraint
+instance HoppyP.Enum 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,263 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  widget,
+  QLayoutItemPtr (..),
+  setAlignment,
+  setGeometry,
+  invalidate,
+  layout,
+  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.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M42
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QLayout as M228
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Prelude (($), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+
+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 M38.QRectConst)
+foreign import ccall "genpop__QLayoutItem_setGeometry" setGeometry' ::  HoppyF.Ptr QLayoutItem -> HoppyF.Ptr M38.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLayoutItem_hasHeightForWidth" hasHeightForWidth' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QLayoutItem_layout" layout' ::  HoppyF.Ptr QLayoutItem -> HoppyP.IO (HoppyF.Ptr M228.QLayout)
+foreign import ccall "genpop__QLayoutItem_maximumSize" maximumSize' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO (HoppyF.Ptr M42.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 M42.QSizeConst)
+foreign import ccall "genpop__QLayoutItem_sizeHint" sizeHint' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO (HoppyF.Ptr M42.QSizeConst)
+foreign import ccall "genpop__QLayoutItem_widget" widget' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO (HoppyF.Ptr M280.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QLayoutItemConstPtr a => QLayoutItemValue a where
+#else
+instance QLayoutItemConstPtr a => QLayoutItemValue a where
+#endif
+  withQLayoutItemPtr = HoppyP.flip ($) . toQLayoutItemConst
+
+class (HoppyFHR.CppPtr this) => QLayoutItemConstPtr this where
+  toQLayoutItemConst :: this -> QLayoutItemConst
+
+alignment :: (QLayoutItemValue arg'1) => arg'1 -> HoppyP.IO M58.QtAlignment
+alignment arg'1 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtAlignment
+  (alignment' arg'1')
+
+expandingDirections :: (QLayoutItemValue arg'1) => arg'1 -> HoppyP.IO M58.QtOrientations
+expandingDirections arg'1 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtOrientations
+  (expandingDirections' arg'1')
+
+geometry :: (QLayoutItemValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+geometry arg'1 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (geometry' arg'1')
+
+hasHeightForWidth :: (QLayoutItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasHeightForWidth arg'1 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasHeightForWidth' arg'1')
+
+heightForWidth :: (QLayoutItemValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+heightForWidth arg'1 arg'2 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (heightForWidth' arg'1' arg'2')
+
+isEmpty :: (QLayoutItemValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+maximumSize :: (QLayoutItemValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+maximumSize arg'1 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (maximumSize' arg'1')
+
+minimumHeightForWidth :: (QLayoutItemValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+minimumHeightForWidth arg'1 arg'2 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (minimumHeightForWidth' arg'1' arg'2')
+
+minimumSize :: (QLayoutItemValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+minimumSize arg'1 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (minimumSize' arg'1')
+
+sizeHint :: (QLayoutItemValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+sizeHint arg'1 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (sizeHint' arg'1')
+
+widget :: (QLayoutItemValue arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+widget arg'1 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (widget' arg'1')
+
+class (QLayoutItemConstPtr this) => QLayoutItemPtr this where
+  toQLayoutItem :: this -> QLayoutItem
+
+setAlignment :: (QLayoutItemPtr arg'1, M58.IsQtAlignment arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayoutItem arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtAlignment $ M58.toQtAlignment arg'2 in
+  (setAlignment' arg'1' arg'2')
+
+setGeometry :: (QLayoutItemPtr arg'1, M38.QRectValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setGeometry arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayoutItem arg'1) $ \arg'1' ->
+  M38.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setGeometry' arg'1' arg'2')
+
+invalidate :: (QLayoutItemPtr arg'1) => arg'1 -> HoppyP.IO ()
+invalidate arg'1 =
+  HoppyFHR.withCppPtr (toQLayoutItem arg'1) $ \arg'1' ->
+  (invalidate' arg'1')
+
+layout :: (QLayoutItemPtr arg'1) => arg'1 -> HoppyP.IO M228.QLayout
+layout arg'1 =
+  HoppyFHR.withCppPtr (toQLayoutItem arg'1) $ \arg'1' ->
+  HoppyP.fmap M228.QLayout
+  (layout' 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,62 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QLayoutItemConstPtr a => QLayoutItemValue a
+#else
+instance QLayoutItemConstPtr a => QLayoutItemValue a
+#endif
+
+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,694 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QLineEdit (
+  castQLineEditToQWidget,
+  castQWidgetToQLineEdit,
+  castQLineEditToQObject,
+  castQObjectToQLineEdit,
+  QLineEditValue (..),
+  QLineEditConstPtr (..),
+  alignment,
+  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,
+  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,
+  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.Generated.Core.QMargins as M24
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QValidator as M146
+import qualified Graphics.UI.Qtah.Generated.Widgets.QMenu as M238
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QLineEdit)
+foreign import ccall "genpop__QLineEdit_newWithText" newWithText' ::  HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr QLineEdit)
+foreign import ccall "genpop__QLineEdit_newWithTextAndParent" newWithTextAndParent' ::  HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M280.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_copy" copy' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_createStandardContextMenu" createStandardContextMenu' ::  HoppyF.Ptr QLineEdit -> HoppyP.IO (HoppyF.Ptr M238.QMenu)
+foreign import ccall "genpop__QLineEdit_cursorBackward" cursorBackward' ::  HoppyF.Ptr QLineEdit -> HoppyFHR.CBool -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_cursorForward" cursorForward' ::  HoppyF.Ptr QLineEdit -> HoppyFHR.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 M34.QPointConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLineEdit_cursorWordBackward" cursorWordBackward' ::  HoppyF.Ptr QLineEdit -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_cursorWordForward" cursorWordForward' ::  HoppyF.Ptr QLineEdit -> HoppyFHR.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 M46.QStringConst)
+foreign import ccall "genpop__QLineEdit_dragEnabled" dragEnabled' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QLineEdit_setDragEnabled" setDragEnabled' ::  HoppyF.Ptr QLineEdit -> HoppyFHR.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 -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_hasFrame" hasFrame' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QLineEdit_setFrame" setFrame' ::  HoppyF.Ptr QLineEdit -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_hasAcceptableInput" hasAcceptableInput' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QLineEdit_hasSelectedText" hasSelectedText' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QLineEdit_home" home' ::  HoppyF.Ptr QLineEdit -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_inputMask" inputMask' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QLineEdit_setInputMask" setInputMask' ::  HoppyF.Ptr QLineEdit -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_insert" insert' ::  HoppyF.Ptr QLineEdit -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_isRedoAvailable" isRedoAvailable' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QLineEdit_isUndoAvailable" isUndoAvailable' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QLineEdit_setModified" setModified' ::  HoppyF.Ptr QLineEdit -> HoppyFHR.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 M46.QStringConst)
+foreign import ccall "genpop__QLineEdit_setPlaceholderText" setPlaceholderText' ::  HoppyF.Ptr QLineEdit -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_isReadOnly" isReadOnly' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QLineEdit_setReadOnly" setReadOnly' ::  HoppyF.Ptr QLineEdit -> HoppyFHR.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 M46.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 M24.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 M46.QStringConst)
+foreign import ccall "genpop__QLineEdit_setText" setText' ::  HoppyF.Ptr QLineEdit -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_textMargins" textMargins' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO (HoppyF.Ptr M24.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 M146.QValidatorConst)
+foreign import ccall "genpop__QLineEdit_setValidator" setValidator' ::  HoppyF.Ptr QLineEdit -> HoppyF.Ptr M146.QValidatorConst -> HoppyP.IO ()
+foreign import ccall "gencast__QLineEdit__QWidget" castQLineEditToQWidget :: HoppyF.Ptr QLineEditConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QLineEdit" castQWidgetToQLineEdit :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QLineEditConst
+foreign import ccall "gencast__QLineEdit__QObject" castQLineEditToQObject :: HoppyF.Ptr QLineEditConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QLineEdit" castQObjectToQLineEdit :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QLineEditConstPtr a => QLineEditValue a where
+#else
+instance QLineEditConstPtr a => QLineEditValue a where
+#endif
+  withQLineEditPtr = HoppyP.flip ($) . toQLineEditConst
+
+class (M280.QWidgetConstPtr this) => QLineEditConstPtr this where
+  toQLineEditConst :: this -> QLineEditConst
+
+alignment :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO M58.QtAlignment
+alignment arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtAlignment
+  (alignment' arg'1')
+
+copy :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO ()
+copy arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (copy' arg'1')
+
+cursorMoveStyle :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO M58.QtCursorMoveStyle
+cursorMoveStyle arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (cursorMoveStyle' arg'1')
+
+cursorPosition :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+cursorPosition arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (cursorPosition' arg'1')
+
+displayText :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+displayText arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (displayText' arg'1')
+
+dragEnabled :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+dragEnabled arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (dragEnabled' arg'1')
+
+echoMode :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO QLineEditEchoMode
+echoMode arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (echoMode' arg'1')
+
+hasFrame :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasFrame arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasFrame' arg'1')
+
+hasAcceptableInput :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasAcceptableInput arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasAcceptableInput' arg'1')
+
+hasSelectedText :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasSelectedText arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasSelectedText' arg'1')
+
+inputMask :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+inputMask arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (inputMask' arg'1')
+
+isRedoAvailable :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isRedoAvailable arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isRedoAvailable' arg'1')
+
+isUndoAvailable :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isUndoAvailable arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isUndoAvailable' arg'1')
+
+maxLength :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+maxLength arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (maxLength' arg'1')
+
+isModified :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isModified arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isModified' arg'1')
+
+placeholderText :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+placeholderText arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (placeholderText' arg'1')
+
+isReadOnly :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isReadOnly arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isReadOnly' arg'1')
+
+selectedText :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+selectedText arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (selectedText' arg'1')
+
+selectionStart :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+selectionStart arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (selectionStart' arg'1')
+
+text :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+text arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (text' arg'1')
+
+textMargins :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO HMargins.HMargins
+textMargins arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M24.QMarginsConst) =<<
+  (textMargins' arg'1')
+
+validator :: (QLineEditValue arg'1) => arg'1 -> HoppyP.IO M146.QValidatorConst
+validator arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M146.QValidatorConst
+  (validator' arg'1')
+
+class (QLineEditConstPtr this, M280.QWidgetPtr this) => QLineEditPtr this where
+  toQLineEdit :: this -> QLineEdit
+
+setAlignment :: (QLineEditPtr arg'1, M58.IsQtAlignment arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtAlignment $ M58.toQtAlignment arg'2 in
+  (setAlignment' arg'1' arg'2')
+
+backspace :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+backspace arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (backspace' arg'1')
+
+clear :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+createStandardContextMenu :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.IO M238.QMenu
+createStandardContextMenu arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  HoppyP.fmap M238.QMenu
+  (createStandardContextMenu' arg'1')
+
+cursorBackward :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.Int -> HoppyP.IO ()
+cursorBackward arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (cursorBackward' arg'1' arg'2' arg'3')
+
+cursorForward :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.Int -> HoppyP.IO ()
+cursorForward arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (cursorForward' arg'1' arg'2' arg'3')
+
+setCursorMoveStyle :: (QLineEditPtr arg'1) => arg'1 -> M58.QtCursorMoveStyle -> HoppyP.IO ()
+setCursorMoveStyle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setCursorMoveStyle' arg'1' arg'2')
+
+setCursorPosition :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setCursorPosition arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setCursorPosition' arg'1' arg'2')
+
+cursorPositionAt :: (QLineEditPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+cursorPositionAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (cursorPositionAt' arg'1' arg'2')
+
+cursorWordBackward :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+cursorWordBackward arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (cursorWordBackward' arg'1' arg'2')
+
+cursorWordForward :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+cursorWordForward arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (cursorWordForward' arg'1' arg'2')
+
+cut :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+cut arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (cut' arg'1')
+
+del :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+del arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (del' arg'1')
+
+deselect :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+deselect arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (deselect' arg'1')
+
+setDragEnabled :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setDragEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setDragEnabled' arg'1' arg'2')
+
+setEchoMode :: (QLineEditPtr arg'1) => arg'1 -> QLineEditEchoMode -> HoppyP.IO ()
+setEchoMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setEchoMode' arg'1' arg'2')
+
+end :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+end arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (end' arg'1' arg'2')
+
+setFrame :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setFrame arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setFrame' arg'1' arg'2')
+
+home :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+home arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (home' arg'1' arg'2')
+
+setInputMask :: (QLineEditPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setInputMask arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setInputMask' arg'1' arg'2')
+
+insert :: (QLineEditPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+insert arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (insert' arg'1' arg'2')
+
+setMaxLength :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setMaxLength arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setMaxLength' arg'1' arg'2')
+
+setModified :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setModified arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setModified' arg'1' arg'2')
+
+paste :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+paste arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (paste' arg'1')
+
+setPlaceholderText :: (QLineEditPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setPlaceholderText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPlaceholderText' arg'1' arg'2')
+
+setReadOnly :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setReadOnly arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setReadOnly' arg'1' arg'2')
+
+redo :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+redo arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (redo' arg'1')
+
+selectAll :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+selectAll arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (selectAll' arg'1')
+
+setSelection :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setSelection arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setSelection' arg'1' arg'2' arg'3')
+
+setTextMargins :: (QLineEditPtr arg'1, M24.QMarginsValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setTextMargins arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  M24.withQMarginsPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTextMargins' arg'1' arg'2')
+
+setTextMarginsRaw :: (QLineEditPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (setTextMarginsRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setText :: (QLineEditPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setText' arg'1' arg'2')
+
+undo :: (QLineEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+undo arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (undo' arg'1')
+
+setValidator :: (QLineEditPtr arg'1, M146.QValidatorValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setValidator arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  M146.withQValidatorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setValidator' 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 M280.QWidgetConstPtr QLineEditConst where
+  toQWidgetConst (QLineEditConst ptr') = M280.QWidgetConst $ castQLineEditToQWidget ptr'
+  toQWidgetConst (QLineEditConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQLineEditToQWidget ptr'
+
+instance M30.QObjectConstPtr QLineEditConst where
+  toQObjectConst (QLineEditConst ptr') = M30.QObjectConst $ castQLineEditToQObject ptr'
+  toQObjectConst (QLineEditConstGc fptr' ptr') = M30.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 M280.QWidgetConstPtr QLineEdit where
+  toQWidgetConst (QLineEdit ptr') = M280.QWidgetConst $ castQLineEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+  toQWidgetConst (QLineEditGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQLineEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+
+instance M280.QWidgetPtr QLineEdit where
+  toQWidget (QLineEdit ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQLineEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+  toQWidget (QLineEditGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQLineEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+
+instance M30.QObjectConstPtr QLineEdit where
+  toQObjectConst (QLineEdit ptr') = M30.QObjectConst $ castQLineEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+  toQObjectConst (QLineEditGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQLineEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+
+instance M30.QObjectPtr QLineEdit where
+  toQObject (QLineEdit ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQLineEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+  toQObject (QLineEditGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQLineEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+
+new ::  HoppyP.IO QLineEdit
+new =
+  HoppyP.fmap QLineEdit
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QLineEdit
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QLineEdit
+  (newWithParent' arg'1')
+
+newWithText :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO QLineEdit
+newWithText arg'1 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QLineEdit
+  (newWithText' arg'1')
+
+newWithTextAndParent :: (M46.QStringValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QLineEdit
+newWithTextAndParent arg'1 arg'2 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QLineEdit
+  (newWithTextAndParent' arg'1' arg'2')
+
+class QLineEditSuper a where
+  downToQLineEdit :: a -> QLineEdit
+
+instance QLineEditSuper M280.QWidget where
+  downToQLineEdit = castQLineEditToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QLineEditConst $ castQWidgetToQLineEdit ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QLineEditConstGc fptr' $ castQWidgetToQLineEdit ptr'
+instance QLineEditSuper M30.QObject where
+  downToQLineEdit = castQLineEditToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QLineEditConst $ castQObjectToQLineEdit ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QLineEditConstGc fptr' $ castQObjectToQLineEdit ptr'
+
+class QLineEditSuperConst a where
+  downToQLineEditConst :: a -> QLineEditConst
+
+instance QLineEditSuperConst M280.QWidgetConst where
+  downToQLineEditConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QLineEditConst $ castQWidgetToQLineEdit ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QLineEditConstGc fptr' $ castQWidgetToQLineEdit ptr'
+instance QLineEditSuperConst M30.QObjectConst where
+  downToQLineEditConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QLineEditConst $ castQObjectToQLineEdit ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QLineEditEchoMode where
+  fromEnum Normal = 0
+  fromEnum NoEcho = 1
+  fromEnum Password = 2
+  fromEnum PasswordEchoOnEdit = 3
+  
+  toEnum (0) = Normal
+  toEnum (1) = NoEcho
+  toEnum (2) = Password
+  toEnum (3) = PasswordEchoOnEdit
+  toEnum n' = HoppyP.error $ "Unknown QLineEditEchoMode numeric value: " ++ HoppyP.show n'
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QListView.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QListView.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QListView.hs
@@ -0,0 +1,249 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QListView (
+  castQListViewToQAbstractItemView,
+  castQAbstractItemViewToQListView,
+  castQListViewToQAbstractScrollArea,
+  castQAbstractScrollAreaToQListView,
+  castQListViewToQWidget,
+  castQWidgetToQListView,
+  castQListViewToQObject,
+  castQObjectToQListView,
+  QListViewValue (..),
+  QListViewConstPtr (..),
+  QListViewPtr (..),
+  QListViewConst (..),
+  castQListViewToConst,
+  QListView (..),
+  castQListViewToNonconst,
+  new,
+  QListViewSuper (..),
+  QListViewSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractItemView as M166
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea as M168
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QListView_new" new' ::  HoppyP.IO (HoppyF.Ptr QListView)
+foreign import ccall "gencast__QListView__QAbstractItemView" castQListViewToQAbstractItemView :: HoppyF.Ptr QListViewConst -> HoppyF.Ptr M166.QAbstractItemViewConst
+foreign import ccall "gencast__QAbstractItemView__QListView" castQAbstractItemViewToQListView :: HoppyF.Ptr M166.QAbstractItemViewConst -> HoppyF.Ptr QListViewConst
+foreign import ccall "gencast__QListView__QAbstractScrollArea" castQListViewToQAbstractScrollArea :: HoppyF.Ptr QListViewConst -> HoppyF.Ptr M168.QAbstractScrollAreaConst
+foreign import ccall "gencast__QAbstractScrollArea__QListView" castQAbstractScrollAreaToQListView :: HoppyF.Ptr M168.QAbstractScrollAreaConst -> HoppyF.Ptr QListViewConst
+foreign import ccall "gencast__QListView__QWidget" castQListViewToQWidget :: HoppyF.Ptr QListViewConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QListView" castQWidgetToQListView :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QListViewConst
+foreign import ccall "gencast__QListView__QObject" castQListViewToQObject :: HoppyF.Ptr QListViewConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QListView" castQObjectToQListView :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QListViewConstPtr a => QListViewValue a where
+#else
+instance QListViewConstPtr a => QListViewValue a where
+#endif
+  withQListViewPtr = HoppyP.flip ($) . toQListViewConst
+
+class (M166.QAbstractItemViewConstPtr this) => QListViewConstPtr this where
+  toQListViewConst :: this -> QListViewConst
+
+class (QListViewConstPtr this, M166.QAbstractItemViewPtr this) => QListViewPtr this where
+  toQListView :: this -> QListView
+
+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 M166.QAbstractItemViewConstPtr QListViewConst where
+  toQAbstractItemViewConst (QListViewConst ptr') = M166.QAbstractItemViewConst $ castQListViewToQAbstractItemView ptr'
+  toQAbstractItemViewConst (QListViewConstGc fptr' ptr') = M166.QAbstractItemViewConstGc fptr' $ castQListViewToQAbstractItemView ptr'
+
+instance M168.QAbstractScrollAreaConstPtr QListViewConst where
+  toQAbstractScrollAreaConst (QListViewConst ptr') = M168.QAbstractScrollAreaConst $ castQListViewToQAbstractScrollArea ptr'
+  toQAbstractScrollAreaConst (QListViewConstGc fptr' ptr') = M168.QAbstractScrollAreaConstGc fptr' $ castQListViewToQAbstractScrollArea ptr'
+
+instance M280.QWidgetConstPtr QListViewConst where
+  toQWidgetConst (QListViewConst ptr') = M280.QWidgetConst $ castQListViewToQWidget ptr'
+  toQWidgetConst (QListViewConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQListViewToQWidget ptr'
+
+instance M30.QObjectConstPtr QListViewConst where
+  toQObjectConst (QListViewConst ptr') = M30.QObjectConst $ castQListViewToQObject ptr'
+  toQObjectConst (QListViewConstGc fptr' ptr') = M30.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 M166.QAbstractItemViewConstPtr QListView where
+  toQAbstractItemViewConst (QListView ptr') = M166.QAbstractItemViewConst $ castQListViewToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQAbstractItemViewConst (QListViewGc fptr' ptr') = M166.QAbstractItemViewConstGc fptr' $ castQListViewToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+instance M166.QAbstractItemViewPtr QListView where
+  toQAbstractItemView (QListView ptr') = M166.QAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr M166.QAbstractItemViewConst -> HoppyF.Ptr M166.QAbstractItemView) $ castQListViewToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQAbstractItemView (QListViewGc fptr' ptr') = M166.QAbstractItemViewGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M166.QAbstractItemViewConst -> HoppyF.Ptr M166.QAbstractItemView) $ castQListViewToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+instance M168.QAbstractScrollAreaConstPtr QListView where
+  toQAbstractScrollAreaConst (QListView ptr') = M168.QAbstractScrollAreaConst $ castQListViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQAbstractScrollAreaConst (QListViewGc fptr' ptr') = M168.QAbstractScrollAreaConstGc fptr' $ castQListViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+instance M168.QAbstractScrollAreaPtr QListView where
+  toQAbstractScrollArea (QListView ptr') = M168.QAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr M168.QAbstractScrollAreaConst -> HoppyF.Ptr M168.QAbstractScrollArea) $ castQListViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQAbstractScrollArea (QListViewGc fptr' ptr') = M168.QAbstractScrollAreaGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M168.QAbstractScrollAreaConst -> HoppyF.Ptr M168.QAbstractScrollArea) $ castQListViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+instance M280.QWidgetConstPtr QListView where
+  toQWidgetConst (QListView ptr') = M280.QWidgetConst $ castQListViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQWidgetConst (QListViewGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQListViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+instance M280.QWidgetPtr QListView where
+  toQWidget (QListView ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQListViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQWidget (QListViewGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQListViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+instance M30.QObjectConstPtr QListView where
+  toQObjectConst (QListView ptr') = M30.QObjectConst $ castQListViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQObjectConst (QListViewGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQListViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+instance M30.QObjectPtr QListView where
+  toQObject (QListView ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQListViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQObject (QListViewGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQListViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+new ::  HoppyP.IO QListView
+new =
+  HoppyP.fmap QListView
+  (new')
+
+class QListViewSuper a where
+  downToQListView :: a -> QListView
+
+instance QListViewSuper M166.QAbstractItemView where
+  downToQListView = castQListViewToNonconst . cast' . M166.castQAbstractItemViewToConst
+    where
+      cast' (M166.QAbstractItemViewConst ptr') = QListViewConst $ castQAbstractItemViewToQListView ptr'
+      cast' (M166.QAbstractItemViewConstGc fptr' ptr') = QListViewConstGc fptr' $ castQAbstractItemViewToQListView ptr'
+instance QListViewSuper M168.QAbstractScrollArea where
+  downToQListView = castQListViewToNonconst . cast' . M168.castQAbstractScrollAreaToConst
+    where
+      cast' (M168.QAbstractScrollAreaConst ptr') = QListViewConst $ castQAbstractScrollAreaToQListView ptr'
+      cast' (M168.QAbstractScrollAreaConstGc fptr' ptr') = QListViewConstGc fptr' $ castQAbstractScrollAreaToQListView ptr'
+instance QListViewSuper M280.QWidget where
+  downToQListView = castQListViewToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QListViewConst $ castQWidgetToQListView ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QListViewConstGc fptr' $ castQWidgetToQListView ptr'
+instance QListViewSuper M30.QObject where
+  downToQListView = castQListViewToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QListViewConst $ castQObjectToQListView ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QListViewConstGc fptr' $ castQObjectToQListView ptr'
+
+class QListViewSuperConst a where
+  downToQListViewConst :: a -> QListViewConst
+
+instance QListViewSuperConst M166.QAbstractItemViewConst where
+  downToQListViewConst = cast'
+    where
+      cast' (M166.QAbstractItemViewConst ptr') = QListViewConst $ castQAbstractItemViewToQListView ptr'
+      cast' (M166.QAbstractItemViewConstGc fptr' ptr') = QListViewConstGc fptr' $ castQAbstractItemViewToQListView ptr'
+instance QListViewSuperConst M168.QAbstractScrollAreaConst where
+  downToQListViewConst = cast'
+    where
+      cast' (M168.QAbstractScrollAreaConst ptr') = QListViewConst $ castQAbstractScrollAreaToQListView ptr'
+      cast' (M168.QAbstractScrollAreaConstGc fptr' ptr') = QListViewConstGc fptr' $ castQAbstractScrollAreaToQListView ptr'
+instance QListViewSuperConst M280.QWidgetConst where
+  downToQListViewConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QListViewConst $ castQWidgetToQListView ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QListViewConstGc fptr' $ castQWidgetToQListView ptr'
+instance QListViewSuperConst M30.QObjectConst where
+  downToQListViewConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QListViewConst $ castQObjectToQListView ptr'
+      cast' (M30.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
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,360 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QMainWindow (
+  castQMainWindowToQWidget,
+  castQWidgetToQMainWindow,
+  castQMainWindowToQObject,
+  castQObjectToQMainWindow,
+  QMainWindowValue (..),
+  QMainWindowConstPtr (..),
+  isAnimated,
+  centralWidget,
+  isDockNestingEnabled,
+  documentMode,
+  iconSize,
+  menuBar,
+  menuWidget,
+  statusBar,
+  unifiedTitleAndToolBarOnMac,
+  QMainWindowPtr (..),
+  setAnimated,
+  setCentralWidget,
+  createPopupMenu,
+  setDockNestingEnabled,
+  setDocumentMode,
+  setIconSize,
+  setMenuBar,
+  setMenuWidget,
+  setStatusBar,
+  setUnifiedTitleAndToolBarOnMac,
+  QMainWindowConst (..),
+  castQMainWindowToConst,
+  QMainWindow (..),
+  castQMainWindowToNonconst,
+  new,
+  newWithParent,
+  QMainWindowSuper (..),
+  QMainWindowSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M42
+import qualified Graphics.UI.Qtah.Generated.Widgets.QMenu as M238
+import qualified Graphics.UI.Qtah.Generated.Widgets.QMenuBar as M240
+import qualified Graphics.UI.Qtah.Generated.Widgets.QStatusBar as M272
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QMainWindow)
+foreign import ccall "genpop__QMainWindow_isAnimated" isAnimated' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QMainWindow_setAnimated" setAnimated' ::  HoppyF.Ptr QMainWindow -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_centralWidget" centralWidget' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "genpop__QMainWindow_setCentralWidget" setCentralWidget' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_createPopupMenu" createPopupMenu' ::  HoppyF.Ptr QMainWindow -> HoppyP.IO (HoppyF.Ptr M238.QMenu)
+foreign import ccall "genpop__QMainWindow_isDockNestingEnabled" isDockNestingEnabled' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QMainWindow_setDockNestingEnabled" setDockNestingEnabled' ::  HoppyF.Ptr QMainWindow -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_documentMode" documentMode' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QMainWindow_setDocumentMode" setDocumentMode' ::  HoppyF.Ptr QMainWindow -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_iconSize" iconSize' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO (HoppyF.Ptr M42.QSizeConst)
+foreign import ccall "genpop__QMainWindow_setIconSize" setIconSize' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M42.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_menuBar" menuBar' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO (HoppyF.Ptr M240.QMenuBar)
+foreign import ccall "genpop__QMainWindow_setMenuBar" setMenuBar' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M240.QMenuBar -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_menuWidget" menuWidget' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "genpop__QMainWindow_setMenuWidget" setMenuWidget' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_statusBar" statusBar' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO (HoppyF.Ptr M272.QStatusBar)
+foreign import ccall "genpop__QMainWindow_setStatusBar" setStatusBar' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M272.QStatusBar -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_unifiedTitleAndToolBarOnMac" unifiedTitleAndToolBarOnMac' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QMainWindow_setUnifiedTitleAndToolBarOnMac" setUnifiedTitleAndToolBarOnMac' ::  HoppyF.Ptr QMainWindow -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QMainWindow__QWidget" castQMainWindowToQWidget :: HoppyF.Ptr QMainWindowConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QMainWindow" castQWidgetToQMainWindow :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QMainWindowConst
+foreign import ccall "gencast__QMainWindow__QObject" castQMainWindowToQObject :: HoppyF.Ptr QMainWindowConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QMainWindow" castQObjectToQMainWindow :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QMainWindowConstPtr a => QMainWindowValue a where
+#else
+instance QMainWindowConstPtr a => QMainWindowValue a where
+#endif
+  withQMainWindowPtr = HoppyP.flip ($) . toQMainWindowConst
+
+class (M280.QWidgetConstPtr this) => QMainWindowConstPtr this where
+  toQMainWindowConst :: this -> QMainWindowConst
+
+isAnimated :: (QMainWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isAnimated arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isAnimated' arg'1')
+
+centralWidget :: (QMainWindowValue arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+centralWidget arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (centralWidget' arg'1')
+
+isDockNestingEnabled :: (QMainWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isDockNestingEnabled arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isDockNestingEnabled' arg'1')
+
+documentMode :: (QMainWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+documentMode arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (documentMode' arg'1')
+
+iconSize :: (QMainWindowValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+iconSize arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (iconSize' arg'1')
+
+menuBar :: (QMainWindowValue arg'1) => arg'1 -> HoppyP.IO M240.QMenuBar
+menuBar arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M240.QMenuBar
+  (menuBar' arg'1')
+
+menuWidget :: (QMainWindowValue arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+menuWidget arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (menuWidget' arg'1')
+
+statusBar :: (QMainWindowValue arg'1) => arg'1 -> HoppyP.IO M272.QStatusBar
+statusBar arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M272.QStatusBar
+  (statusBar' arg'1')
+
+unifiedTitleAndToolBarOnMac :: (QMainWindowValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+unifiedTitleAndToolBarOnMac arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (unifiedTitleAndToolBarOnMac' arg'1')
+
+class (QMainWindowConstPtr this, M280.QWidgetPtr this) => QMainWindowPtr this where
+  toQMainWindow :: this -> QMainWindow
+
+setAnimated :: (QMainWindowPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setAnimated arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setAnimated' arg'1' arg'2')
+
+setCentralWidget :: (QMainWindowPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setCentralWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (setCentralWidget' arg'1' arg'2')
+
+createPopupMenu :: (QMainWindowPtr arg'1) => arg'1 -> HoppyP.IO M238.QMenu
+createPopupMenu arg'1 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  HoppyP.fmap M238.QMenu
+  (createPopupMenu' arg'1')
+
+setDockNestingEnabled :: (QMainWindowPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setDockNestingEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setDockNestingEnabled' arg'1' arg'2')
+
+setDocumentMode :: (QMainWindowPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setDocumentMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setDocumentMode' arg'1' arg'2')
+
+setIconSize :: (QMainWindowPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setIconSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIconSize' arg'1' arg'2')
+
+setMenuBar :: (QMainWindowPtr arg'1, M240.QMenuBarPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setMenuBar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M240.toQMenuBar arg'2) $ \arg'2' ->
+  (setMenuBar' arg'1' arg'2')
+
+setMenuWidget :: (QMainWindowPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setMenuWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (setMenuWidget' arg'1' arg'2')
+
+setStatusBar :: (QMainWindowPtr arg'1, M272.QStatusBarPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setStatusBar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M272.toQStatusBar arg'2) $ \arg'2' ->
+  (setStatusBar' arg'1' arg'2')
+
+setUnifiedTitleAndToolBarOnMac :: (QMainWindowPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setUnifiedTitleAndToolBarOnMac arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setUnifiedTitleAndToolBarOnMac' 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 M280.QWidgetConstPtr QMainWindowConst where
+  toQWidgetConst (QMainWindowConst ptr') = M280.QWidgetConst $ castQMainWindowToQWidget ptr'
+  toQWidgetConst (QMainWindowConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQMainWindowToQWidget ptr'
+
+instance M30.QObjectConstPtr QMainWindowConst where
+  toQObjectConst (QMainWindowConst ptr') = M30.QObjectConst $ castQMainWindowToQObject ptr'
+  toQObjectConst (QMainWindowConstGc fptr' ptr') = M30.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 M280.QWidgetConstPtr QMainWindow where
+  toQWidgetConst (QMainWindow ptr') = M280.QWidgetConst $ castQMainWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+  toQWidgetConst (QMainWindowGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQMainWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+
+instance M280.QWidgetPtr QMainWindow where
+  toQWidget (QMainWindow ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQMainWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+  toQWidget (QMainWindowGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQMainWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+
+instance M30.QObjectConstPtr QMainWindow where
+  toQObjectConst (QMainWindow ptr') = M30.QObjectConst $ castQMainWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+  toQObjectConst (QMainWindowGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQMainWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+
+instance M30.QObjectPtr QMainWindow where
+  toQObject (QMainWindow ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQMainWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+  toQObject (QMainWindowGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQMainWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+
+new ::  HoppyP.IO QMainWindow
+new =
+  HoppyP.fmap QMainWindow
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QMainWindow
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QMainWindow
+  (newWithParent' arg'1')
+
+class QMainWindowSuper a where
+  downToQMainWindow :: a -> QMainWindow
+
+instance QMainWindowSuper M280.QWidget where
+  downToQMainWindow = castQMainWindowToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QMainWindowConst $ castQWidgetToQMainWindow ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QMainWindowConstGc fptr' $ castQWidgetToQMainWindow ptr'
+instance QMainWindowSuper M30.QObject where
+  downToQMainWindow = castQMainWindowToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QMainWindowConst $ castQObjectToQMainWindow ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QMainWindowConstGc fptr' $ castQObjectToQMainWindow ptr'
+
+class QMainWindowSuperConst a where
+  downToQMainWindowConst :: a -> QMainWindowConst
+
+instance QMainWindowSuperConst M280.QWidgetConst where
+  downToQMainWindowConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QMainWindowConst $ castQWidgetToQMainWindow ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QMainWindowConstGc fptr' $ castQWidgetToQMainWindow ptr'
+instance QMainWindowSuperConst M30.QObjectConst where
+  downToQMainWindowConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QMainWindowConst $ castQObjectToQMainWindow ptr'
+      cast' (M30.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/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,459 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QMenu (
+  castQMenuToQWidget,
+  castQWidgetToQMenu,
+  castQMenuToQObject,
+  castQObjectToQMenu,
+  QMenuValue (..),
+  QMenuConstPtr (..),
+  actionAt,
+  actionGeometry,
+  activeAction,
+  defaultAction,
+  isEmpty,
+  isTearOffMenuVisible,
+  menuAction,
+  separatorsCollapsible,
+  isTearOffEnabled,
+  title,
+  QMenuPtr (..),
+  setActiveAction,
+  addAction,
+  addNewAction,
+  addMenu,
+  addNewMenu,
+  addSeparator,
+  clear,
+  setDefaultAction,
+  exec,
+  execAt,
+  hideTearOffMenu,
+  insertMenu,
+  insertSeparator,
+  popup,
+  popupAction,
+  setSeparatorsCollapsible,
+  setTearOffEnabled,
+  setTitle,
+  QMenuConst (..),
+  castQMenuToConst,
+  QMenu (..),
+  castQMenuToNonconst,
+  new,
+  newWithParent,
+  newWithTitle,
+  newWithTitleAndParent,
+  QMenuSuper (..),
+  QMenuSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M174
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QMenu)
+foreign import ccall "genpop__QMenu_newWithTitle" newWithTitle' ::  HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr QMenu)
+foreign import ccall "genpop__QMenu_newWithTitleAndParent" newWithTitleAndParent' ::  HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M280.QWidget -> HoppyP.IO (HoppyF.Ptr QMenu)
+foreign import ccall "genpop__QMenu_actionAt" actionAt' ::  HoppyF.Ptr QMenuConst -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QMenu_actionGeometry" actionGeometry' ::  HoppyF.Ptr QMenuConst -> HoppyF.Ptr M174.QAction -> HoppyP.IO (HoppyF.Ptr M38.QRectConst)
+foreign import ccall "genpop__QMenu_activeAction" activeAction' ::  HoppyF.Ptr QMenuConst -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QMenu_setActiveAction" setActiveAction' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M174.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_addAction" addAction' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M174.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_addNewAction" addNewAction' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QMenu_addMenu" addMenu' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr QMenu -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QMenu_addNewMenu" addNewMenu' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr QMenu)
+foreign import ccall "genpop__QMenu_addSeparator" addSeparator' ::  HoppyF.Ptr QMenu -> HoppyP.IO (HoppyF.Ptr M174.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 M174.QAction)
+foreign import ccall "genpop__QMenu_setDefaultAction" setDefaultAction' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M174.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_exec" exec' ::  HoppyF.Ptr QMenu -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QMenu_execAt" execAt' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M34.QPointConst -> HoppyF.Ptr M174.QAction -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QMenu_hideTearOffMenu" hideTearOffMenu' ::  HoppyF.Ptr QMenu -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_insertMenu" insertMenu' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M174.QAction -> HoppyF.Ptr QMenu -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QMenu_insertSeparator" insertSeparator' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M174.QAction -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QMenu_isEmpty" isEmpty' ::  HoppyF.Ptr QMenuConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QMenu_isTearOffMenuVisible" isTearOffMenuVisible' ::  HoppyF.Ptr QMenuConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QMenu_menuAction" menuAction' ::  HoppyF.Ptr QMenuConst -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QMenu_popup" popup' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_popupAction" popupAction' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M34.QPointConst -> HoppyF.Ptr M174.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_separatorsCollapsible" separatorsCollapsible' ::  HoppyF.Ptr QMenuConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QMenu_setSeparatorsCollapsible" setSeparatorsCollapsible' ::  HoppyF.Ptr QMenu -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_isTearOffEnabled" isTearOffEnabled' ::  HoppyF.Ptr QMenuConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QMenu_setTearOffEnabled" setTearOffEnabled' ::  HoppyF.Ptr QMenu -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_title" title' ::  HoppyF.Ptr QMenuConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QMenu_setTitle" setTitle' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "gencast__QMenu__QWidget" castQMenuToQWidget :: HoppyF.Ptr QMenuConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QMenu" castQWidgetToQMenu :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QMenuConst
+foreign import ccall "gencast__QMenu__QObject" castQMenuToQObject :: HoppyF.Ptr QMenuConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QMenu" castQObjectToQMenu :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QMenuConstPtr a => QMenuValue a where
+#else
+instance QMenuConstPtr a => QMenuValue a where
+#endif
+  withQMenuPtr = HoppyP.flip ($) . toQMenuConst
+
+class (M280.QWidgetConstPtr this) => QMenuConstPtr this where
+  toQMenuConst :: this -> QMenuConst
+
+actionAt :: (QMenuValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M174.QAction
+actionAt arg'1 arg'2 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M174.QAction
+  (actionAt' arg'1' arg'2')
+
+actionGeometry :: (QMenuValue arg'1, M174.QActionPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HRect.HRect
+actionGeometry arg'1 arg'2 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (actionGeometry' arg'1' arg'2')
+
+activeAction :: (QMenuValue arg'1) => arg'1 -> HoppyP.IO M174.QAction
+activeAction arg'1 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M174.QAction
+  (activeAction' arg'1')
+
+defaultAction :: (QMenuValue arg'1) => arg'1 -> HoppyP.IO M174.QAction
+defaultAction arg'1 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M174.QAction
+  (defaultAction' arg'1')
+
+isEmpty :: (QMenuValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEmpty arg'1 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEmpty' arg'1')
+
+isTearOffMenuVisible :: (QMenuValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isTearOffMenuVisible arg'1 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isTearOffMenuVisible' arg'1')
+
+menuAction :: (QMenuValue arg'1) => arg'1 -> HoppyP.IO M174.QAction
+menuAction arg'1 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M174.QAction
+  (menuAction' arg'1')
+
+separatorsCollapsible :: (QMenuValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+separatorsCollapsible arg'1 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (separatorsCollapsible' arg'1')
+
+isTearOffEnabled :: (QMenuValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isTearOffEnabled arg'1 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isTearOffEnabled' arg'1')
+
+title :: (QMenuValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+title arg'1 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (title' arg'1')
+
+class (QMenuConstPtr this, M280.QWidgetPtr this) => QMenuPtr this where
+  toQMenu :: this -> QMenu
+
+setActiveAction :: (QMenuPtr arg'1, M174.QActionPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setActiveAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  (setActiveAction' arg'1' arg'2')
+
+addAction :: (QMenuPtr arg'1, M174.QActionPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+addAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  (addAction' arg'1' arg'2')
+
+addNewAction :: (QMenuPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M174.QAction
+addNewAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M174.QAction
+  (addNewAction' arg'1' arg'2')
+
+addMenu :: (QMenuPtr arg'1, QMenuPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO M174.QAction
+addMenu arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQMenu arg'2) $ \arg'2' ->
+  HoppyP.fmap M174.QAction
+  (addMenu' arg'1' arg'2')
+
+addNewMenu :: (QMenuPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QMenu
+addNewMenu arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QMenu
+  (addNewMenu' arg'1' arg'2')
+
+addSeparator :: (QMenuPtr arg'1) => arg'1 -> HoppyP.IO M174.QAction
+addSeparator arg'1 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyP.fmap M174.QAction
+  (addSeparator' arg'1')
+
+clear :: (QMenuPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+setDefaultAction :: (QMenuPtr arg'1, M174.QActionPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setDefaultAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  (setDefaultAction' arg'1' arg'2')
+
+exec :: (QMenuPtr arg'1) => arg'1 -> HoppyP.IO M174.QAction
+exec arg'1 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyP.fmap M174.QAction
+  (exec' arg'1')
+
+execAt :: (QMenuPtr arg'1, M34.QPointValue arg'2, M174.QActionPtr arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO M174.QAction
+execAt arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'3) $ \arg'3' ->
+  HoppyP.fmap M174.QAction
+  (execAt' arg'1' arg'2' arg'3')
+
+hideTearOffMenu :: (QMenuPtr arg'1) => arg'1 -> HoppyP.IO ()
+hideTearOffMenu arg'1 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  (hideTearOffMenu' arg'1')
+
+insertMenu :: (QMenuPtr arg'1, M174.QActionPtr arg'2, QMenuPtr arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO M174.QAction
+insertMenu arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  HoppyFHR.withCppPtr (toQMenu arg'3) $ \arg'3' ->
+  HoppyP.fmap M174.QAction
+  (insertMenu' arg'1' arg'2' arg'3')
+
+insertSeparator :: (QMenuPtr arg'1, M174.QActionPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO M174.QAction
+insertSeparator arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  HoppyP.fmap M174.QAction
+  (insertSeparator' arg'1' arg'2')
+
+popup :: (QMenuPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+popup arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (popup' arg'1' arg'2')
+
+popupAction :: (QMenuPtr arg'1, M34.QPointValue arg'2, M174.QActionPtr arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO ()
+popupAction arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'3) $ \arg'3' ->
+  (popupAction' arg'1' arg'2' arg'3')
+
+setSeparatorsCollapsible :: (QMenuPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setSeparatorsCollapsible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setSeparatorsCollapsible' arg'1' arg'2')
+
+setTearOffEnabled :: (QMenuPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setTearOffEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setTearOffEnabled' arg'1' arg'2')
+
+setTitle :: (QMenuPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setTitle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTitle' 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 M280.QWidgetConstPtr QMenuConst where
+  toQWidgetConst (QMenuConst ptr') = M280.QWidgetConst $ castQMenuToQWidget ptr'
+  toQWidgetConst (QMenuConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQMenuToQWidget ptr'
+
+instance M30.QObjectConstPtr QMenuConst where
+  toQObjectConst (QMenuConst ptr') = M30.QObjectConst $ castQMenuToQObject ptr'
+  toQObjectConst (QMenuConstGc fptr' ptr') = M30.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 M280.QWidgetConstPtr QMenu where
+  toQWidgetConst (QMenu ptr') = M280.QWidgetConst $ castQMenuToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+  toQWidgetConst (QMenuGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQMenuToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+
+instance M280.QWidgetPtr QMenu where
+  toQWidget (QMenu ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQMenuToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+  toQWidget (QMenuGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQMenuToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+
+instance M30.QObjectConstPtr QMenu where
+  toQObjectConst (QMenu ptr') = M30.QObjectConst $ castQMenuToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+  toQObjectConst (QMenuGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQMenuToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+
+instance M30.QObjectPtr QMenu where
+  toQObject (QMenu ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQMenuToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+  toQObject (QMenuGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQMenuToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+
+new ::  HoppyP.IO QMenu
+new =
+  HoppyP.fmap QMenu
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QMenu
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QMenu
+  (newWithParent' arg'1')
+
+newWithTitle :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO QMenu
+newWithTitle arg'1 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QMenu
+  (newWithTitle' arg'1')
+
+newWithTitleAndParent :: (M46.QStringValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QMenu
+newWithTitleAndParent arg'1 arg'2 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QMenu
+  (newWithTitleAndParent' arg'1' arg'2')
+
+class QMenuSuper a where
+  downToQMenu :: a -> QMenu
+
+instance QMenuSuper M280.QWidget where
+  downToQMenu = castQMenuToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QMenuConst $ castQWidgetToQMenu ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QMenuConstGc fptr' $ castQWidgetToQMenu ptr'
+instance QMenuSuper M30.QObject where
+  downToQMenu = castQMenuToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QMenuConst $ castQObjectToQMenu ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QMenuConstGc fptr' $ castQObjectToQMenu ptr'
+
+class QMenuSuperConst a where
+  downToQMenuConst :: a -> QMenuConst
+
+instance QMenuSuperConst M280.QWidgetConst where
+  downToQMenuConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QMenuConst $ castQWidgetToQMenu ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QMenuConstGc fptr' $ castQWidgetToQMenu ptr'
+instance QMenuSuperConst M30.QObjectConst where
+  downToQMenuConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QMenuConst $ castQObjectToQMenu ptr'
+      cast' (M30.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,80 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import qualified Prelude as HoppyP
+
+
+class QMenuValue a where
+  withQMenuPtr :: a -> (QMenuConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QMenuConstPtr a => QMenuValue a
+#else
+instance QMenuConstPtr a => QMenuValue a
+#endif
+
+class (M280.QWidgetConstPtr this) => QMenuConstPtr this where
+  toQMenuConst :: this -> QMenuConst
+
+class (QMenuConstPtr this, M280.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 M280.QWidgetConstPtr QMenuConst
+
+instance M30.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 M280.QWidgetConstPtr QMenu
+
+instance M280.QWidgetPtr QMenu
+
+instance M30.QObjectConstPtr QMenu
+
+instance M30.QObjectPtr QMenu
+castQMenuToQWidget :: HoppyF.Ptr QMenuConst -> HoppyF.Ptr M280.QWidgetConst
+castQMenuToQObject :: HoppyF.Ptr QMenuConst -> HoppyF.Ptr M30.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,364 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  addSeparator,
+  clear,
+  setDefaultUp,
+  insertMenu,
+  insertSeparator,
+  setNativeMenuBar,
+  setCornerWidget,
+  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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M174
+import qualified Graphics.UI.Qtah.Generated.Widgets.QMenu as M238
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QMenuBar)
+foreign import ccall "genpop__QMenuBar_actionAt" actionAt' ::  HoppyF.Ptr QMenuBarConst -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QMenuBar_actionGeometry" actionGeometry' ::  HoppyF.Ptr QMenuBarConst -> HoppyF.Ptr M174.QAction -> HoppyP.IO (HoppyF.Ptr M38.QRectConst)
+foreign import ccall "genpop__QMenuBar_activeAction" activeAction' ::  HoppyF.Ptr QMenuBarConst -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QMenuBar_setActiveAction" setActiveAction' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M174.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QMenuBar_addAction" addAction' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M174.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QMenuBar_addNewAction" addNewAction' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QMenuBar_addMenu" addMenu' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M238.QMenu -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QMenuBar_addNewMenu" addNewMenu' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M238.QMenu)
+foreign import ccall "genpop__QMenuBar_addSeparator" addSeparator' ::  HoppyF.Ptr QMenuBar -> HoppyP.IO (HoppyF.Ptr M174.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 M280.QWidget)
+foreign import ccall "genpop__QMenuBar_isDefaultUp" isDefaultUp' ::  HoppyF.Ptr QMenuBarConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QMenuBar_setDefaultUp" setDefaultUp' ::  HoppyF.Ptr QMenuBar -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMenuBar_insertMenu" insertMenu' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M174.QAction -> HoppyF.Ptr M238.QMenu -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QMenuBar_insertSeparator" insertSeparator' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M174.QAction -> HoppyP.IO (HoppyF.Ptr M174.QAction)
+foreign import ccall "genpop__QMenuBar_isNativeMenuBar" isNativeMenuBar' ::  HoppyF.Ptr QMenuBarConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QMenuBar_setNativeMenuBar" setNativeMenuBar' ::  HoppyF.Ptr QMenuBar -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMenuBar_setCornerWidget" setCornerWidget' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M280.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QMenuBar__QWidget" castQMenuBarToQWidget :: HoppyF.Ptr QMenuBarConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QMenuBar" castQWidgetToQMenuBar :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QMenuBarConst
+foreign import ccall "gencast__QMenuBar__QObject" castQMenuBarToQObject :: HoppyF.Ptr QMenuBarConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QMenuBar" castQObjectToQMenuBar :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QMenuBarConstPtr a => QMenuBarValue a where
+#else
+instance QMenuBarConstPtr a => QMenuBarValue a where
+#endif
+  withQMenuBarPtr = HoppyP.flip ($) . toQMenuBarConst
+
+class (M280.QWidgetConstPtr this) => QMenuBarConstPtr this where
+  toQMenuBarConst :: this -> QMenuBarConst
+
+actionAt :: (QMenuBarValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M174.QAction
+actionAt arg'1 arg'2 =
+  withQMenuBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M174.QAction
+  (actionAt' arg'1' arg'2')
+
+actionGeometry :: (QMenuBarValue arg'1, M174.QActionPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HRect.HRect
+actionGeometry arg'1 arg'2 =
+  withQMenuBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (actionGeometry' arg'1' arg'2')
+
+activeAction :: (QMenuBarValue arg'1) => arg'1 -> HoppyP.IO M174.QAction
+activeAction arg'1 =
+  withQMenuBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M174.QAction
+  (activeAction' arg'1')
+
+cornerWidget :: (QMenuBarValue arg'1) => arg'1 -> M58.QtCorner -> HoppyP.IO M280.QWidget
+cornerWidget arg'1 arg'2 =
+  withQMenuBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  HoppyP.fmap M280.QWidget
+  (cornerWidget' arg'1' arg'2')
+
+isDefaultUp :: (QMenuBarValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isDefaultUp arg'1 =
+  withQMenuBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isDefaultUp' arg'1')
+
+isNativeMenuBar :: (QMenuBarValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isNativeMenuBar arg'1 =
+  withQMenuBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isNativeMenuBar' arg'1')
+
+class (QMenuBarConstPtr this, M280.QWidgetPtr this) => QMenuBarPtr this where
+  toQMenuBar :: this -> QMenuBar
+
+setActiveAction :: (QMenuBarPtr arg'1, M174.QActionPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setActiveAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  (setActiveAction' arg'1' arg'2')
+
+addAction :: (QMenuBarPtr arg'1, M174.QActionPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+addAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  (addAction' arg'1' arg'2')
+
+addNewAction :: (QMenuBarPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M174.QAction
+addNewAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M174.QAction
+  (addNewAction' arg'1' arg'2')
+
+addMenu :: (QMenuBarPtr arg'1, M238.QMenuPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO M174.QAction
+addMenu arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M238.toQMenu arg'2) $ \arg'2' ->
+  HoppyP.fmap M174.QAction
+  (addMenu' arg'1' arg'2')
+
+addNewMenu :: (QMenuBarPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M238.QMenu
+addNewMenu arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M238.QMenu
+  (addNewMenu' arg'1' arg'2')
+
+addSeparator :: (QMenuBarPtr arg'1) => arg'1 -> HoppyP.IO M174.QAction
+addSeparator arg'1 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  HoppyP.fmap M174.QAction
+  (addSeparator' arg'1')
+
+clear :: (QMenuBarPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+setDefaultUp :: (QMenuBarPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setDefaultUp arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setDefaultUp' arg'1' arg'2')
+
+insertMenu :: (QMenuBarPtr arg'1, M174.QActionPtr arg'2, M238.QMenuPtr arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO M174.QAction
+insertMenu arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  HoppyFHR.withCppPtr (M238.toQMenu arg'3) $ \arg'3' ->
+  HoppyP.fmap M174.QAction
+  (insertMenu' arg'1' arg'2' arg'3')
+
+insertSeparator :: (QMenuBarPtr arg'1, M174.QActionPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO M174.QAction
+insertSeparator arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  HoppyP.fmap M174.QAction
+  (insertSeparator' arg'1' arg'2')
+
+setNativeMenuBar :: (QMenuBarPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setNativeMenuBar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setNativeMenuBar' arg'1' arg'2')
+
+setCornerWidget :: (QMenuBarPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> M58.QtCorner -> HoppyP.IO ()
+setCornerWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (setCornerWidget' arg'1' arg'2' arg'3')
+
+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 M280.QWidgetConstPtr QMenuBarConst where
+  toQWidgetConst (QMenuBarConst ptr') = M280.QWidgetConst $ castQMenuBarToQWidget ptr'
+  toQWidgetConst (QMenuBarConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQMenuBarToQWidget ptr'
+
+instance M30.QObjectConstPtr QMenuBarConst where
+  toQObjectConst (QMenuBarConst ptr') = M30.QObjectConst $ castQMenuBarToQObject ptr'
+  toQObjectConst (QMenuBarConstGc fptr' ptr') = M30.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 M280.QWidgetConstPtr QMenuBar where
+  toQWidgetConst (QMenuBar ptr') = M280.QWidgetConst $ castQMenuBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+  toQWidgetConst (QMenuBarGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQMenuBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+
+instance M280.QWidgetPtr QMenuBar where
+  toQWidget (QMenuBar ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQMenuBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+  toQWidget (QMenuBarGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQMenuBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+
+instance M30.QObjectConstPtr QMenuBar where
+  toQObjectConst (QMenuBar ptr') = M30.QObjectConst $ castQMenuBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+  toQObjectConst (QMenuBarGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQMenuBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+
+instance M30.QObjectPtr QMenuBar where
+  toQObject (QMenuBar ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQMenuBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+  toQObject (QMenuBarGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQMenuBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+
+new ::  HoppyP.IO QMenuBar
+new =
+  HoppyP.fmap QMenuBar
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QMenuBar
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QMenuBar
+  (newWithParent' arg'1')
+
+class QMenuBarSuper a where
+  downToQMenuBar :: a -> QMenuBar
+
+instance QMenuBarSuper M280.QWidget where
+  downToQMenuBar = castQMenuBarToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QMenuBarConst $ castQWidgetToQMenuBar ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QMenuBarConstGc fptr' $ castQWidgetToQMenuBar ptr'
+instance QMenuBarSuper M30.QObject where
+  downToQMenuBar = castQMenuBarToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QMenuBarConst $ castQObjectToQMenuBar ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QMenuBarConstGc fptr' $ castQObjectToQMenuBar ptr'
+
+class QMenuBarSuperConst a where
+  downToQMenuBarConst :: a -> QMenuBarConst
+
+instance QMenuBarSuperConst M280.QWidgetConst where
+  downToQMenuBarConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QMenuBarConst $ castQWidgetToQMenuBar ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QMenuBarConstGc fptr' $ castQWidgetToQMenuBar ptr'
+instance QMenuBarSuperConst M30.QObjectConst where
+  downToQMenuBarConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QMenuBarConst $ castQObjectToQMenuBar ptr'
+      cast' (M30.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,798 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  informativeText,
+  standardButton,
+  standardButtons,
+  text,
+  textFormat,
+  textInteractionFlags,
+  QMessageBoxPtr (..),
+  addButton,
+  addNewButton,
+  addStandardButton,
+  setCheckBox,
+  setDetailedText,
+  setIcon,
+  setInformativeText,
+  removeButton,
+  setDefaultButton,
+  setDefaultButtonStandard,
+  setEscapeButton,
+  setEscapeButtonStandard,
+  setWindowModality,
+  setWindowTitle,
+  setStandardButtons,
+  setText,
+  setTextFormat,
+  setTextInteractionFlags,
+  about,
+  aboutQt,
+  critical,
+  criticalWithButtons,
+  information,
+  informationWithButtons,
+  question,
+  questionWithButtons,
+  warning,
+  warningWithButtons,
+  QMessageBoxConst (..),
+  castQMessageBoxToConst,
+  QMessageBox (..),
+  castQMessageBoxToNonconst,
+  new,
+  newWithParent,
+  QMessageBoxSuper (..),
+  QMessageBoxSuperConst (..),
+  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 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.QList.QAbstractButton as M62
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M162
+import qualified Graphics.UI.Qtah.Generated.Widgets.QCheckBox as M184
+import qualified Graphics.UI.Qtah.Generated.Widgets.QDialog as M188
+import qualified Graphics.UI.Qtah.Generated.Widgets.QPushButton as M248
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QMessageBox)
+foreign import ccall "genpop__QMessageBox_about" about' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_aboutQt" aboutQt' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_addButton" addButton' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M162.QAbstractButton -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_addNewButton" addNewButton' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M46.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M248.QPushButton)
+foreign import ccall "genpop__QMessageBox_addStandardButton" addStandardButton' ::  HoppyF.Ptr QMessageBox -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M248.QPushButton)
+foreign import ccall "genpop__QMessageBox_button" button' ::  HoppyF.Ptr QMessageBoxConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M162.QAbstractButton)
+foreign import ccall "genpop__QMessageBox_buttonRole" buttonRole' ::  HoppyF.Ptr QMessageBoxConst -> HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_buttons" buttons' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO (HoppyF.Ptr M62.QListQAbstractButtonConst)
+foreign import ccall "genpop__QMessageBox_checkBox" checkBox' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO (HoppyF.Ptr M184.QCheckBox)
+foreign import ccall "genpop__QMessageBox_setCheckBox" setCheckBox' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M184.QCheckBox -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_clickedButton" clickedButton' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO (HoppyF.Ptr M162.QAbstractButton)
+foreign import ccall "genpop__QMessageBox_critical" critical' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_criticalWithButtons" criticalWithButtons' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_defaultButton" defaultButton' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO (HoppyF.Ptr M248.QPushButton)
+foreign import ccall "genpop__QMessageBox_detailedText" detailedText' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QMessageBox_setDetailedText" setDetailedText' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_escapeButton" escapeButton' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO (HoppyF.Ptr M162.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_information" information' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_informationWithButtons" informationWithButtons' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_informativeText" informativeText' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QMessageBox_setInformativeText" setInformativeText' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_question" question' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_questionWithButtons" questionWithButtons' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_removeButton" removeButton' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_setDefaultButton" setDefaultButton' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M248.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 M248.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 M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_standardButton" standardButton' ::  HoppyF.Ptr QMessageBoxConst -> HoppyF.Ptr M162.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 M46.QStringConst)
+foreign import ccall "genpop__QMessageBox_setText" setText' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M46.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 M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_warningWithButtons" warningWithButtons' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gencast__QMessageBox__QDialog" castQMessageBoxToQDialog :: HoppyF.Ptr QMessageBoxConst -> HoppyF.Ptr M188.QDialogConst
+foreign import ccall "gencast__QDialog__QMessageBox" castQDialogToQMessageBox :: HoppyF.Ptr M188.QDialogConst -> HoppyF.Ptr QMessageBoxConst
+foreign import ccall "gencast__QMessageBox__QWidget" castQMessageBoxToQWidget :: HoppyF.Ptr QMessageBoxConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QMessageBox" castQWidgetToQMessageBox :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QMessageBoxConst
+foreign import ccall "gencast__QMessageBox__QObject" castQMessageBoxToQObject :: HoppyF.Ptr QMessageBoxConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QMessageBox" castQObjectToQMessageBox :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QMessageBoxConstPtr a => QMessageBoxValue a where
+#else
+instance QMessageBoxConstPtr a => QMessageBoxValue a where
+#endif
+  withQMessageBoxPtr = HoppyP.flip ($) . toQMessageBoxConst
+
+class (M188.QDialogConstPtr this) => QMessageBoxConstPtr this where
+  toQMessageBoxConst :: this -> QMessageBoxConst
+
+button :: (QMessageBoxValue arg'1) => arg'1 -> QMessageBoxStandardButton -> HoppyP.IO M162.QAbstractButton
+button arg'1 arg'2 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  HoppyP.fmap M162.QAbstractButton
+  (button' arg'1' arg'2')
+
+buttonRole :: (QMessageBoxValue arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QMessageBoxButtonRole
+buttonRole arg'1 arg'2 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (buttonRole' arg'1' arg'2')
+
+buttons :: (QMessageBoxValue arg'1) => arg'1 -> HoppyP.IO [M162.QAbstractButton]
+buttons arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M62.QListQAbstractButtonConst) =<<
+  (buttons' arg'1')
+
+checkBox :: (QMessageBoxValue arg'1) => arg'1 -> HoppyP.IO M184.QCheckBox
+checkBox arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M184.QCheckBox
+  (checkBox' arg'1')
+
+clickedButton :: (QMessageBoxValue arg'1) => arg'1 -> HoppyP.IO M162.QAbstractButton
+clickedButton arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M162.QAbstractButton
+  (clickedButton' arg'1')
+
+defaultButton :: (QMessageBoxValue arg'1) => arg'1 -> HoppyP.IO M248.QPushButton
+defaultButton arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M248.QPushButton
+  (defaultButton' arg'1')
+
+detailedText :: (QMessageBoxValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+detailedText arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (detailedText' arg'1')
+
+escapeButton :: (QMessageBoxValue arg'1) => arg'1 -> HoppyP.IO M162.QAbstractButton
+escapeButton arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M162.QAbstractButton
+  (escapeButton' arg'1')
+
+icon :: (QMessageBoxValue arg'1) => arg'1 -> HoppyP.IO QMessageBoxIcon
+icon arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (icon' arg'1')
+
+informativeText :: (QMessageBoxValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+informativeText arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (informativeText' arg'1')
+
+standardButton :: (QMessageBoxValue arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QMessageBoxStandardButton
+standardButton arg'1 arg'2 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (standardButton' arg'1' arg'2')
+
+standardButtons :: (QMessageBoxValue arg'1) => arg'1 -> HoppyP.IO QMessageBoxStandardButtons
+standardButtons arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QMessageBoxStandardButtons
+  (standardButtons' arg'1')
+
+text :: (QMessageBoxValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+text arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (text' arg'1')
+
+textFormat :: (QMessageBoxValue arg'1) => arg'1 -> HoppyP.IO M58.QtTextFormat
+textFormat arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (textFormat' arg'1')
+
+textInteractionFlags :: (QMessageBoxValue arg'1) => arg'1 -> HoppyP.IO M58.QtTextInteractionFlags
+textInteractionFlags arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtTextInteractionFlags
+  (textInteractionFlags' arg'1')
+
+class (QMessageBoxConstPtr this, M188.QDialogPtr this) => QMessageBoxPtr this where
+  toQMessageBox :: this -> QMessageBox
+
+addButton :: (QMessageBoxPtr arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> QMessageBoxButtonRole -> HoppyP.IO ()
+addButton arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (addButton' arg'1' arg'2' arg'3')
+
+addNewButton :: (QMessageBoxPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> QMessageBoxButtonRole -> HoppyP.IO M248.QPushButton
+addNewButton arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  HoppyP.fmap M248.QPushButton
+  (addNewButton' arg'1' arg'2' arg'3')
+
+addStandardButton :: (QMessageBoxPtr arg'1) => arg'1 -> QMessageBoxStandardButton -> HoppyP.IO M248.QPushButton
+addStandardButton arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  HoppyP.fmap M248.QPushButton
+  (addStandardButton' arg'1' arg'2')
+
+setCheckBox :: (QMessageBoxPtr arg'1, M184.QCheckBoxPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setCheckBox arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M184.toQCheckBox arg'2) $ \arg'2' ->
+  (setCheckBox' arg'1' arg'2')
+
+setDetailedText :: (QMessageBoxPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setDetailedText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setDetailedText' arg'1' arg'2')
+
+setIcon :: (QMessageBoxPtr arg'1) => arg'1 -> QMessageBoxIcon -> HoppyP.IO ()
+setIcon arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setIcon' arg'1' arg'2')
+
+setInformativeText :: (QMessageBoxPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setInformativeText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setInformativeText' arg'1' arg'2')
+
+removeButton :: (QMessageBoxPtr arg'1, M162.QAbstractButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+removeButton arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M162.toQAbstractButton arg'2) $ \arg'2' ->
+  (removeButton' arg'1' arg'2')
+
+setDefaultButton :: (QMessageBoxPtr arg'1, M248.QPushButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setDefaultButton arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M248.toQPushButton arg'2) $ \arg'2' ->
+  (setDefaultButton' arg'1' arg'2')
+
+setDefaultButtonStandard :: (QMessageBoxPtr arg'1) => arg'1 -> QMessageBoxStandardButton -> HoppyP.IO ()
+setDefaultButtonStandard arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setDefaultButtonStandard' arg'1' arg'2')
+
+setEscapeButton :: (QMessageBoxPtr arg'1, M248.QPushButtonPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setEscapeButton arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M248.toQPushButton arg'2) $ \arg'2' ->
+  (setEscapeButton' arg'1' arg'2')
+
+setEscapeButtonStandard :: (QMessageBoxPtr arg'1) => arg'1 -> QMessageBoxStandardButton -> HoppyP.IO ()
+setEscapeButtonStandard arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setEscapeButtonStandard' arg'1' arg'2')
+
+setWindowModality :: (QMessageBoxPtr arg'1) => arg'1 -> M58.QtWindowModality -> HoppyP.IO ()
+setWindowModality arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setWindowModality' arg'1' arg'2')
+
+setWindowTitle :: (QMessageBoxPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setWindowTitle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWindowTitle' arg'1' arg'2')
+
+setStandardButtons :: (QMessageBoxPtr arg'1, IsQMessageBoxStandardButtons arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setStandardButtons arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  let arg'2' = fromQMessageBoxStandardButtons $ toQMessageBoxStandardButtons arg'2 in
+  (setStandardButtons' arg'1' arg'2')
+
+setText :: (QMessageBoxPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setText' arg'1' arg'2')
+
+setTextFormat :: (QMessageBoxPtr arg'1) => arg'1 -> M58.QtTextFormat -> HoppyP.IO ()
+setTextFormat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setTextFormat' arg'1' arg'2')
+
+setTextInteractionFlags :: (QMessageBoxPtr arg'1, M58.IsQtTextInteractionFlags arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setTextInteractionFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtTextInteractionFlags $ M58.toQtTextInteractionFlags arg'2 in
+  (setTextInteractionFlags' arg'1' arg'2')
+
+about :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO ()
+about arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (about' arg'1' arg'2' arg'3')
+
+aboutQt :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+aboutQt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (aboutQt' arg'1' arg'2')
+
+critical :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO QMessageBoxStandardButton
+critical arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (critical' arg'1' arg'2' arg'3')
+
+criticalWithButtons :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  let arg'4' = fromQMessageBoxStandardButtons $ toQMessageBoxStandardButtons arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'5 in
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (criticalWithButtons' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+information :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO QMessageBoxStandardButton
+information arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (information' arg'1' arg'2' arg'3')
+
+informationWithButtons :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  let arg'4' = fromQMessageBoxStandardButtons $ toQMessageBoxStandardButtons arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'5 in
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (informationWithButtons' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+question :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO QMessageBoxStandardButton
+question arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (question' arg'1' arg'2' arg'3')
+
+questionWithButtons :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  let arg'4' = fromQMessageBoxStandardButtons $ toQMessageBoxStandardButtons arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'5 in
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (questionWithButtons' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+warning :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO QMessageBoxStandardButton
+warning arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (warning' arg'1' arg'2' arg'3')
+
+warningWithButtons :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  let arg'4' = fromQMessageBoxStandardButtons $ toQMessageBoxStandardButtons arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'5 in
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (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 M188.QDialogConstPtr QMessageBoxConst where
+  toQDialogConst (QMessageBoxConst ptr') = M188.QDialogConst $ castQMessageBoxToQDialog ptr'
+  toQDialogConst (QMessageBoxConstGc fptr' ptr') = M188.QDialogConstGc fptr' $ castQMessageBoxToQDialog ptr'
+
+instance M280.QWidgetConstPtr QMessageBoxConst where
+  toQWidgetConst (QMessageBoxConst ptr') = M280.QWidgetConst $ castQMessageBoxToQWidget ptr'
+  toQWidgetConst (QMessageBoxConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQMessageBoxToQWidget ptr'
+
+instance M30.QObjectConstPtr QMessageBoxConst where
+  toQObjectConst (QMessageBoxConst ptr') = M30.QObjectConst $ castQMessageBoxToQObject ptr'
+  toQObjectConst (QMessageBoxConstGc fptr' ptr') = M30.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 M188.QDialogConstPtr QMessageBox where
+  toQDialogConst (QMessageBox ptr') = M188.QDialogConst $ castQMessageBoxToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+  toQDialogConst (QMessageBoxGc fptr' ptr') = M188.QDialogConstGc fptr' $ castQMessageBoxToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+
+instance M188.QDialogPtr QMessageBox where
+  toQDialog (QMessageBox ptr') = M188.QDialog $ (HoppyF.castPtr :: HoppyF.Ptr M188.QDialogConst -> HoppyF.Ptr M188.QDialog) $ castQMessageBoxToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+  toQDialog (QMessageBoxGc fptr' ptr') = M188.QDialogGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M188.QDialogConst -> HoppyF.Ptr M188.QDialog) $ castQMessageBoxToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+
+instance M280.QWidgetConstPtr QMessageBox where
+  toQWidgetConst (QMessageBox ptr') = M280.QWidgetConst $ castQMessageBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+  toQWidgetConst (QMessageBoxGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQMessageBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+
+instance M280.QWidgetPtr QMessageBox where
+  toQWidget (QMessageBox ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQMessageBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+  toQWidget (QMessageBoxGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQMessageBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+
+instance M30.QObjectConstPtr QMessageBox where
+  toQObjectConst (QMessageBox ptr') = M30.QObjectConst $ castQMessageBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+  toQObjectConst (QMessageBoxGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQMessageBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+
+instance M30.QObjectPtr QMessageBox where
+  toQObject (QMessageBox ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQMessageBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+  toQObject (QMessageBoxGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQMessageBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+
+new ::  HoppyP.IO QMessageBox
+new =
+  HoppyP.fmap QMessageBox
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QMessageBox
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QMessageBox
+  (newWithParent' arg'1')
+
+class QMessageBoxSuper a where
+  downToQMessageBox :: a -> QMessageBox
+
+instance QMessageBoxSuper M188.QDialog where
+  downToQMessageBox = castQMessageBoxToNonconst . cast' . M188.castQDialogToConst
+    where
+      cast' (M188.QDialogConst ptr') = QMessageBoxConst $ castQDialogToQMessageBox ptr'
+      cast' (M188.QDialogConstGc fptr' ptr') = QMessageBoxConstGc fptr' $ castQDialogToQMessageBox ptr'
+instance QMessageBoxSuper M280.QWidget where
+  downToQMessageBox = castQMessageBoxToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QMessageBoxConst $ castQWidgetToQMessageBox ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QMessageBoxConstGc fptr' $ castQWidgetToQMessageBox ptr'
+instance QMessageBoxSuper M30.QObject where
+  downToQMessageBox = castQMessageBoxToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QMessageBoxConst $ castQObjectToQMessageBox ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QMessageBoxConstGc fptr' $ castQObjectToQMessageBox ptr'
+
+class QMessageBoxSuperConst a where
+  downToQMessageBoxConst :: a -> QMessageBoxConst
+
+instance QMessageBoxSuperConst M188.QDialogConst where
+  downToQMessageBoxConst = cast'
+    where
+      cast' (M188.QDialogConst ptr') = QMessageBoxConst $ castQDialogToQMessageBox ptr'
+      cast' (M188.QDialogConstGc fptr' ptr') = QMessageBoxConstGc fptr' $ castQDialogToQMessageBox ptr'
+instance QMessageBoxSuperConst M280.QWidgetConst where
+  downToQMessageBoxConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QMessageBoxConst $ castQWidgetToQMessageBox ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QMessageBoxConstGc fptr' $ castQWidgetToQMessageBox ptr'
+instance QMessageBoxSuperConst M30.QObjectConst where
+  downToQMessageBoxConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QMessageBoxConst $ castQObjectToQMessageBox ptr'
+      cast' (M30.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
+  | DescructiveRole
+  | ActionRole
+  | HelpRole
+  | YesRole
+  | NoRole
+  | ApplyRole
+  | ResetRole
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QMessageBoxButtonRole where
+  fromEnum InvalidRole = -1
+  fromEnum AcceptRole = 0
+  fromEnum RejectRole = 1
+  fromEnum DescructiveRole = 2
+  fromEnum ActionRole = 3
+  fromEnum HelpRole = 4
+  fromEnum YesRole = 5
+  fromEnum NoRole = 6
+  fromEnum ApplyRole = 7
+  fromEnum ResetRole = 8
+  
+  toEnum (-1) = InvalidRole
+  toEnum (0) = AcceptRole
+  toEnum (1) = RejectRole
+  toEnum (2) = DescructiveRole
+  toEnum (3) = ActionRole
+  toEnum (4) = HelpRole
+  toEnum (5) = YesRole
+  toEnum (6) = NoRole
+  toEnum (7) = ApplyRole
+  toEnum (8) = ResetRole
+  toEnum n' = HoppyP.error $ "Unknown QMessageBoxButtonRole numeric value: " ++ HoppyP.show n'
+
+data QMessageBoxIcon =
+  NoIcon
+  | Information
+  | Warning
+  | Critical
+  | Question
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QMessageBoxIcon where
+  fromEnum NoIcon = 0
+  fromEnum Information = 1
+  fromEnum Warning = 2
+  fromEnum Critical = 3
+  fromEnum Question = 4
+  
+  toEnum (0) = NoIcon
+  toEnum (1) = Information
+  toEnum (2) = Warning
+  toEnum (3) = Critical
+  toEnum (4) = Question
+  toEnum n' = HoppyP.error $ "Unknown QMessageBoxIcon numeric value: " ++ HoppyP.show n'
+
+data QMessageBoxStandardButton =
+  Ok
+  | Open
+  | Save
+  | Cancel
+  | Close
+  | Discard
+  | Apply
+  | Reset
+  | RestoreDefaults
+  | Help
+  | SaveAll
+  | Yes
+  | YesToAll
+  | No
+  | NoToAll
+  | Abort
+  | Retry
+  | Ignore
+  | NoButton
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QMessageBoxStandardButton where
+  fromEnum Ok = 1024
+  fromEnum Open = 8192
+  fromEnum Save = 2048
+  fromEnum Cancel = 4194304
+  fromEnum Close = 2097152
+  fromEnum Discard = 8388608
+  fromEnum Apply = 33554432
+  fromEnum Reset = 67108864
+  fromEnum RestoreDefaults = 134217728
+  fromEnum Help = 16777216
+  fromEnum SaveAll = 4096
+  fromEnum Yes = 16384
+  fromEnum YesToAll = 32768
+  fromEnum No = 65536
+  fromEnum NoToAll = 131072
+  fromEnum Abort = 262144
+  fromEnum Retry = 524288
+  fromEnum Ignore = 1048576
+  fromEnum NoButton = 0
+  
+  toEnum (1024) = Ok
+  toEnum (8192) = Open
+  toEnum (2048) = Save
+  toEnum (4194304) = Cancel
+  toEnum (2097152) = Close
+  toEnum (8388608) = Discard
+  toEnum (33554432) = Apply
+  toEnum (67108864) = Reset
+  toEnum (134217728) = RestoreDefaults
+  toEnum (16777216) = Help
+  toEnum (4096) = SaveAll
+  toEnum (16384) = Yes
+  toEnum (32768) = YesToAll
+  toEnum (65536) = No
+  toEnum (131072) = NoToAll
+  toEnum (262144) = Abort
+  toEnum (524288) = Retry
+  toEnum (1048576) = Ignore
+  toEnum (0) = NoButton
+  toEnum n' = HoppyP.error $ "Unknown QMessageBoxStandardButton numeric value: " ++ HoppyP.show n'
+
+newtype QMessageBoxStandardButtons = QMessageBoxStandardButtons { fromQMessageBoxStandardButtons :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQMessageBoxStandardButtons a where
+  toQMessageBoxStandardButtons :: a -> QMessageBoxStandardButtons
+
+instance IsQMessageBoxStandardButtons (HoppyFC.CInt) where
+  toQMessageBoxStandardButtons = QMessageBoxStandardButtons
+instance IsQMessageBoxStandardButtons (HoppyP.Int) where
+  toQMessageBoxStandardButtons = QMessageBoxStandardButtons . HoppyFHR.coerceIntegral
+instance IsQMessageBoxStandardButtons QMessageBoxStandardButtons where
+  toQMessageBoxStandardButtons = HoppyP.id
+
+instance IsQMessageBoxStandardButtons QMessageBoxStandardButton where
+  toQMessageBoxStandardButtons = QMessageBoxStandardButtons . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+ok = QMessageBoxStandardButtons 1024
+open = QMessageBoxStandardButtons 8192
+save = QMessageBoxStandardButtons 2048
+cancel = QMessageBoxStandardButtons 4194304
+close = QMessageBoxStandardButtons 2097152
+discard = QMessageBoxStandardButtons 8388608
+apply = QMessageBoxStandardButtons 33554432
+reset = QMessageBoxStandardButtons 67108864
+restoreDefaults = QMessageBoxStandardButtons 134217728
+help = QMessageBoxStandardButtons 16777216
+saveAll = QMessageBoxStandardButtons 4096
+yes = QMessageBoxStandardButtons 16384
+yesToAll = QMessageBoxStandardButtons 32768
+no = QMessageBoxStandardButtons 65536
+noToAll = QMessageBoxStandardButtons 131072
+abort = QMessageBoxStandardButtons 262144
+retry = QMessageBoxStandardButtons 524288
+ignore = QMessageBoxStandardButtons 1048576
+noButton = QMessageBoxStandardButtons 0
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QOpenGLWidget.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QOpenGLWidget.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QOpenGLWidget.hs
@@ -0,0 +1,283 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QImage as M108
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Prelude (($), (++), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+
+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 M108.QImageConst)
+foreign import ccall "genpop__QOpenGLWidget_isValid" isValid' ::  HoppyF.Ptr QOpenGLWidgetConst -> HoppyP.IO HoppyFHR.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 "gencast__QOpenGLWidget__QWidget" castQOpenGLWidgetToQWidget :: HoppyF.Ptr QOpenGLWidgetConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QOpenGLWidget" castQWidgetToQOpenGLWidget :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QOpenGLWidgetConst
+foreign import ccall "gencast__QOpenGLWidget__QObject" castQOpenGLWidgetToQObject :: HoppyF.Ptr QOpenGLWidgetConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QOpenGLWidget" castQObjectToQOpenGLWidget :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QOpenGLWidgetConstPtr a => QOpenGLWidgetValue a where
+#else
+instance QOpenGLWidgetConstPtr a => QOpenGLWidgetValue a where
+#endif
+  withQOpenGLWidgetPtr = HoppyP.flip ($) . toQOpenGLWidgetConst
+
+class (M280.QWidgetConstPtr this) => QOpenGLWidgetConstPtr this where
+  toQOpenGLWidgetConst :: this -> QOpenGLWidgetConst
+
+defaultFramebufferObject :: (QOpenGLWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyDW.Word32
+defaultFramebufferObject arg'1 =
+  withQOpenGLWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (defaultFramebufferObject' arg'1')
+
+isValid :: (QOpenGLWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isValid arg'1 =
+  withQOpenGLWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isValid' arg'1')
+
+updateBehavior :: (QOpenGLWidgetValue arg'1) => arg'1 -> HoppyP.IO QOpenGLWidgetUpdateBehavior
+updateBehavior arg'1 =
+  withQOpenGLWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (updateBehavior' arg'1')
+
+class (QOpenGLWidgetConstPtr this, M280.QWidgetPtr this) => QOpenGLWidgetPtr this where
+  toQOpenGLWidget :: this -> QOpenGLWidget
+
+doneCurrent :: (QOpenGLWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+doneCurrent arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWidget arg'1) $ \arg'1' ->
+  (doneCurrent' arg'1')
+
+grabFramebuffer :: (QOpenGLWidgetPtr arg'1) => arg'1 -> HoppyP.IO M108.QImage
+grabFramebuffer arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWidget arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M108.QImageConst) =<<
+  (grabFramebuffer' arg'1')
+
+makeCurrent :: (QOpenGLWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+makeCurrent arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWidget arg'1) $ \arg'1' ->
+  (makeCurrent' arg'1')
+
+setUpdateBehavior :: (QOpenGLWidgetPtr arg'1) => arg'1 -> QOpenGLWidgetUpdateBehavior -> HoppyP.IO ()
+setUpdateBehavior arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQOpenGLWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setUpdateBehavior' arg'1' arg'2')
+
+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 M280.QWidgetConstPtr QOpenGLWidgetConst where
+  toQWidgetConst (QOpenGLWidgetConst ptr') = M280.QWidgetConst $ castQOpenGLWidgetToQWidget ptr'
+  toQWidgetConst (QOpenGLWidgetConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQOpenGLWidgetToQWidget ptr'
+
+instance M30.QObjectConstPtr QOpenGLWidgetConst where
+  toQObjectConst (QOpenGLWidgetConst ptr') = M30.QObjectConst $ castQOpenGLWidgetToQObject ptr'
+  toQObjectConst (QOpenGLWidgetConstGc fptr' ptr') = M30.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 M280.QWidgetConstPtr QOpenGLWidget where
+  toQWidgetConst (QOpenGLWidget ptr') = M280.QWidgetConst $ castQOpenGLWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWidget -> HoppyF.Ptr QOpenGLWidgetConst) ptr'
+  toQWidgetConst (QOpenGLWidgetGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQOpenGLWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWidget -> HoppyF.Ptr QOpenGLWidgetConst) ptr'
+
+instance M280.QWidgetPtr QOpenGLWidget where
+  toQWidget (QOpenGLWidget ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQOpenGLWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWidget -> HoppyF.Ptr QOpenGLWidgetConst) ptr'
+  toQWidget (QOpenGLWidgetGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQOpenGLWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWidget -> HoppyF.Ptr QOpenGLWidgetConst) ptr'
+
+instance M30.QObjectConstPtr QOpenGLWidget where
+  toQObjectConst (QOpenGLWidget ptr') = M30.QObjectConst $ castQOpenGLWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWidget -> HoppyF.Ptr QOpenGLWidgetConst) ptr'
+  toQObjectConst (QOpenGLWidgetGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQOpenGLWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWidget -> HoppyF.Ptr QOpenGLWidgetConst) ptr'
+
+instance M30.QObjectPtr QOpenGLWidget where
+  toQObject (QOpenGLWidget ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQOpenGLWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWidget -> HoppyF.Ptr QOpenGLWidgetConst) ptr'
+  toQObject (QOpenGLWidgetGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.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, M58.IsQtWindowFlags arg'2) => arg'1 -> arg'2 -> HoppyP.IO QOpenGLWidget
+newWithParentAndFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQOpenGLWidget arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtWindowFlags $ M58.toQtWindowFlags arg'2 in
+  HoppyP.fmap QOpenGLWidget
+  (newWithParentAndFlags' arg'1' arg'2')
+
+class QOpenGLWidgetSuper a where
+  downToQOpenGLWidget :: a -> QOpenGLWidget
+
+instance QOpenGLWidgetSuper M280.QWidget where
+  downToQOpenGLWidget = castQOpenGLWidgetToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QOpenGLWidgetConst $ castQWidgetToQOpenGLWidget ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QOpenGLWidgetConstGc fptr' $ castQWidgetToQOpenGLWidget ptr'
+instance QOpenGLWidgetSuper M30.QObject where
+  downToQOpenGLWidget = castQOpenGLWidgetToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QOpenGLWidgetConst $ castQObjectToQOpenGLWidget ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QOpenGLWidgetConstGc fptr' $ castQObjectToQOpenGLWidget ptr'
+
+class QOpenGLWidgetSuperConst a where
+  downToQOpenGLWidgetConst :: a -> QOpenGLWidgetConst
+
+instance QOpenGLWidgetSuperConst M280.QWidgetConst where
+  downToQOpenGLWidgetConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QOpenGLWidgetConst $ castQWidgetToQOpenGLWidget ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QOpenGLWidgetConstGc fptr' $ castQWidgetToQOpenGLWidget ptr'
+instance QOpenGLWidgetSuperConst M30.QObjectConst where
+  downToQOpenGLWidgetConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QOpenGLWidgetConst $ castQObjectToQOpenGLWidget ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QOpenGLWidgetUpdateBehavior where
+  fromEnum NoPartialUpdate = 0
+  fromEnum PartialUpdate = 1
+  
+  toEnum (0) = NoPartialUpdate
+  toEnum (1) = PartialUpdate
+  toEnum n' = HoppyP.error $ "Unknown QOpenGLWidgetUpdateBehavior numeric value: " ++ HoppyP.show n'
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,396 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.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 M46.QStringConst)
+foreign import ccall "genpop__QProgressBar_setFormat" setFormat' ::  HoppyF.Ptr QProgressBar -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QProgressBar_invertedAppearance" invertedAppearance' ::  HoppyF.Ptr QProgressBarConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QProgressBar_setInvertedAppearance" setInvertedAppearance' ::  HoppyF.Ptr QProgressBar -> HoppyFHR.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 M46.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 HoppyFHR.CBool
+foreign import ccall "genpop__QProgressBar_setTextVisible" setTextVisible' ::  HoppyF.Ptr QProgressBar -> HoppyFHR.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 "gencast__QProgressBar__QWidget" castQProgressBarToQWidget :: HoppyF.Ptr QProgressBarConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QProgressBar" castQWidgetToQProgressBar :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QProgressBarConst
+foreign import ccall "gencast__QProgressBar__QObject" castQProgressBarToQObject :: HoppyF.Ptr QProgressBarConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QProgressBar" castQObjectToQProgressBar :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QProgressBarConstPtr a => QProgressBarValue a where
+#else
+instance QProgressBarConstPtr a => QProgressBarValue a where
+#endif
+  withQProgressBarPtr = HoppyP.flip ($) . toQProgressBarConst
+
+class (M280.QWidgetConstPtr this) => QProgressBarConstPtr this where
+  toQProgressBarConst :: this -> QProgressBarConst
+
+alignment :: (QProgressBarValue arg'1) => arg'1 -> HoppyP.IO M58.QtAlignment
+alignment arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtAlignment
+  (alignment' arg'1')
+
+format :: (QProgressBarValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+format arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (format' arg'1')
+
+invertedAppearance :: (QProgressBarValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+invertedAppearance arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (invertedAppearance' arg'1')
+
+maximum :: (QProgressBarValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+maximum arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (maximum' arg'1')
+
+minimum :: (QProgressBarValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+minimum arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (minimum' arg'1')
+
+orientation :: (QProgressBarValue arg'1) => arg'1 -> HoppyP.IO M58.QtOrientation
+orientation arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (orientation' arg'1')
+
+text :: (QProgressBarValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+text arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (text' arg'1')
+
+textDirection :: (QProgressBarValue arg'1) => arg'1 -> HoppyP.IO QProgressBarDirection
+textDirection arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (textDirection' arg'1')
+
+isTextVisible :: (QProgressBarValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isTextVisible arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isTextVisible' arg'1')
+
+value :: (QProgressBarValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+value arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (value' arg'1')
+
+class (QProgressBarConstPtr this, M280.QWidgetPtr this) => QProgressBarPtr this where
+  toQProgressBar :: this -> QProgressBar
+
+setAlignment :: (QProgressBarPtr arg'1, M58.IsQtAlignment arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtAlignment $ M58.toQtAlignment arg'2 in
+  (setAlignment' arg'1' arg'2')
+
+setFormat :: (QProgressBarPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setFormat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFormat' arg'1' arg'2')
+
+setInvertedAppearance :: (QProgressBarPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setInvertedAppearance arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setInvertedAppearance' arg'1' arg'2')
+
+setMaximum :: (QProgressBarPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setMaximum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setMaximum' arg'1' arg'2')
+
+setMinimum :: (QProgressBarPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setMinimum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setMinimum' arg'1' arg'2')
+
+setOrientation :: (QProgressBarPtr arg'1) => arg'1 -> M58.QtOrientation -> HoppyP.IO ()
+setOrientation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setOrientation' arg'1' arg'2')
+
+reset :: (QProgressBarPtr arg'1) => arg'1 -> HoppyP.IO ()
+reset arg'1 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  (reset' arg'1')
+
+resetFormat :: (QProgressBarPtr arg'1) => arg'1 -> HoppyP.IO ()
+resetFormat arg'1 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  (resetFormat' arg'1')
+
+setRange :: (QProgressBarPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setRange arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setRange' arg'1' arg'2' arg'3')
+
+setTextDirection :: (QProgressBarPtr arg'1) => arg'1 -> QProgressBarDirection -> HoppyP.IO ()
+setTextDirection arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setTextDirection' arg'1' arg'2')
+
+setTextVisible :: (QProgressBarPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setTextVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setTextVisible' arg'1' arg'2')
+
+setValue :: (QProgressBarPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setValue' 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 M280.QWidgetConstPtr QProgressBarConst where
+  toQWidgetConst (QProgressBarConst ptr') = M280.QWidgetConst $ castQProgressBarToQWidget ptr'
+  toQWidgetConst (QProgressBarConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQProgressBarToQWidget ptr'
+
+instance M30.QObjectConstPtr QProgressBarConst where
+  toQObjectConst (QProgressBarConst ptr') = M30.QObjectConst $ castQProgressBarToQObject ptr'
+  toQObjectConst (QProgressBarConstGc fptr' ptr') = M30.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 M280.QWidgetConstPtr QProgressBar where
+  toQWidgetConst (QProgressBar ptr') = M280.QWidgetConst $ castQProgressBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+  toQWidgetConst (QProgressBarGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQProgressBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+
+instance M280.QWidgetPtr QProgressBar where
+  toQWidget (QProgressBar ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQProgressBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+  toQWidget (QProgressBarGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQProgressBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+
+instance M30.QObjectConstPtr QProgressBar where
+  toQObjectConst (QProgressBar ptr') = M30.QObjectConst $ castQProgressBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+  toQObjectConst (QProgressBarGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQProgressBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+
+instance M30.QObjectPtr QProgressBar where
+  toQObject (QProgressBar ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQProgressBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+  toQObject (QProgressBarGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQProgressBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+
+new ::  HoppyP.IO QProgressBar
+new =
+  HoppyP.fmap QProgressBar
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QProgressBar
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QProgressBar
+  (newWithParent' arg'1')
+
+class QProgressBarSuper a where
+  downToQProgressBar :: a -> QProgressBar
+
+instance QProgressBarSuper M280.QWidget where
+  downToQProgressBar = castQProgressBarToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QProgressBarConst $ castQWidgetToQProgressBar ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QProgressBarConstGc fptr' $ castQWidgetToQProgressBar ptr'
+instance QProgressBarSuper M30.QObject where
+  downToQProgressBar = castQProgressBarToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QProgressBarConst $ castQObjectToQProgressBar ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QProgressBarConstGc fptr' $ castQObjectToQProgressBar ptr'
+
+class QProgressBarSuperConst a where
+  downToQProgressBarConst :: a -> QProgressBarConst
+
+instance QProgressBarSuperConst M280.QWidgetConst where
+  downToQProgressBarConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QProgressBarConst $ castQWidgetToQProgressBar ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QProgressBarConstGc fptr' $ castQWidgetToQProgressBar ptr'
+instance QProgressBarSuperConst M30.QObjectConst where
+  downToQProgressBarConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QProgressBarConst $ castQObjectToQProgressBar ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QProgressBarDirection where
+  fromEnum TopToBottom = 0
+  fromEnum BottomToTop = 1
+  
+  toEnum (0) = TopToBottom
+  toEnum (1) = BottomToTop
+  toEnum n' = HoppyP.error $ "Unknown QProgressBarDirection numeric value: " ++ HoppyP.show n'
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,320 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  QPushButtonSuper (..),
+  QPushButtonSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M162
+import qualified Graphics.UI.Qtah.Generated.Widgets.QMenu as M238
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QPushButton)
+foreign import ccall "genpop__QPushButton_newWithText" newWithText' ::  HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr QPushButton)
+foreign import ccall "genpop__QPushButton_newWithTextAndParent" newWithTextAndParent' ::  HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M280.QWidget -> HoppyP.IO (HoppyF.Ptr QPushButton)
+foreign import ccall "genpop__QPushButton_autoDefault" autoDefault' ::  HoppyF.Ptr QPushButtonConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QPushButton_setAutoDefault" setAutoDefault' ::  HoppyF.Ptr QPushButton -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QPushButton_isDefault" isDefault' ::  HoppyF.Ptr QPushButtonConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QPushButton_setDefault" setDefault' ::  HoppyF.Ptr QPushButton -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QPushButton_isFlat" isFlat' ::  HoppyF.Ptr QPushButtonConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QPushButton_setFlat" setFlat' ::  HoppyF.Ptr QPushButton -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QPushButton_menu" menu' ::  HoppyF.Ptr QPushButtonConst -> HoppyP.IO (HoppyF.Ptr M238.QMenu)
+foreign import ccall "genpop__QPushButton_setMenu" setMenu' ::  HoppyF.Ptr QPushButton -> HoppyF.Ptr M238.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 M162.QAbstractButtonConst
+foreign import ccall "gencast__QAbstractButton__QPushButton" castQAbstractButtonToQPushButton :: HoppyF.Ptr M162.QAbstractButtonConst -> HoppyF.Ptr QPushButtonConst
+foreign import ccall "gencast__QPushButton__QWidget" castQPushButtonToQWidget :: HoppyF.Ptr QPushButtonConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QPushButton" castQWidgetToQPushButton :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QPushButtonConst
+foreign import ccall "gencast__QPushButton__QObject" castQPushButtonToQObject :: HoppyF.Ptr QPushButtonConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QPushButton" castQObjectToQPushButton :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QPushButtonConstPtr a => QPushButtonValue a where
+#else
+instance QPushButtonConstPtr a => QPushButtonValue a where
+#endif
+  withQPushButtonPtr = HoppyP.flip ($) . toQPushButtonConst
+
+class (M162.QAbstractButtonConstPtr this) => QPushButtonConstPtr this where
+  toQPushButtonConst :: this -> QPushButtonConst
+
+autoDefault :: (QPushButtonValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+autoDefault arg'1 =
+  withQPushButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (autoDefault' arg'1')
+
+isDefault :: (QPushButtonValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isDefault arg'1 =
+  withQPushButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isDefault' arg'1')
+
+isFlat :: (QPushButtonValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isFlat arg'1 =
+  withQPushButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isFlat' arg'1')
+
+menu :: (QPushButtonValue arg'1) => arg'1 -> HoppyP.IO M238.QMenu
+menu arg'1 =
+  withQPushButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M238.QMenu
+  (menu' arg'1')
+
+class (QPushButtonConstPtr this, M162.QAbstractButtonPtr this) => QPushButtonPtr this where
+  toQPushButton :: this -> QPushButton
+
+setAutoDefault :: (QPushButtonPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setAutoDefault arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPushButton arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setAutoDefault' arg'1' arg'2')
+
+setDefault :: (QPushButtonPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setDefault arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPushButton arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setDefault' arg'1' arg'2')
+
+setFlat :: (QPushButtonPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setFlat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPushButton arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setFlat' arg'1' arg'2')
+
+setMenu :: (QPushButtonPtr arg'1, M238.QMenuPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setMenu arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPushButton arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M238.toQMenu arg'2) $ \arg'2' ->
+  (setMenu' arg'1' arg'2')
+
+showMenu :: (QPushButtonPtr arg'1) => arg'1 -> 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 M162.QAbstractButtonConstPtr QPushButtonConst where
+  toQAbstractButtonConst (QPushButtonConst ptr') = M162.QAbstractButtonConst $ castQPushButtonToQAbstractButton ptr'
+  toQAbstractButtonConst (QPushButtonConstGc fptr' ptr') = M162.QAbstractButtonConstGc fptr' $ castQPushButtonToQAbstractButton ptr'
+
+instance M280.QWidgetConstPtr QPushButtonConst where
+  toQWidgetConst (QPushButtonConst ptr') = M280.QWidgetConst $ castQPushButtonToQWidget ptr'
+  toQWidgetConst (QPushButtonConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQPushButtonToQWidget ptr'
+
+instance M30.QObjectConstPtr QPushButtonConst where
+  toQObjectConst (QPushButtonConst ptr') = M30.QObjectConst $ castQPushButtonToQObject ptr'
+  toQObjectConst (QPushButtonConstGc fptr' ptr') = M30.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 M162.QAbstractButtonConstPtr QPushButton where
+  toQAbstractButtonConst (QPushButton ptr') = M162.QAbstractButtonConst $ castQPushButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+  toQAbstractButtonConst (QPushButtonGc fptr' ptr') = M162.QAbstractButtonConstGc fptr' $ castQPushButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+
+instance M162.QAbstractButtonPtr QPushButton where
+  toQAbstractButton (QPushButton ptr') = M162.QAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr M162.QAbstractButtonConst -> HoppyF.Ptr M162.QAbstractButton) $ castQPushButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+  toQAbstractButton (QPushButtonGc fptr' ptr') = M162.QAbstractButtonGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M162.QAbstractButtonConst -> HoppyF.Ptr M162.QAbstractButton) $ castQPushButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+
+instance M280.QWidgetConstPtr QPushButton where
+  toQWidgetConst (QPushButton ptr') = M280.QWidgetConst $ castQPushButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+  toQWidgetConst (QPushButtonGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQPushButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+
+instance M280.QWidgetPtr QPushButton where
+  toQWidget (QPushButton ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQPushButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+  toQWidget (QPushButtonGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQPushButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+
+instance M30.QObjectConstPtr QPushButton where
+  toQObjectConst (QPushButton ptr') = M30.QObjectConst $ castQPushButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+  toQObjectConst (QPushButtonGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQPushButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+
+instance M30.QObjectPtr QPushButton where
+  toQObject (QPushButton ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQPushButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+  toQObject (QPushButtonGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQPushButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+
+new ::  HoppyP.IO QPushButton
+new =
+  HoppyP.fmap QPushButton
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QPushButton
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QPushButton
+  (newWithParent' arg'1')
+
+newWithText :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO QPushButton
+newWithText arg'1 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPushButton
+  (newWithText' arg'1')
+
+newWithTextAndParent :: (M46.QStringValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QPushButton
+newWithTextAndParent arg'1 arg'2 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QPushButton
+  (newWithTextAndParent' arg'1' arg'2')
+
+class QPushButtonSuper a where
+  downToQPushButton :: a -> QPushButton
+
+instance QPushButtonSuper M162.QAbstractButton where
+  downToQPushButton = castQPushButtonToNonconst . cast' . M162.castQAbstractButtonToConst
+    where
+      cast' (M162.QAbstractButtonConst ptr') = QPushButtonConst $ castQAbstractButtonToQPushButton ptr'
+      cast' (M162.QAbstractButtonConstGc fptr' ptr') = QPushButtonConstGc fptr' $ castQAbstractButtonToQPushButton ptr'
+instance QPushButtonSuper M280.QWidget where
+  downToQPushButton = castQPushButtonToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QPushButtonConst $ castQWidgetToQPushButton ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QPushButtonConstGc fptr' $ castQWidgetToQPushButton ptr'
+instance QPushButtonSuper M30.QObject where
+  downToQPushButton = castQPushButtonToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QPushButtonConst $ castQObjectToQPushButton ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QPushButtonConstGc fptr' $ castQObjectToQPushButton ptr'
+
+class QPushButtonSuperConst a where
+  downToQPushButtonConst :: a -> QPushButtonConst
+
+instance QPushButtonSuperConst M162.QAbstractButtonConst where
+  downToQPushButtonConst = cast'
+    where
+      cast' (M162.QAbstractButtonConst ptr') = QPushButtonConst $ castQAbstractButtonToQPushButton ptr'
+      cast' (M162.QAbstractButtonConstGc fptr' ptr') = QPushButtonConstGc fptr' $ castQAbstractButtonToQPushButton ptr'
+instance QPushButtonSuperConst M280.QWidgetConst where
+  downToQPushButtonConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QPushButtonConst $ castQWidgetToQPushButton ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QPushButtonConstGc fptr' $ castQWidgetToQPushButton ptr'
+instance QPushButtonSuperConst M30.QObjectConst where
+  downToQPushButtonConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QPushButtonConst $ castQObjectToQPushButton ptr'
+      cast' (M30.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,248 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M162
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QRadioButton)
+foreign import ccall "genpop__QRadioButton_newWithText" newWithText' ::  HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr QRadioButton)
+foreign import ccall "genpop__QRadioButton_newWithTextAndParent" newWithTextAndParent' ::  HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M280.QWidget -> HoppyP.IO (HoppyF.Ptr QRadioButton)
+foreign import ccall "gencast__QRadioButton__QAbstractButton" castQRadioButtonToQAbstractButton :: HoppyF.Ptr QRadioButtonConst -> HoppyF.Ptr M162.QAbstractButtonConst
+foreign import ccall "gencast__QAbstractButton__QRadioButton" castQAbstractButtonToQRadioButton :: HoppyF.Ptr M162.QAbstractButtonConst -> HoppyF.Ptr QRadioButtonConst
+foreign import ccall "gencast__QRadioButton__QWidget" castQRadioButtonToQWidget :: HoppyF.Ptr QRadioButtonConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QRadioButton" castQWidgetToQRadioButton :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QRadioButtonConst
+foreign import ccall "gencast__QRadioButton__QObject" castQRadioButtonToQObject :: HoppyF.Ptr QRadioButtonConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QRadioButton" castQObjectToQRadioButton :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QRadioButtonConstPtr a => QRadioButtonValue a where
+#else
+instance QRadioButtonConstPtr a => QRadioButtonValue a where
+#endif
+  withQRadioButtonPtr = HoppyP.flip ($) . toQRadioButtonConst
+
+class (M162.QAbstractButtonConstPtr this) => QRadioButtonConstPtr this where
+  toQRadioButtonConst :: this -> QRadioButtonConst
+
+class (QRadioButtonConstPtr this, M162.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 M162.QAbstractButtonConstPtr QRadioButtonConst where
+  toQAbstractButtonConst (QRadioButtonConst ptr') = M162.QAbstractButtonConst $ castQRadioButtonToQAbstractButton ptr'
+  toQAbstractButtonConst (QRadioButtonConstGc fptr' ptr') = M162.QAbstractButtonConstGc fptr' $ castQRadioButtonToQAbstractButton ptr'
+
+instance M280.QWidgetConstPtr QRadioButtonConst where
+  toQWidgetConst (QRadioButtonConst ptr') = M280.QWidgetConst $ castQRadioButtonToQWidget ptr'
+  toQWidgetConst (QRadioButtonConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQRadioButtonToQWidget ptr'
+
+instance M30.QObjectConstPtr QRadioButtonConst where
+  toQObjectConst (QRadioButtonConst ptr') = M30.QObjectConst $ castQRadioButtonToQObject ptr'
+  toQObjectConst (QRadioButtonConstGc fptr' ptr') = M30.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 M162.QAbstractButtonConstPtr QRadioButton where
+  toQAbstractButtonConst (QRadioButton ptr') = M162.QAbstractButtonConst $ castQRadioButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+  toQAbstractButtonConst (QRadioButtonGc fptr' ptr') = M162.QAbstractButtonConstGc fptr' $ castQRadioButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+
+instance M162.QAbstractButtonPtr QRadioButton where
+  toQAbstractButton (QRadioButton ptr') = M162.QAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr M162.QAbstractButtonConst -> HoppyF.Ptr M162.QAbstractButton) $ castQRadioButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+  toQAbstractButton (QRadioButtonGc fptr' ptr') = M162.QAbstractButtonGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M162.QAbstractButtonConst -> HoppyF.Ptr M162.QAbstractButton) $ castQRadioButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+
+instance M280.QWidgetConstPtr QRadioButton where
+  toQWidgetConst (QRadioButton ptr') = M280.QWidgetConst $ castQRadioButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+  toQWidgetConst (QRadioButtonGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQRadioButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+
+instance M280.QWidgetPtr QRadioButton where
+  toQWidget (QRadioButton ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQRadioButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+  toQWidget (QRadioButtonGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQRadioButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+
+instance M30.QObjectConstPtr QRadioButton where
+  toQObjectConst (QRadioButton ptr') = M30.QObjectConst $ castQRadioButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+  toQObjectConst (QRadioButtonGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQRadioButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+
+instance M30.QObjectPtr QRadioButton where
+  toQObject (QRadioButton ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQRadioButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+  toQObject (QRadioButtonGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQRadioButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+
+new ::  HoppyP.IO QRadioButton
+new =
+  HoppyP.fmap QRadioButton
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QRadioButton
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QRadioButton
+  (newWithParent' arg'1')
+
+newWithText :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO QRadioButton
+newWithText arg'1 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QRadioButton
+  (newWithText' arg'1')
+
+newWithTextAndParent :: (M46.QStringValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QRadioButton
+newWithTextAndParent arg'1 arg'2 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QRadioButton
+  (newWithTextAndParent' arg'1' arg'2')
+
+class QRadioButtonSuper a where
+  downToQRadioButton :: a -> QRadioButton
+
+instance QRadioButtonSuper M162.QAbstractButton where
+  downToQRadioButton = castQRadioButtonToNonconst . cast' . M162.castQAbstractButtonToConst
+    where
+      cast' (M162.QAbstractButtonConst ptr') = QRadioButtonConst $ castQAbstractButtonToQRadioButton ptr'
+      cast' (M162.QAbstractButtonConstGc fptr' ptr') = QRadioButtonConstGc fptr' $ castQAbstractButtonToQRadioButton ptr'
+instance QRadioButtonSuper M280.QWidget where
+  downToQRadioButton = castQRadioButtonToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QRadioButtonConst $ castQWidgetToQRadioButton ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QRadioButtonConstGc fptr' $ castQWidgetToQRadioButton ptr'
+instance QRadioButtonSuper M30.QObject where
+  downToQRadioButton = castQRadioButtonToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QRadioButtonConst $ castQObjectToQRadioButton ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QRadioButtonConstGc fptr' $ castQObjectToQRadioButton ptr'
+
+class QRadioButtonSuperConst a where
+  downToQRadioButtonConst :: a -> QRadioButtonConst
+
+instance QRadioButtonSuperConst M162.QAbstractButtonConst where
+  downToQRadioButtonConst = cast'
+    where
+      cast' (M162.QAbstractButtonConst ptr') = QRadioButtonConst $ castQAbstractButtonToQRadioButton ptr'
+      cast' (M162.QAbstractButtonConstGc fptr' ptr') = QRadioButtonConstGc fptr' $ castQAbstractButtonToQRadioButton ptr'
+instance QRadioButtonSuperConst M280.QWidgetConst where
+  downToQRadioButtonConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QRadioButtonConst $ castQWidgetToQRadioButton ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QRadioButtonConstGc fptr' $ castQWidgetToQRadioButton ptr'
+instance QRadioButtonSuperConst M30.QObjectConst where
+  downToQRadioButtonConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QRadioButtonConst $ castQObjectToQRadioButton ptr'
+      cast' (M30.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,255 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M42
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QRubberBand)
+foreign import ccall "genpop__QRubberBand_move" move' ::  HoppyF.Ptr QRubberBand -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRubberBand_resize" resize' ::  HoppyF.Ptr QRubberBand -> HoppyF.Ptr M42.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRubberBand_setGeometry" setGeometry' ::  HoppyF.Ptr QRubberBand -> HoppyF.Ptr M38.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 M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QRubberBand" castQWidgetToQRubberBand :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QRubberBandConst
+foreign import ccall "gencast__QRubberBand__QObject" castQRubberBandToQObject :: HoppyF.Ptr QRubberBandConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QRubberBand" castQObjectToQRubberBand :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QRubberBandConstPtr a => QRubberBandValue a where
+#else
+instance QRubberBandConstPtr a => QRubberBandValue a where
+#endif
+  withQRubberBandPtr = HoppyP.flip ($) . toQRubberBandConst
+
+class (M280.QWidgetConstPtr this) => QRubberBandConstPtr this where
+  toQRubberBandConst :: this -> QRubberBandConst
+
+shape :: (QRubberBandValue arg'1) => arg'1 -> HoppyP.IO QRubberBandShape
+shape arg'1 =
+  withQRubberBandPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (shape' arg'1')
+
+class (QRubberBandConstPtr this, M280.QWidgetPtr this) => QRubberBandPtr this where
+  toQRubberBand :: this -> QRubberBand
+
+move :: (QRubberBandPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+move arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRubberBand arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (move' arg'1' arg'2')
+
+resize :: (QRubberBandPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRubberBand arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (resize' arg'1' arg'2')
+
+setGeometry :: (QRubberBandPtr arg'1, M38.QRectValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setGeometry arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRubberBand arg'1) $ \arg'1' ->
+  M38.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 M280.QWidgetConstPtr QRubberBandConst where
+  toQWidgetConst (QRubberBandConst ptr') = M280.QWidgetConst $ castQRubberBandToQWidget ptr'
+  toQWidgetConst (QRubberBandConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQRubberBandToQWidget ptr'
+
+instance M30.QObjectConstPtr QRubberBandConst where
+  toQObjectConst (QRubberBandConst ptr') = M30.QObjectConst $ castQRubberBandToQObject ptr'
+  toQObjectConst (QRubberBandConstGc fptr' ptr') = M30.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 M280.QWidgetConstPtr QRubberBand where
+  toQWidgetConst (QRubberBand ptr') = M280.QWidgetConst $ castQRubberBandToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+  toQWidgetConst (QRubberBandGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQRubberBandToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+
+instance M280.QWidgetPtr QRubberBand where
+  toQWidget (QRubberBand ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQRubberBandToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+  toQWidget (QRubberBandGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQRubberBandToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+
+instance M30.QObjectConstPtr QRubberBand where
+  toQObjectConst (QRubberBand ptr') = M30.QObjectConst $ castQRubberBandToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+  toQObjectConst (QRubberBandGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQRubberBandToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+
+instance M30.QObjectPtr QRubberBand where
+  toQObject (QRubberBand ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQRubberBandToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+  toQObject (QRubberBandGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQRubberBandToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+
+new ::  QRubberBandShape -> HoppyP.IO QRubberBand
+new arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  HoppyP.fmap QRubberBand
+  (new' arg'1')
+
+newWithParent :: (M280.QWidgetPtr arg'2) => QRubberBandShape -> arg'2 -> HoppyP.IO QRubberBand
+newWithParent arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QRubberBand
+  (newWithParent' arg'1' arg'2')
+
+class QRubberBandSuper a where
+  downToQRubberBand :: a -> QRubberBand
+
+instance QRubberBandSuper M280.QWidget where
+  downToQRubberBand = castQRubberBandToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QRubberBandConst $ castQWidgetToQRubberBand ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QRubberBandConstGc fptr' $ castQWidgetToQRubberBand ptr'
+instance QRubberBandSuper M30.QObject where
+  downToQRubberBand = castQRubberBandToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QRubberBandConst $ castQObjectToQRubberBand ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QRubberBandConstGc fptr' $ castQObjectToQRubberBand ptr'
+
+class QRubberBandSuperConst a where
+  downToQRubberBandConst :: a -> QRubberBandConst
+
+instance QRubberBandSuperConst M280.QWidgetConst where
+  downToQRubberBandConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QRubberBandConst $ castQWidgetToQRubberBand ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QRubberBandConstGc fptr' $ castQWidgetToQRubberBand ptr'
+instance QRubberBandSuperConst M30.QObjectConst where
+  downToQRubberBandConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QRubberBandConst $ castQObjectToQRubberBand ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QRubberBandShape where
+  fromEnum Line = 0
+  fromEnum Rectangle = 1
+  
+  toEnum (0) = Line
+  toEnum (1) = Rectangle
+  toEnum n' = HoppyP.error $ "Unknown QRubberBandShape numeric value: " ++ HoppyP.show n'
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,326 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QScrollArea (
+  castQScrollAreaToQAbstractScrollArea,
+  castQAbstractScrollAreaToQScrollArea,
+  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.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea as M168
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Prelude (($), (.), (/=), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QScrollArea_new" new' ::  HoppyP.IO (HoppyF.Ptr QScrollArea)
+foreign import ccall "genpop__QScrollArea_newWithParent" newWithParent' ::  HoppyF.Ptr M280.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 M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QScrollArea_ensureWidgetVisibleWithMargins" ensureWidgetVisibleWithMargins' ::  HoppyF.Ptr QScrollArea -> HoppyF.Ptr M280.QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QScrollArea_takeWidget" takeWidget' ::  HoppyF.Ptr QScrollArea -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "genpop__QScrollArea_widget" widget' ::  HoppyF.Ptr QScrollAreaConst -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "genpop__QScrollArea_setWidget" setWidget' ::  HoppyF.Ptr QScrollArea -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QScrollArea_widgetResizable" widgetResizable' ::  HoppyF.Ptr QScrollAreaConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QScrollArea_setWidgetResizable" setWidgetResizable' ::  HoppyF.Ptr QScrollArea -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QScrollArea__QAbstractScrollArea" castQScrollAreaToQAbstractScrollArea :: HoppyF.Ptr QScrollAreaConst -> HoppyF.Ptr M168.QAbstractScrollAreaConst
+foreign import ccall "gencast__QAbstractScrollArea__QScrollArea" castQAbstractScrollAreaToQScrollArea :: HoppyF.Ptr M168.QAbstractScrollAreaConst -> HoppyF.Ptr QScrollAreaConst
+foreign import ccall "gencast__QScrollArea__QWidget" castQScrollAreaToQWidget :: HoppyF.Ptr QScrollAreaConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QScrollArea" castQWidgetToQScrollArea :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QScrollAreaConst
+foreign import ccall "gencast__QScrollArea__QObject" castQScrollAreaToQObject :: HoppyF.Ptr QScrollAreaConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QScrollArea" castQObjectToQScrollArea :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QScrollAreaConstPtr a => QScrollAreaValue a where
+#else
+instance QScrollAreaConstPtr a => QScrollAreaValue a where
+#endif
+  withQScrollAreaPtr = HoppyP.flip ($) . toQScrollAreaConst
+
+class (M168.QAbstractScrollAreaConstPtr this) => QScrollAreaConstPtr this where
+  toQScrollAreaConst :: this -> QScrollAreaConst
+
+alignment :: (QScrollAreaValue arg'1) => arg'1 -> HoppyP.IO M58.QtAlignment
+alignment arg'1 =
+  withQScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtAlignment
+  (alignment' arg'1')
+
+widget :: (QScrollAreaValue arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+widget arg'1 =
+  withQScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (widget' arg'1')
+
+widgetResizable :: (QScrollAreaValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+widgetResizable arg'1 =
+  withQScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (widgetResizable' arg'1')
+
+class (QScrollAreaConstPtr this, M168.QAbstractScrollAreaPtr this) => QScrollAreaPtr this where
+  toQScrollArea :: this -> QScrollArea
+
+setAlignment :: (QScrollAreaPtr arg'1, M58.IsQtAlignment arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQScrollArea arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtAlignment $ M58.toQtAlignment arg'2 in
+  (setAlignment' arg'1' arg'2')
+
+ensureVisible :: (QScrollAreaPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+ensureVisible arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQScrollArea arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (ensureVisible' arg'1' arg'2' arg'3')
+
+ensureVisibleWithMargins :: (QScrollAreaPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (ensureVisibleWithMargins' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+ensureWidgetVisible :: (QScrollAreaPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+ensureWidgetVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQScrollArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (ensureWidgetVisible' arg'1' arg'2')
+
+ensureWidgetVisibleWithMargins :: (QScrollAreaPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> 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 (M280.toQWidget arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  (ensureWidgetVisibleWithMargins' arg'1' arg'2' arg'3' arg'4')
+
+takeWidget :: (QScrollAreaPtr arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+takeWidget arg'1 =
+  HoppyFHR.withCppPtr (toQScrollArea arg'1) $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (takeWidget' arg'1')
+
+setWidget :: (QScrollAreaPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQScrollArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (setWidget' arg'1' arg'2')
+
+setWidgetResizable :: (QScrollAreaPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setWidgetResizable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQScrollArea arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (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 M168.QAbstractScrollAreaConstPtr QScrollAreaConst where
+  toQAbstractScrollAreaConst (QScrollAreaConst ptr') = M168.QAbstractScrollAreaConst $ castQScrollAreaToQAbstractScrollArea ptr'
+  toQAbstractScrollAreaConst (QScrollAreaConstGc fptr' ptr') = M168.QAbstractScrollAreaConstGc fptr' $ castQScrollAreaToQAbstractScrollArea ptr'
+
+instance M280.QWidgetConstPtr QScrollAreaConst where
+  toQWidgetConst (QScrollAreaConst ptr') = M280.QWidgetConst $ castQScrollAreaToQWidget ptr'
+  toQWidgetConst (QScrollAreaConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQScrollAreaToQWidget ptr'
+
+instance M30.QObjectConstPtr QScrollAreaConst where
+  toQObjectConst (QScrollAreaConst ptr') = M30.QObjectConst $ castQScrollAreaToQObject ptr'
+  toQObjectConst (QScrollAreaConstGc fptr' ptr') = M30.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 M168.QAbstractScrollAreaConstPtr QScrollArea where
+  toQAbstractScrollAreaConst (QScrollArea ptr') = M168.QAbstractScrollAreaConst $ castQScrollAreaToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+  toQAbstractScrollAreaConst (QScrollAreaGc fptr' ptr') = M168.QAbstractScrollAreaConstGc fptr' $ castQScrollAreaToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+
+instance M168.QAbstractScrollAreaPtr QScrollArea where
+  toQAbstractScrollArea (QScrollArea ptr') = M168.QAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr M168.QAbstractScrollAreaConst -> HoppyF.Ptr M168.QAbstractScrollArea) $ castQScrollAreaToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+  toQAbstractScrollArea (QScrollAreaGc fptr' ptr') = M168.QAbstractScrollAreaGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M168.QAbstractScrollAreaConst -> HoppyF.Ptr M168.QAbstractScrollArea) $ castQScrollAreaToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+
+instance M280.QWidgetConstPtr QScrollArea where
+  toQWidgetConst (QScrollArea ptr') = M280.QWidgetConst $ castQScrollAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+  toQWidgetConst (QScrollAreaGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQScrollAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+
+instance M280.QWidgetPtr QScrollArea where
+  toQWidget (QScrollArea ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQScrollAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+  toQWidget (QScrollAreaGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQScrollAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+
+instance M30.QObjectConstPtr QScrollArea where
+  toQObjectConst (QScrollArea ptr') = M30.QObjectConst $ castQScrollAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+  toQObjectConst (QScrollAreaGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQScrollAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+
+instance M30.QObjectPtr QScrollArea where
+  toQObject (QScrollArea ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQScrollAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+  toQObject (QScrollAreaGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQScrollAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+
+new ::  HoppyP.IO QScrollArea
+new =
+  HoppyP.fmap QScrollArea
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QScrollArea
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QScrollArea
+  (newWithParent' arg'1')
+
+class QScrollAreaSuper a where
+  downToQScrollArea :: a -> QScrollArea
+
+instance QScrollAreaSuper M168.QAbstractScrollArea where
+  downToQScrollArea = castQScrollAreaToNonconst . cast' . M168.castQAbstractScrollAreaToConst
+    where
+      cast' (M168.QAbstractScrollAreaConst ptr') = QScrollAreaConst $ castQAbstractScrollAreaToQScrollArea ptr'
+      cast' (M168.QAbstractScrollAreaConstGc fptr' ptr') = QScrollAreaConstGc fptr' $ castQAbstractScrollAreaToQScrollArea ptr'
+instance QScrollAreaSuper M280.QWidget where
+  downToQScrollArea = castQScrollAreaToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QScrollAreaConst $ castQWidgetToQScrollArea ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QScrollAreaConstGc fptr' $ castQWidgetToQScrollArea ptr'
+instance QScrollAreaSuper M30.QObject where
+  downToQScrollArea = castQScrollAreaToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QScrollAreaConst $ castQObjectToQScrollArea ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QScrollAreaConstGc fptr' $ castQObjectToQScrollArea ptr'
+
+class QScrollAreaSuperConst a where
+  downToQScrollAreaConst :: a -> QScrollAreaConst
+
+instance QScrollAreaSuperConst M168.QAbstractScrollAreaConst where
+  downToQScrollAreaConst = cast'
+    where
+      cast' (M168.QAbstractScrollAreaConst ptr') = QScrollAreaConst $ castQAbstractScrollAreaToQScrollArea ptr'
+      cast' (M168.QAbstractScrollAreaConstGc fptr' ptr') = QScrollAreaConstGc fptr' $ castQAbstractScrollAreaToQScrollArea ptr'
+instance QScrollAreaSuperConst M280.QWidgetConst where
+  downToQScrollAreaConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QScrollAreaConst $ castQWidgetToQScrollArea ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QScrollAreaConstGc fptr' $ castQWidgetToQScrollArea ptr'
+instance QScrollAreaSuperConst M30.QObjectConst where
+  downToQScrollAreaConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QScrollAreaConst $ castQObjectToQScrollArea ptr'
+      cast' (M30.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,249 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider as M170
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QScrollBar)
+foreign import ccall "gencast__QScrollBar__QAbstractSlider" castQScrollBarToQAbstractSlider :: HoppyF.Ptr QScrollBarConst -> HoppyF.Ptr M170.QAbstractSliderConst
+foreign import ccall "gencast__QAbstractSlider__QScrollBar" castQAbstractSliderToQScrollBar :: HoppyF.Ptr M170.QAbstractSliderConst -> HoppyF.Ptr QScrollBarConst
+foreign import ccall "gencast__QScrollBar__QWidget" castQScrollBarToQWidget :: HoppyF.Ptr QScrollBarConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QScrollBar" castQWidgetToQScrollBar :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QScrollBarConst
+foreign import ccall "gencast__QScrollBar__QObject" castQScrollBarToQObject :: HoppyF.Ptr QScrollBarConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QScrollBar" castQObjectToQScrollBar :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QScrollBarConstPtr a => QScrollBarValue a where
+#else
+instance QScrollBarConstPtr a => QScrollBarValue a where
+#endif
+  withQScrollBarPtr = HoppyP.flip ($) . toQScrollBarConst
+
+class (M170.QAbstractSliderConstPtr this) => QScrollBarConstPtr this where
+  toQScrollBarConst :: this -> QScrollBarConst
+
+class (QScrollBarConstPtr this, M170.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 M170.QAbstractSliderConstPtr QScrollBarConst where
+  toQAbstractSliderConst (QScrollBarConst ptr') = M170.QAbstractSliderConst $ castQScrollBarToQAbstractSlider ptr'
+  toQAbstractSliderConst (QScrollBarConstGc fptr' ptr') = M170.QAbstractSliderConstGc fptr' $ castQScrollBarToQAbstractSlider ptr'
+
+instance M280.QWidgetConstPtr QScrollBarConst where
+  toQWidgetConst (QScrollBarConst ptr') = M280.QWidgetConst $ castQScrollBarToQWidget ptr'
+  toQWidgetConst (QScrollBarConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQScrollBarToQWidget ptr'
+
+instance M30.QObjectConstPtr QScrollBarConst where
+  toQObjectConst (QScrollBarConst ptr') = M30.QObjectConst $ castQScrollBarToQObject ptr'
+  toQObjectConst (QScrollBarConstGc fptr' ptr') = M30.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 M170.QAbstractSliderConstPtr QScrollBar where
+  toQAbstractSliderConst (QScrollBar ptr') = M170.QAbstractSliderConst $ castQScrollBarToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+  toQAbstractSliderConst (QScrollBarGc fptr' ptr') = M170.QAbstractSliderConstGc fptr' $ castQScrollBarToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+
+instance M170.QAbstractSliderPtr QScrollBar where
+  toQAbstractSlider (QScrollBar ptr') = M170.QAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr M170.QAbstractSliderConst -> HoppyF.Ptr M170.QAbstractSlider) $ castQScrollBarToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+  toQAbstractSlider (QScrollBarGc fptr' ptr') = M170.QAbstractSliderGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M170.QAbstractSliderConst -> HoppyF.Ptr M170.QAbstractSlider) $ castQScrollBarToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+
+instance M280.QWidgetConstPtr QScrollBar where
+  toQWidgetConst (QScrollBar ptr') = M280.QWidgetConst $ castQScrollBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+  toQWidgetConst (QScrollBarGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQScrollBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+
+instance M280.QWidgetPtr QScrollBar where
+  toQWidget (QScrollBar ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQScrollBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+  toQWidget (QScrollBarGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQScrollBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+
+instance M30.QObjectConstPtr QScrollBar where
+  toQObjectConst (QScrollBar ptr') = M30.QObjectConst $ castQScrollBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+  toQObjectConst (QScrollBarGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQScrollBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+
+instance M30.QObjectPtr QScrollBar where
+  toQObject (QScrollBar ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQScrollBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+  toQObject (QScrollBarGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQScrollBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+
+new ::  HoppyP.IO QScrollBar
+new =
+  HoppyP.fmap QScrollBar
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QScrollBar
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QScrollBar
+  (newWithParent' arg'1')
+
+newWithOrientation ::  M58.QtOrientation -> HoppyP.IO QScrollBar
+newWithOrientation arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  HoppyP.fmap QScrollBar
+  (newWithOrientation' arg'1')
+
+newWithOrientationAndParent :: (M280.QWidgetPtr arg'2) => M58.QtOrientation -> arg'2 -> HoppyP.IO QScrollBar
+newWithOrientationAndParent arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QScrollBar
+  (newWithOrientationAndParent' arg'1' arg'2')
+
+class QScrollBarSuper a where
+  downToQScrollBar :: a -> QScrollBar
+
+instance QScrollBarSuper M170.QAbstractSlider where
+  downToQScrollBar = castQScrollBarToNonconst . cast' . M170.castQAbstractSliderToConst
+    where
+      cast' (M170.QAbstractSliderConst ptr') = QScrollBarConst $ castQAbstractSliderToQScrollBar ptr'
+      cast' (M170.QAbstractSliderConstGc fptr' ptr') = QScrollBarConstGc fptr' $ castQAbstractSliderToQScrollBar ptr'
+instance QScrollBarSuper M280.QWidget where
+  downToQScrollBar = castQScrollBarToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QScrollBarConst $ castQWidgetToQScrollBar ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QScrollBarConstGc fptr' $ castQWidgetToQScrollBar ptr'
+instance QScrollBarSuper M30.QObject where
+  downToQScrollBar = castQScrollBarToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QScrollBarConst $ castQObjectToQScrollBar ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QScrollBarConstGc fptr' $ castQObjectToQScrollBar ptr'
+
+class QScrollBarSuperConst a where
+  downToQScrollBarConst :: a -> QScrollBarConst
+
+instance QScrollBarSuperConst M170.QAbstractSliderConst where
+  downToQScrollBarConst = cast'
+    where
+      cast' (M170.QAbstractSliderConst ptr') = QScrollBarConst $ castQAbstractSliderToQScrollBar ptr'
+      cast' (M170.QAbstractSliderConstGc fptr' ptr') = QScrollBarConstGc fptr' $ castQAbstractSliderToQScrollBar ptr'
+instance QScrollBarSuperConst M280.QWidgetConst where
+  downToQScrollBarConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QScrollBarConst $ castQWidgetToQScrollBar ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QScrollBarConstGc fptr' $ castQWidgetToQScrollBar ptr'
+instance QScrollBarSuperConst M30.QObjectConst where
+  downToQScrollBarConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QScrollBarConst $ castQObjectToQScrollBar ptr'
+      cast' (M30.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/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,486 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 (..),
+  defaultType,
+  buttonBox,
+  checkBox,
+  comboBox,
+  frame,
+  groupBox,
+  label,
+  line,
+  lineEdit,
+  pushButton,
+  radioButton,
+  slider,
+  spinBox,
+  tabWidget,
+  toolButton,
+  QSizePolicyPolicy (..),
+  QSizePolicyPolicyFlag (..),
+  ) where
+
+import Control.Monad ((>=>))
+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.Types as M58
+import Prelude (($), (++), (.), (/=), (==))
+import qualified Prelude as HoppyP
+
+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 HoppyFHR.CBool
+foreign import ccall "genpop__QSizePolicy_setHeightForWidth" setHeightForWidth' ::  HoppyF.Ptr QSizePolicy -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QSizePolicy_hasWidthForHeight" hasWidthForHeight' ::  HoppyF.Ptr QSizePolicyConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QSizePolicy_setWidthForHeight" setWidthForHeight' ::  HoppyF.Ptr QSizePolicy -> HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QSizePolicy_setRetainSizeWhenHidden" setRetainSizeWhenHidden' ::  HoppyF.Ptr QSizePolicy -> HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QSizePolicy_NE" nE' ::  HoppyF.Ptr QSizePolicyConst -> HoppyF.Ptr QSizePolicyConst -> HoppyP.IO HoppyFHR.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QSizePolicyConstPtr a => QSizePolicyValue a where
+#else
+instance QSizePolicyConstPtr a => QSizePolicyValue a where
+#endif
+  withQSizePolicyPtr = HoppyP.flip ($) . toQSizePolicyConst
+
+class (HoppyFHR.CppPtr this) => QSizePolicyConstPtr this where
+  toQSizePolicyConst :: this -> QSizePolicyConst
+
+controlType :: (QSizePolicyValue arg'1) => arg'1 -> HoppyP.IO QSizePolicyControlType
+controlType arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (controlType' arg'1')
+
+expandingDirections :: (QSizePolicyValue arg'1) => arg'1 -> HoppyP.IO M58.QtOrientations
+expandingDirections arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtOrientations
+  (expandingDirections' arg'1')
+
+hasHeightForWidth :: (QSizePolicyValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasHeightForWidth arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasHeightForWidth' arg'1')
+
+hasWidthForHeight :: (QSizePolicyValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasWidthForHeight arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasWidthForHeight' arg'1')
+
+horizontalPolicy :: (QSizePolicyValue arg'1) => arg'1 -> HoppyP.IO QSizePolicyPolicy
+horizontalPolicy arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (horizontalPolicy' arg'1')
+
+horizontalStretch :: (QSizePolicyValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+horizontalStretch arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (horizontalStretch' arg'1')
+
+verticalPolicy :: (QSizePolicyValue arg'1) => arg'1 -> HoppyP.IO QSizePolicyPolicy
+verticalPolicy arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (verticalPolicy' arg'1')
+
+verticalStretch :: (QSizePolicyValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+verticalStretch arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (verticalStretch' arg'1')
+
+retainSizeWhenHidden :: (QSizePolicyValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+retainSizeWhenHidden arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (retainSizeWhenHidden' arg'1')
+
+eQ :: (QSizePolicyValue arg'1, QSizePolicyValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (eQ' arg'1' arg'2')
+
+nE :: (QSizePolicyValue arg'1, QSizePolicyValue arg'2) => arg'1 -> 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.fmap (/= 0)
+  (nE' arg'1' arg'2')
+
+class (QSizePolicyConstPtr this) => QSizePolicyPtr this where
+  toQSizePolicy :: this -> QSizePolicy
+
+setControlType :: (QSizePolicyPtr arg'1) => arg'1 -> QSizePolicyControlType -> HoppyP.IO ()
+setControlType arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizePolicy arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setControlType' arg'1' arg'2')
+
+setHeightForWidth :: (QSizePolicyPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setHeightForWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizePolicy arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setHeightForWidth' arg'1' arg'2')
+
+setWidthForHeight :: (QSizePolicyPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setWidthForHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizePolicy arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setWidthForHeight' arg'1' arg'2')
+
+setHorizontalPolicy :: (QSizePolicyPtr arg'1) => arg'1 -> QSizePolicyPolicy -> HoppyP.IO ()
+setHorizontalPolicy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizePolicy arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setHorizontalPolicy' arg'1' arg'2')
+
+setHorizontalStretch :: (QSizePolicyPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setHorizontalStretch arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizePolicy arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setHorizontalStretch' arg'1' arg'2')
+
+setVerticalPolicy :: (QSizePolicyPtr arg'1) => arg'1 -> QSizePolicyPolicy -> HoppyP.IO ()
+setVerticalPolicy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizePolicy arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setVerticalPolicy' arg'1' arg'2')
+
+setVerticalStretch :: (QSizePolicyPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setVerticalStretch arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizePolicy arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setVerticalStretch' arg'1' arg'2')
+
+setRetainSizeWhenHidden :: (QSizePolicyPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setRetainSizeWhenHidden arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizePolicy arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setRetainSizeWhenHidden' arg'1' arg'2')
+
+transpose :: (QSizePolicyPtr arg'1) => arg'1 -> 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 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QSizePolicyControlType where
+  fromEnum DefaultType = 1
+  fromEnum ButtonBox = 2
+  fromEnum CheckBox = 4
+  fromEnum ComboBox = 8
+  fromEnum Frame = 16
+  fromEnum GroupBox = 32
+  fromEnum Label = 64
+  fromEnum Line = 128
+  fromEnum LineEdit = 256
+  fromEnum PushButton = 512
+  fromEnum RadioButton = 1024
+  fromEnum Slider = 2048
+  fromEnum SpinBox = 4096
+  fromEnum TabWidget = 8192
+  fromEnum ToolButton = 16384
+  
+  toEnum (1) = DefaultType
+  toEnum (2) = ButtonBox
+  toEnum (4) = CheckBox
+  toEnum (8) = ComboBox
+  toEnum (16) = Frame
+  toEnum (32) = GroupBox
+  toEnum (64) = Label
+  toEnum (128) = Line
+  toEnum (256) = LineEdit
+  toEnum (512) = PushButton
+  toEnum (1024) = RadioButton
+  toEnum (2048) = Slider
+  toEnum (4096) = SpinBox
+  toEnum (8192) = TabWidget
+  toEnum (16384) = ToolButton
+  toEnum n' = HoppyP.error $ "Unknown QSizePolicyControlType numeric value: " ++ HoppyP.show n'
+
+newtype QSizePolicyControlTypes = QSizePolicyControlTypes { fromQSizePolicyControlTypes :: HoppyFC.CInt }
+  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+class IsQSizePolicyControlTypes a where
+  toQSizePolicyControlTypes :: a -> QSizePolicyControlTypes
+
+instance IsQSizePolicyControlTypes (HoppyFC.CInt) where
+  toQSizePolicyControlTypes = QSizePolicyControlTypes
+instance IsQSizePolicyControlTypes (HoppyP.Int) where
+  toQSizePolicyControlTypes = QSizePolicyControlTypes . HoppyFHR.coerceIntegral
+instance IsQSizePolicyControlTypes QSizePolicyControlTypes where
+  toQSizePolicyControlTypes = HoppyP.id
+
+instance IsQSizePolicyControlTypes QSizePolicyControlType where
+  toQSizePolicyControlTypes = QSizePolicyControlTypes . HoppyFHR.coerceIntegral . HoppyP.fromEnum
+
+defaultType = QSizePolicyControlTypes 1
+buttonBox = QSizePolicyControlTypes 2
+checkBox = QSizePolicyControlTypes 4
+comboBox = QSizePolicyControlTypes 8
+frame = QSizePolicyControlTypes 16
+groupBox = QSizePolicyControlTypes 32
+label = QSizePolicyControlTypes 64
+line = QSizePolicyControlTypes 128
+lineEdit = QSizePolicyControlTypes 256
+pushButton = QSizePolicyControlTypes 512
+radioButton = QSizePolicyControlTypes 1024
+slider = QSizePolicyControlTypes 2048
+spinBox = QSizePolicyControlTypes 4096
+tabWidget = QSizePolicyControlTypes 8192
+toolButton = QSizePolicyControlTypes 16384
+
+data QSizePolicyPolicy =
+  Fixed
+  | Minimum
+  | Maximum
+  | Preferred
+  | Expanding
+  | MinimumExpanding
+  | Ignored
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QSizePolicyPolicy where
+  fromEnum Fixed = 0
+  fromEnum Minimum = 1
+  fromEnum Maximum = 4
+  fromEnum Preferred = 5
+  fromEnum Expanding = 7
+  fromEnum MinimumExpanding = 3
+  fromEnum Ignored = 13
+  
+  toEnum (0) = Fixed
+  toEnum (1) = Minimum
+  toEnum (4) = Maximum
+  toEnum (5) = Preferred
+  toEnum (7) = Expanding
+  toEnum (3) = MinimumExpanding
+  toEnum (13) = Ignored
+  toEnum n' = HoppyP.error $ "Unknown QSizePolicyPolicy numeric value: " ++ HoppyP.show n'
+
+data QSizePolicyPolicyFlag =
+  GrowFlag
+  | ExpandFlag
+  | ShrinkFlag
+  | IgnoreFlag
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QSizePolicyPolicyFlag where
+  fromEnum GrowFlag = 1
+  fromEnum ExpandFlag = 2
+  fromEnum ShrinkFlag = 4
+  fromEnum IgnoreFlag = 8
+  
+  toEnum (1) = GrowFlag
+  toEnum (2) = ExpandFlag
+  toEnum (4) = ShrinkFlag
+  toEnum (8) = IgnoreFlag
+  toEnum n' = HoppyP.error $ "Unknown QSizePolicyPolicyFlag numeric value: " ++ HoppyP.show n'
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,301 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider as M170
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.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 M280.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 M170.QAbstractSliderConst
+foreign import ccall "gencast__QAbstractSlider__QSlider" castQAbstractSliderToQSlider :: HoppyF.Ptr M170.QAbstractSliderConst -> HoppyF.Ptr QSliderConst
+foreign import ccall "gencast__QSlider__QWidget" castQSliderToQWidget :: HoppyF.Ptr QSliderConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QSlider" castQWidgetToQSlider :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QSliderConst
+foreign import ccall "gencast__QSlider__QObject" castQSliderToQObject :: HoppyF.Ptr QSliderConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QSlider" castQObjectToQSlider :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QSliderConstPtr a => QSliderValue a where
+#else
+instance QSliderConstPtr a => QSliderValue a where
+#endif
+  withQSliderPtr = HoppyP.flip ($) . toQSliderConst
+
+class (M170.QAbstractSliderConstPtr this) => QSliderConstPtr this where
+  toQSliderConst :: this -> QSliderConst
+
+tickInterval :: (QSliderValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+tickInterval arg'1 =
+  withQSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (tickInterval' arg'1')
+
+tickPosition :: (QSliderValue arg'1) => arg'1 -> HoppyP.IO QSliderTickPosition
+tickPosition arg'1 =
+  withQSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (tickPosition' arg'1')
+
+class (QSliderConstPtr this, M170.QAbstractSliderPtr this) => QSliderPtr this where
+  toQSlider :: this -> QSlider
+
+setTickInterval :: (QSliderPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setTickInterval arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSlider arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setTickInterval' arg'1' arg'2')
+
+setTickPosition :: (QSliderPtr arg'1) => arg'1 -> QSliderTickPosition -> HoppyP.IO ()
+setTickPosition arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSlider arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (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 M170.QAbstractSliderConstPtr QSliderConst where
+  toQAbstractSliderConst (QSliderConst ptr') = M170.QAbstractSliderConst $ castQSliderToQAbstractSlider ptr'
+  toQAbstractSliderConst (QSliderConstGc fptr' ptr') = M170.QAbstractSliderConstGc fptr' $ castQSliderToQAbstractSlider ptr'
+
+instance M280.QWidgetConstPtr QSliderConst where
+  toQWidgetConst (QSliderConst ptr') = M280.QWidgetConst $ castQSliderToQWidget ptr'
+  toQWidgetConst (QSliderConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQSliderToQWidget ptr'
+
+instance M30.QObjectConstPtr QSliderConst where
+  toQObjectConst (QSliderConst ptr') = M30.QObjectConst $ castQSliderToQObject ptr'
+  toQObjectConst (QSliderConstGc fptr' ptr') = M30.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 M170.QAbstractSliderConstPtr QSlider where
+  toQAbstractSliderConst (QSlider ptr') = M170.QAbstractSliderConst $ castQSliderToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+  toQAbstractSliderConst (QSliderGc fptr' ptr') = M170.QAbstractSliderConstGc fptr' $ castQSliderToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+
+instance M170.QAbstractSliderPtr QSlider where
+  toQAbstractSlider (QSlider ptr') = M170.QAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr M170.QAbstractSliderConst -> HoppyF.Ptr M170.QAbstractSlider) $ castQSliderToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+  toQAbstractSlider (QSliderGc fptr' ptr') = M170.QAbstractSliderGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M170.QAbstractSliderConst -> HoppyF.Ptr M170.QAbstractSlider) $ castQSliderToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+
+instance M280.QWidgetConstPtr QSlider where
+  toQWidgetConst (QSlider ptr') = M280.QWidgetConst $ castQSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+  toQWidgetConst (QSliderGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+
+instance M280.QWidgetPtr QSlider where
+  toQWidget (QSlider ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+  toQWidget (QSliderGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+
+instance M30.QObjectConstPtr QSlider where
+  toQObjectConst (QSlider ptr') = M30.QObjectConst $ castQSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+  toQObjectConst (QSliderGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+
+instance M30.QObjectPtr QSlider where
+  toQObject (QSlider ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+  toQObject (QSliderGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+
+new ::  HoppyP.IO QSlider
+new =
+  HoppyP.fmap QSlider
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QSlider
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QSlider
+  (newWithParent' arg'1')
+
+newWithOrientation ::  M58.QtOrientation -> HoppyP.IO QSlider
+newWithOrientation arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  HoppyP.fmap QSlider
+  (newWithOrientation' arg'1')
+
+newWithOrientationAndParent :: (M280.QWidgetPtr arg'2) => M58.QtOrientation -> arg'2 -> HoppyP.IO QSlider
+newWithOrientationAndParent arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QSlider
+  (newWithOrientationAndParent' arg'1' arg'2')
+
+class QSliderSuper a where
+  downToQSlider :: a -> QSlider
+
+instance QSliderSuper M170.QAbstractSlider where
+  downToQSlider = castQSliderToNonconst . cast' . M170.castQAbstractSliderToConst
+    where
+      cast' (M170.QAbstractSliderConst ptr') = QSliderConst $ castQAbstractSliderToQSlider ptr'
+      cast' (M170.QAbstractSliderConstGc fptr' ptr') = QSliderConstGc fptr' $ castQAbstractSliderToQSlider ptr'
+instance QSliderSuper M280.QWidget where
+  downToQSlider = castQSliderToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QSliderConst $ castQWidgetToQSlider ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QSliderConstGc fptr' $ castQWidgetToQSlider ptr'
+instance QSliderSuper M30.QObject where
+  downToQSlider = castQSliderToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QSliderConst $ castQObjectToQSlider ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QSliderConstGc fptr' $ castQObjectToQSlider ptr'
+
+class QSliderSuperConst a where
+  downToQSliderConst :: a -> QSliderConst
+
+instance QSliderSuperConst M170.QAbstractSliderConst where
+  downToQSliderConst = cast'
+    where
+      cast' (M170.QAbstractSliderConst ptr') = QSliderConst $ castQAbstractSliderToQSlider ptr'
+      cast' (M170.QAbstractSliderConstGc fptr' ptr') = QSliderConstGc fptr' $ castQAbstractSliderToQSlider ptr'
+instance QSliderSuperConst M280.QWidgetConst where
+  downToQSliderConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QSliderConst $ castQWidgetToQSlider ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QSliderConstGc fptr' $ castQWidgetToQSlider ptr'
+instance QSliderSuperConst M30.QObjectConst where
+  downToQSliderConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QSliderConst $ castQObjectToQSlider ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QSliderTickPosition where
+  fromEnum NoTicks = 0
+  fromEnum TicksBothSides = 1
+  fromEnum TicksAbove = 2
+  fromEnum TicksBelow = 3
+  
+  toEnum (0) = NoTicks
+  toEnum (1) = TicksBothSides
+  toEnum (2) = TicksAbove
+  toEnum (3) = TicksBelow
+  toEnum n' = HoppyP.error $ "Unknown QSliderTickPosition numeric value: " ++ HoppyP.show n'
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,211 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M230
+import qualified Graphics.UI.Qtah.Generated.Widgets.QSizePolicy as M258
+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 M258.QSizePolicyConst)
+foreign import ccall "gencast__QSpacerItem__QLayoutItem" castQSpacerItemToQLayoutItem :: HoppyF.Ptr QSpacerItemConst -> HoppyF.Ptr M230.QLayoutItemConst
+foreign import ccall "gencast__QLayoutItem__QSpacerItem" castQLayoutItemToQSpacerItem :: HoppyF.Ptr M230.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QSpacerItemConstPtr a => QSpacerItemValue a where
+#else
+instance QSpacerItemConstPtr a => QSpacerItemValue a where
+#endif
+  withQSpacerItemPtr = HoppyP.flip ($) . toQSpacerItemConst
+
+class (M230.QLayoutItemConstPtr this) => QSpacerItemConstPtr this where
+  toQSpacerItemConst :: this -> QSpacerItemConst
+
+sizePolicy :: (QSpacerItemValue arg'1) => arg'1 -> HoppyP.IO M258.QSizePolicy
+sizePolicy arg'1 =
+  withQSpacerItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M258.QSizePolicyConst) =<<
+  (sizePolicy' arg'1')
+
+class (QSpacerItemConstPtr this, M230.QLayoutItemPtr this) => QSpacerItemPtr this where
+  toQSpacerItem :: this -> QSpacerItem
+
+changeSize :: (QSpacerItemPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+changeSize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQSpacerItem arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (changeSize' arg'1' arg'2' arg'3')
+
+changeSizeWithOptions :: (QSpacerItemPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> M258.QSizePolicyPolicy -> M258.QSizePolicyPolicy -> HoppyP.IO ()
+changeSizeWithOptions arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQSpacerItem arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'5 in
+  (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 M230.QLayoutItemConstPtr QSpacerItemConst where
+  toQLayoutItemConst (QSpacerItemConst ptr') = M230.QLayoutItemConst $ castQSpacerItemToQLayoutItem ptr'
+  toQLayoutItemConst (QSpacerItemConstGc fptr' ptr') = M230.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 M230.QLayoutItemConstPtr QSpacerItem where
+  toQLayoutItemConst (QSpacerItem ptr') = M230.QLayoutItemConst $ castQSpacerItemToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QSpacerItem -> HoppyF.Ptr QSpacerItemConst) ptr'
+  toQLayoutItemConst (QSpacerItemGc fptr' ptr') = M230.QLayoutItemConstGc fptr' $ castQSpacerItemToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QSpacerItem -> HoppyF.Ptr QSpacerItemConst) ptr'
+
+instance M230.QLayoutItemPtr QSpacerItem where
+  toQLayoutItem (QSpacerItem ptr') = M230.QLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQSpacerItemToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QSpacerItem -> HoppyF.Ptr QSpacerItemConst) ptr'
+  toQLayoutItem (QSpacerItemGc fptr' ptr') = M230.QLayoutItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQSpacerItemToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QSpacerItem -> HoppyF.Ptr QSpacerItemConst) ptr'
+
+new ::  HoppyP.Int -> HoppyP.Int -> HoppyP.IO QSpacerItem
+new arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap QSpacerItem
+  (new' arg'1' arg'2')
+
+newWithOptions ::  HoppyP.Int -> HoppyP.Int -> M258.QSizePolicyPolicy -> M258.QSizePolicyPolicy -> HoppyP.IO QSpacerItem
+newWithOptions arg'1 arg'2 arg'3 arg'4 =
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'4 in
+  HoppyP.fmap QSpacerItem
+  (newWithOptions' arg'1' arg'2' arg'3' arg'4')
+
+class QSpacerItemSuper a where
+  downToQSpacerItem :: a -> QSpacerItem
+
+instance QSpacerItemSuper M230.QLayoutItem where
+  downToQSpacerItem = castQSpacerItemToNonconst . cast' . M230.castQLayoutItemToConst
+    where
+      cast' (M230.QLayoutItemConst ptr') = QSpacerItemConst $ castQLayoutItemToQSpacerItem ptr'
+      cast' (M230.QLayoutItemConstGc fptr' ptr') = QSpacerItemConstGc fptr' $ castQLayoutItemToQSpacerItem ptr'
+
+class QSpacerItemSuperConst a where
+  downToQSpacerItemConst :: a -> QSpacerItemConst
+
+instance QSpacerItemSuperConst M230.QLayoutItemConst where
+  downToQSpacerItemConst = cast'
+    where
+      cast' (M230.QLayoutItemConst ptr') = QSpacerItemConst $ castQLayoutItemToQSpacerItem ptr'
+      cast' (M230.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,362 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSpinBox as M172
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QSpinBox)
+foreign import ccall "genpop__QSpinBox_cleanText" cleanText' ::  HoppyF.Ptr QSpinBoxConst -> HoppyP.IO (HoppyF.Ptr M46.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 M46.QStringConst)
+foreign import ccall "genpop__QSpinBox_setPrefix" setPrefix' ::  HoppyF.Ptr QSpinBox -> HoppyF.Ptr M46.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 M46.QStringConst)
+foreign import ccall "genpop__QSpinBox_setSuffix" setSuffix' ::  HoppyF.Ptr QSpinBox -> HoppyF.Ptr M46.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 "gencast__QSpinBox__QAbstractSpinBox" castQSpinBoxToQAbstractSpinBox :: HoppyF.Ptr QSpinBoxConst -> HoppyF.Ptr M172.QAbstractSpinBoxConst
+foreign import ccall "gencast__QAbstractSpinBox__QSpinBox" castQAbstractSpinBoxToQSpinBox :: HoppyF.Ptr M172.QAbstractSpinBoxConst -> HoppyF.Ptr QSpinBoxConst
+foreign import ccall "gencast__QSpinBox__QWidget" castQSpinBoxToQWidget :: HoppyF.Ptr QSpinBoxConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QSpinBox" castQWidgetToQSpinBox :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QSpinBoxConst
+foreign import ccall "gencast__QSpinBox__QObject" castQSpinBoxToQObject :: HoppyF.Ptr QSpinBoxConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QSpinBox" castQObjectToQSpinBox :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QSpinBoxConstPtr a => QSpinBoxValue a where
+#else
+instance QSpinBoxConstPtr a => QSpinBoxValue a where
+#endif
+  withQSpinBoxPtr = HoppyP.flip ($) . toQSpinBoxConst
+
+class (M172.QAbstractSpinBoxConstPtr this) => QSpinBoxConstPtr this where
+  toQSpinBoxConst :: this -> QSpinBoxConst
+
+cleanText :: (QSpinBoxValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+cleanText arg'1 =
+  withQSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (cleanText' arg'1')
+
+displayIntegerBase :: (QSpinBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+displayIntegerBase arg'1 =
+  withQSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (displayIntegerBase' arg'1')
+
+maximum :: (QSpinBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+maximum arg'1 =
+  withQSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (maximum' arg'1')
+
+minimum :: (QSpinBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+minimum arg'1 =
+  withQSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (minimum' arg'1')
+
+prefix :: (QSpinBoxValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+prefix arg'1 =
+  withQSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (prefix' arg'1')
+
+singleStep :: (QSpinBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+singleStep arg'1 =
+  withQSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (singleStep' arg'1')
+
+suffix :: (QSpinBoxValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+suffix arg'1 =
+  withQSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (suffix' arg'1')
+
+value :: (QSpinBoxValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+value arg'1 =
+  withQSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (value' arg'1')
+
+class (QSpinBoxConstPtr this, M172.QAbstractSpinBoxPtr this) => QSpinBoxPtr this where
+  toQSpinBox :: this -> QSpinBox
+
+setDisplayIntegerBase :: (QSpinBoxPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setDisplayIntegerBase arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setDisplayIntegerBase' arg'1' arg'2')
+
+setMaximum :: (QSpinBoxPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setMaximum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setMaximum' arg'1' arg'2')
+
+setMinimum :: (QSpinBoxPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setMinimum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setMinimum' arg'1' arg'2')
+
+setPrefix :: (QSpinBoxPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setPrefix arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPrefix' arg'1' arg'2')
+
+setRange :: (QSpinBoxPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setRange arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setRange' arg'1' arg'2' arg'3')
+
+setSingleStep :: (QSpinBoxPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setSingleStep arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setSingleStep' arg'1' arg'2')
+
+setSuffix :: (QSpinBoxPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setSuffix arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSuffix' arg'1' arg'2')
+
+setValue :: (QSpinBoxPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setValue' 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 M172.QAbstractSpinBoxConstPtr QSpinBoxConst where
+  toQAbstractSpinBoxConst (QSpinBoxConst ptr') = M172.QAbstractSpinBoxConst $ castQSpinBoxToQAbstractSpinBox ptr'
+  toQAbstractSpinBoxConst (QSpinBoxConstGc fptr' ptr') = M172.QAbstractSpinBoxConstGc fptr' $ castQSpinBoxToQAbstractSpinBox ptr'
+
+instance M280.QWidgetConstPtr QSpinBoxConst where
+  toQWidgetConst (QSpinBoxConst ptr') = M280.QWidgetConst $ castQSpinBoxToQWidget ptr'
+  toQWidgetConst (QSpinBoxConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQSpinBoxToQWidget ptr'
+
+instance M30.QObjectConstPtr QSpinBoxConst where
+  toQObjectConst (QSpinBoxConst ptr') = M30.QObjectConst $ castQSpinBoxToQObject ptr'
+  toQObjectConst (QSpinBoxConstGc fptr' ptr') = M30.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 M172.QAbstractSpinBoxConstPtr QSpinBox where
+  toQAbstractSpinBoxConst (QSpinBox ptr') = M172.QAbstractSpinBoxConst $ castQSpinBoxToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+  toQAbstractSpinBoxConst (QSpinBoxGc fptr' ptr') = M172.QAbstractSpinBoxConstGc fptr' $ castQSpinBoxToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+
+instance M172.QAbstractSpinBoxPtr QSpinBox where
+  toQAbstractSpinBox (QSpinBox ptr') = M172.QAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr M172.QAbstractSpinBoxConst -> HoppyF.Ptr M172.QAbstractSpinBox) $ castQSpinBoxToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+  toQAbstractSpinBox (QSpinBoxGc fptr' ptr') = M172.QAbstractSpinBoxGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M172.QAbstractSpinBoxConst -> HoppyF.Ptr M172.QAbstractSpinBox) $ castQSpinBoxToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+
+instance M280.QWidgetConstPtr QSpinBox where
+  toQWidgetConst (QSpinBox ptr') = M280.QWidgetConst $ castQSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+  toQWidgetConst (QSpinBoxGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+
+instance M280.QWidgetPtr QSpinBox where
+  toQWidget (QSpinBox ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+  toQWidget (QSpinBoxGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+
+instance M30.QObjectConstPtr QSpinBox where
+  toQObjectConst (QSpinBox ptr') = M30.QObjectConst $ castQSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+  toQObjectConst (QSpinBoxGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+
+instance M30.QObjectPtr QSpinBox where
+  toQObject (QSpinBox ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+  toQObject (QSpinBoxGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+
+new ::  HoppyP.IO QSpinBox
+new =
+  HoppyP.fmap QSpinBox
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QSpinBox
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QSpinBox
+  (newWithParent' arg'1')
+
+class QSpinBoxSuper a where
+  downToQSpinBox :: a -> QSpinBox
+
+instance QSpinBoxSuper M172.QAbstractSpinBox where
+  downToQSpinBox = castQSpinBoxToNonconst . cast' . M172.castQAbstractSpinBoxToConst
+    where
+      cast' (M172.QAbstractSpinBoxConst ptr') = QSpinBoxConst $ castQAbstractSpinBoxToQSpinBox ptr'
+      cast' (M172.QAbstractSpinBoxConstGc fptr' ptr') = QSpinBoxConstGc fptr' $ castQAbstractSpinBoxToQSpinBox ptr'
+instance QSpinBoxSuper M280.QWidget where
+  downToQSpinBox = castQSpinBoxToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QSpinBoxConst $ castQWidgetToQSpinBox ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QSpinBoxConstGc fptr' $ castQWidgetToQSpinBox ptr'
+instance QSpinBoxSuper M30.QObject where
+  downToQSpinBox = castQSpinBoxToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QSpinBoxConst $ castQObjectToQSpinBox ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QSpinBoxConstGc fptr' $ castQObjectToQSpinBox ptr'
+
+class QSpinBoxSuperConst a where
+  downToQSpinBoxConst :: a -> QSpinBoxConst
+
+instance QSpinBoxSuperConst M172.QAbstractSpinBoxConst where
+  downToQSpinBoxConst = cast'
+    where
+      cast' (M172.QAbstractSpinBoxConst ptr') = QSpinBoxConst $ castQAbstractSpinBoxToQSpinBox ptr'
+      cast' (M172.QAbstractSpinBoxConstGc fptr' ptr') = QSpinBoxConstGc fptr' $ castQAbstractSpinBoxToQSpinBox ptr'
+instance QSpinBoxSuperConst M280.QWidgetConst where
+  downToQSpinBoxConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QSpinBoxConst $ castQWidgetToQSpinBox ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QSpinBoxConstGc fptr' $ castQWidgetToQSpinBox ptr'
+instance QSpinBoxSuperConst M30.QObjectConst where
+  downToQSpinBoxConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QSpinBoxConst $ castQObjectToQSpinBox ptr'
+      cast' (M30.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,407 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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 M60
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M198
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QSplitter)
+foreign import ccall "genpop__QSplitter_addWidget" addWidget' ::  HoppyF.Ptr QSplitter -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QSplitter_childrenCollapsible" childrenCollapsible' ::  HoppyF.Ptr QSplitterConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QSplitter_setChildrenCollapsible" setChildrenCollapsible' ::  HoppyF.Ptr QSplitter -> HoppyFHR.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 M280.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSplitter_insertWidget" insertWidget' ::  HoppyF.Ptr QSplitter -> HoppyFC.CInt -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QSplitter_isCollapsible" isCollapsible' ::  HoppyF.Ptr QSplitterConst -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QSplitter_opaqueResize" opaqueResize' ::  HoppyF.Ptr QSplitterConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QSplitter_setOpaqueResize" setOpaqueResize' ::  HoppyF.Ptr QSplitter -> HoppyFHR.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 -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QSplitter_setSizes" setSizes' ::  HoppyF.Ptr QSplitter -> HoppyF.Ptr M60.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 M60.QListIntConst)
+foreign import ccall "genpop__QSplitter_widget" widget' ::  HoppyF.Ptr QSplitterConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "gencast__QSplitter__QFrame" castQSplitterToQFrame :: HoppyF.Ptr QSplitterConst -> HoppyF.Ptr M198.QFrameConst
+foreign import ccall "gencast__QFrame__QSplitter" castQFrameToQSplitter :: HoppyF.Ptr M198.QFrameConst -> HoppyF.Ptr QSplitterConst
+foreign import ccall "gencast__QSplitter__QWidget" castQSplitterToQWidget :: HoppyF.Ptr QSplitterConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QSplitter" castQWidgetToQSplitter :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QSplitterConst
+foreign import ccall "gencast__QSplitter__QObject" castQSplitterToQObject :: HoppyF.Ptr QSplitterConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QSplitter" castQObjectToQSplitter :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QSplitterConstPtr a => QSplitterValue a where
+#else
+instance QSplitterConstPtr a => QSplitterValue a where
+#endif
+  withQSplitterPtr = HoppyP.flip ($) . toQSplitterConst
+
+class (M198.QFrameConstPtr this) => QSplitterConstPtr this where
+  toQSplitterConst :: this -> QSplitterConst
+
+childrenCollapsible :: (QSplitterValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+childrenCollapsible arg'1 =
+  withQSplitterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (childrenCollapsible' arg'1')
+
+count :: (QSplitterValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+count arg'1 =
+  withQSplitterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1')
+
+handleWidth :: (QSplitterValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+handleWidth arg'1 =
+  withQSplitterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (handleWidth' arg'1')
+
+indexOf :: (QSplitterValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+indexOf arg'1 arg'2 =
+  withQSplitterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOf' arg'1' arg'2')
+
+isCollapsible :: (QSplitterValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+isCollapsible arg'1 arg'2 =
+  withQSplitterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap (/= 0)
+  (isCollapsible' arg'1' arg'2')
+
+opaqueResize :: (QSplitterValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+opaqueResize arg'1 =
+  withQSplitterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (opaqueResize' arg'1')
+
+orientation :: (QSplitterValue arg'1) => arg'1 -> HoppyP.IO M58.QtOrientation
+orientation arg'1 =
+  withQSplitterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (orientation' arg'1')
+
+widget :: (QSplitterValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M280.QWidget
+widget arg'1 arg'2 =
+  withQSplitterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M280.QWidget
+  (widget' arg'1' arg'2')
+
+class (QSplitterConstPtr this, M198.QFramePtr this) => QSplitterPtr this where
+  toQSplitter :: this -> QSplitter
+
+addWidget :: (QSplitterPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+addWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (addWidget' arg'1' arg'2')
+
+setChildrenCollapsible :: (QSplitterPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setChildrenCollapsible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setChildrenCollapsible' arg'1' arg'2')
+
+setHandleWidth :: (QSplitterPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setHandleWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setHandleWidth' arg'1' arg'2')
+
+insertWidget :: (QSplitterPtr arg'1, M280.QWidgetPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+insertWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  (insertWidget' arg'1' arg'2' arg'3')
+
+setOpaqueResize :: (QSplitterPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setOpaqueResize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setOpaqueResize' arg'1' arg'2')
+
+setOrientation :: (QSplitterPtr arg'1) => arg'1 -> M58.QtOrientation -> HoppyP.IO ()
+setOrientation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setOrientation' arg'1' arg'2')
+
+refresh :: (QSplitterPtr arg'1) => arg'1 -> HoppyP.IO ()
+refresh arg'1 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  (refresh' arg'1')
+
+setCollapsible :: (QSplitterPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Bool -> HoppyP.IO ()
+setCollapsible arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = if arg'3 then 1 else 0 in
+  (setCollapsible' arg'1' arg'2' arg'3')
+
+setSizes :: (QSplitterPtr arg'1, M60.QListIntValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setSizes arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  M60.withQListIntPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSizes' arg'1' arg'2')
+
+setStretchFactor :: (QSplitterPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setStretchFactor arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setStretchFactor' arg'1' arg'2' arg'3')
+
+sizes :: (QSplitterPtr arg'1) => arg'1 -> HoppyP.IO [HoppyP.Int]
+sizes arg'1 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M60.QListIntConst) =<<
+  (sizes' arg'1')
+
+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 M198.QFrameConstPtr QSplitterConst where
+  toQFrameConst (QSplitterConst ptr') = M198.QFrameConst $ castQSplitterToQFrame ptr'
+  toQFrameConst (QSplitterConstGc fptr' ptr') = M198.QFrameConstGc fptr' $ castQSplitterToQFrame ptr'
+
+instance M280.QWidgetConstPtr QSplitterConst where
+  toQWidgetConst (QSplitterConst ptr') = M280.QWidgetConst $ castQSplitterToQWidget ptr'
+  toQWidgetConst (QSplitterConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQSplitterToQWidget ptr'
+
+instance M30.QObjectConstPtr QSplitterConst where
+  toQObjectConst (QSplitterConst ptr') = M30.QObjectConst $ castQSplitterToQObject ptr'
+  toQObjectConst (QSplitterConstGc fptr' ptr') = M30.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 M198.QFrameConstPtr QSplitter where
+  toQFrameConst (QSplitter ptr') = M198.QFrameConst $ castQSplitterToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+  toQFrameConst (QSplitterGc fptr' ptr') = M198.QFrameConstGc fptr' $ castQSplitterToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+
+instance M198.QFramePtr QSplitter where
+  toQFrame (QSplitter ptr') = M198.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M198.QFrameConst -> HoppyF.Ptr M198.QFrame) $ castQSplitterToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+  toQFrame (QSplitterGc fptr' ptr') = M198.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M198.QFrameConst -> HoppyF.Ptr M198.QFrame) $ castQSplitterToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+
+instance M280.QWidgetConstPtr QSplitter where
+  toQWidgetConst (QSplitter ptr') = M280.QWidgetConst $ castQSplitterToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+  toQWidgetConst (QSplitterGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQSplitterToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+
+instance M280.QWidgetPtr QSplitter where
+  toQWidget (QSplitter ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQSplitterToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+  toQWidget (QSplitterGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQSplitterToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+
+instance M30.QObjectConstPtr QSplitter where
+  toQObjectConst (QSplitter ptr') = M30.QObjectConst $ castQSplitterToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+  toQObjectConst (QSplitterGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQSplitterToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+
+instance M30.QObjectPtr QSplitter where
+  toQObject (QSplitter ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQSplitterToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+  toQObject (QSplitterGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQSplitterToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+
+new ::  HoppyP.IO QSplitter
+new =
+  HoppyP.fmap QSplitter
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QSplitter
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QSplitter
+  (newWithParent' arg'1')
+
+newWithOrientation ::  M58.QtOrientation -> HoppyP.IO QSplitter
+newWithOrientation arg'1 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  HoppyP.fmap QSplitter
+  (newWithOrientation' arg'1')
+
+newWithOrientationAndParent :: (M280.QWidgetPtr arg'2) => M58.QtOrientation -> arg'2 -> HoppyP.IO QSplitter
+newWithOrientationAndParent arg'1 arg'2 =
+  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QSplitter
+  (newWithOrientationAndParent' arg'1' arg'2')
+
+class QSplitterSuper a where
+  downToQSplitter :: a -> QSplitter
+
+instance QSplitterSuper M198.QFrame where
+  downToQSplitter = castQSplitterToNonconst . cast' . M198.castQFrameToConst
+    where
+      cast' (M198.QFrameConst ptr') = QSplitterConst $ castQFrameToQSplitter ptr'
+      cast' (M198.QFrameConstGc fptr' ptr') = QSplitterConstGc fptr' $ castQFrameToQSplitter ptr'
+instance QSplitterSuper M280.QWidget where
+  downToQSplitter = castQSplitterToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QSplitterConst $ castQWidgetToQSplitter ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QSplitterConstGc fptr' $ castQWidgetToQSplitter ptr'
+instance QSplitterSuper M30.QObject where
+  downToQSplitter = castQSplitterToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QSplitterConst $ castQObjectToQSplitter ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QSplitterConstGc fptr' $ castQObjectToQSplitter ptr'
+
+class QSplitterSuperConst a where
+  downToQSplitterConst :: a -> QSplitterConst
+
+instance QSplitterSuperConst M198.QFrameConst where
+  downToQSplitterConst = cast'
+    where
+      cast' (M198.QFrameConst ptr') = QSplitterConst $ castQFrameToQSplitter ptr'
+      cast' (M198.QFrameConstGc fptr' ptr') = QSplitterConstGc fptr' $ castQFrameToQSplitter ptr'
+instance QSplitterSuperConst M280.QWidgetConst where
+  downToQSplitterConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QSplitterConst $ castQWidgetToQSplitter ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QSplitterConstGc fptr' $ castQWidgetToQSplitter ptr'
+instance QSplitterSuperConst M30.QObjectConst where
+  downToQSplitterConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QSplitterConst $ castQObjectToQSplitter ptr'
+      cast' (M30.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,338 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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 M30
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayout as M228
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M230
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QStackedLayout)
+foreign import ccall "genpop__QStackedLayout_newWithLayout" newWithLayout' ::  HoppyF.Ptr M228.QLayout -> HoppyP.IO (HoppyF.Ptr QStackedLayout)
+foreign import ccall "genpop__QStackedLayout_addWidget" addWidget' ::  HoppyF.Ptr QStackedLayout -> HoppyF.Ptr M280.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 M280.QWidget)
+foreign import ccall "genpop__QStackedLayout_setCurrentWidget" setCurrentWidget' ::  HoppyF.Ptr QStackedLayout -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QStackedLayout_insertWidget" insertWidget' ::  HoppyF.Ptr QStackedLayout -> HoppyFC.CInt -> HoppyF.Ptr M280.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 M280.QWidget)
+foreign import ccall "gencast__QStackedLayout__QLayout" castQStackedLayoutToQLayout :: HoppyF.Ptr QStackedLayoutConst -> HoppyF.Ptr M228.QLayoutConst
+foreign import ccall "gencast__QLayout__QStackedLayout" castQLayoutToQStackedLayout :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr QStackedLayoutConst
+foreign import ccall "gencast__QStackedLayout__QObject" castQStackedLayoutToQObject :: HoppyF.Ptr QStackedLayoutConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QStackedLayout" castQObjectToQStackedLayout :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr QStackedLayoutConst
+foreign import ccall "gencast__QStackedLayout__QLayoutItem" castQStackedLayoutToQLayoutItem :: HoppyF.Ptr QStackedLayoutConst -> HoppyF.Ptr M230.QLayoutItemConst
+foreign import ccall "gencast__QLayoutItem__QStackedLayout" castQLayoutItemToQStackedLayout :: HoppyF.Ptr M230.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QStackedLayoutConstPtr a => QStackedLayoutValue a where
+#else
+instance QStackedLayoutConstPtr a => QStackedLayoutValue a where
+#endif
+  withQStackedLayoutPtr = HoppyP.flip ($) . toQStackedLayoutConst
+
+class (M228.QLayoutConstPtr this) => QStackedLayoutConstPtr this where
+  toQStackedLayoutConst :: this -> QStackedLayoutConst
+
+count :: (QStackedLayoutValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+count arg'1 =
+  withQStackedLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1')
+
+currentIndex :: (QStackedLayoutValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+currentIndex arg'1 =
+  withQStackedLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (currentIndex' arg'1')
+
+currentWidget :: (QStackedLayoutValue arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+currentWidget arg'1 =
+  withQStackedLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (currentWidget' arg'1')
+
+stackingMode :: (QStackedLayoutValue arg'1) => arg'1 -> HoppyP.IO QStackedLayoutStackingMode
+stackingMode arg'1 =
+  withQStackedLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (stackingMode' arg'1')
+
+widget :: (QStackedLayoutValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M280.QWidget
+widget arg'1 arg'2 =
+  withQStackedLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M280.QWidget
+  (widget' arg'1' arg'2')
+
+class (QStackedLayoutConstPtr this, M228.QLayoutPtr this) => QStackedLayoutPtr this where
+  toQStackedLayout :: this -> QStackedLayout
+
+addWidget :: (QStackedLayoutPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+addWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (addWidget' arg'1' arg'2')
+
+setCurrentIndex :: (QStackedLayoutPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setCurrentIndex arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setCurrentIndex' arg'1' arg'2')
+
+setCurrentWidget :: (QStackedLayoutPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setCurrentWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (setCurrentWidget' arg'1' arg'2')
+
+insertWidget :: (QStackedLayoutPtr arg'1, M280.QWidgetPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO HoppyP.Int
+insertWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStackedLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (insertWidget' arg'1' arg'2' arg'3')
+
+setStackingMode :: (QStackedLayoutPtr arg'1) => arg'1 -> QStackedLayoutStackingMode -> HoppyP.IO ()
+setStackingMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedLayout arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setStackingMode' 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 M228.QLayoutConstPtr QStackedLayoutConst where
+  toQLayoutConst (QStackedLayoutConst ptr') = M228.QLayoutConst $ castQStackedLayoutToQLayout ptr'
+  toQLayoutConst (QStackedLayoutConstGc fptr' ptr') = M228.QLayoutConstGc fptr' $ castQStackedLayoutToQLayout ptr'
+
+instance M30.QObjectConstPtr QStackedLayoutConst where
+  toQObjectConst (QStackedLayoutConst ptr') = M30.QObjectConst $ castQStackedLayoutToQObject ptr'
+  toQObjectConst (QStackedLayoutConstGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQStackedLayoutToQObject ptr'
+
+instance M230.QLayoutItemConstPtr QStackedLayoutConst where
+  toQLayoutItemConst (QStackedLayoutConst ptr') = M230.QLayoutItemConst $ castQStackedLayoutToQLayoutItem ptr'
+  toQLayoutItemConst (QStackedLayoutConstGc fptr' ptr') = M230.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 M228.QLayoutConstPtr QStackedLayout where
+  toQLayoutConst (QStackedLayout ptr') = M228.QLayoutConst $ castQStackedLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+  toQLayoutConst (QStackedLayoutGc fptr' ptr') = M228.QLayoutConstGc fptr' $ castQStackedLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+
+instance M228.QLayoutPtr QStackedLayout where
+  toQLayout (QStackedLayout ptr') = M228.QLayout $ (HoppyF.castPtr :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr M228.QLayout) $ castQStackedLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+  toQLayout (QStackedLayoutGc fptr' ptr') = M228.QLayoutGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr M228.QLayout) $ castQStackedLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+
+instance M30.QObjectConstPtr QStackedLayout where
+  toQObjectConst (QStackedLayout ptr') = M30.QObjectConst $ castQStackedLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+  toQObjectConst (QStackedLayoutGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQStackedLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+
+instance M30.QObjectPtr QStackedLayout where
+  toQObject (QStackedLayout ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQStackedLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+  toQObject (QStackedLayoutGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQStackedLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+
+instance M230.QLayoutItemConstPtr QStackedLayout where
+  toQLayoutItemConst (QStackedLayout ptr') = M230.QLayoutItemConst $ castQStackedLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+  toQLayoutItemConst (QStackedLayoutGc fptr' ptr') = M230.QLayoutItemConstGc fptr' $ castQStackedLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+
+instance M230.QLayoutItemPtr QStackedLayout where
+  toQLayoutItem (QStackedLayout ptr') = M230.QLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQStackedLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+  toQLayoutItem (QStackedLayoutGc fptr' ptr') = M230.QLayoutItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQStackedLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+
+new ::  HoppyP.IO QStackedLayout
+new =
+  HoppyP.fmap QStackedLayout
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QStackedLayout
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QStackedLayout
+  (newWithParent' arg'1')
+
+newWithLayout :: (M228.QLayoutPtr arg'1) => arg'1 -> HoppyP.IO QStackedLayout
+newWithLayout arg'1 =
+  HoppyFHR.withCppPtr (M228.toQLayout arg'1) $ \arg'1' ->
+  HoppyP.fmap QStackedLayout
+  (newWithLayout' arg'1')
+
+class QStackedLayoutSuper a where
+  downToQStackedLayout :: a -> QStackedLayout
+
+instance QStackedLayoutSuper M228.QLayout where
+  downToQStackedLayout = castQStackedLayoutToNonconst . cast' . M228.castQLayoutToConst
+    where
+      cast' (M228.QLayoutConst ptr') = QStackedLayoutConst $ castQLayoutToQStackedLayout ptr'
+      cast' (M228.QLayoutConstGc fptr' ptr') = QStackedLayoutConstGc fptr' $ castQLayoutToQStackedLayout ptr'
+instance QStackedLayoutSuper M30.QObject where
+  downToQStackedLayout = castQStackedLayoutToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QStackedLayoutConst $ castQObjectToQStackedLayout ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QStackedLayoutConstGc fptr' $ castQObjectToQStackedLayout ptr'
+instance QStackedLayoutSuper M230.QLayoutItem where
+  downToQStackedLayout = castQStackedLayoutToNonconst . cast' . M230.castQLayoutItemToConst
+    where
+      cast' (M230.QLayoutItemConst ptr') = QStackedLayoutConst $ castQLayoutItemToQStackedLayout ptr'
+      cast' (M230.QLayoutItemConstGc fptr' ptr') = QStackedLayoutConstGc fptr' $ castQLayoutItemToQStackedLayout ptr'
+
+class QStackedLayoutSuperConst a where
+  downToQStackedLayoutConst :: a -> QStackedLayoutConst
+
+instance QStackedLayoutSuperConst M228.QLayoutConst where
+  downToQStackedLayoutConst = cast'
+    where
+      cast' (M228.QLayoutConst ptr') = QStackedLayoutConst $ castQLayoutToQStackedLayout ptr'
+      cast' (M228.QLayoutConstGc fptr' ptr') = QStackedLayoutConstGc fptr' $ castQLayoutToQStackedLayout ptr'
+instance QStackedLayoutSuperConst M30.QObjectConst where
+  downToQStackedLayoutConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QStackedLayoutConst $ castQObjectToQStackedLayout ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QStackedLayoutConstGc fptr' $ castQObjectToQStackedLayout ptr'
+instance QStackedLayoutSuperConst M230.QLayoutItemConst where
+  downToQStackedLayoutConst = cast'
+    where
+      cast' (M230.QLayoutItemConst ptr') = QStackedLayoutConst $ castQLayoutItemToQStackedLayout ptr'
+      cast' (M230.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QStackedLayoutStackingMode where
+  fromEnum StackOne = 0
+  fromEnum StackAll = 1
+  
+  toEnum (0) = StackOne
+  toEnum (1) = StackAll
+  toEnum n' = HoppyP.error $ "Unknown QStackedLayoutStackingMode numeric value: " ++ HoppyP.show n'
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,316 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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 M30
+import qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M198
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QStackedWidget)
+foreign import ccall "genpop__QStackedWidget_addWidget" addWidget' ::  HoppyF.Ptr QStackedWidget -> HoppyF.Ptr M280.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 M280.QWidget)
+foreign import ccall "genpop__QStackedWidget_setCurrentWidget" setCurrentWidget' ::  HoppyF.Ptr QStackedWidget -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QStackedWidget_indexOf" indexOf' ::  HoppyF.Ptr QStackedWidgetConst -> HoppyF.Ptr M280.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStackedWidget_insertWidget" insertWidget' ::  HoppyF.Ptr QStackedWidget -> HoppyFC.CInt -> HoppyF.Ptr M280.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStackedWidget_removeWidget" removeWidget' ::  HoppyF.Ptr QStackedWidget -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QStackedWidget_widget" widget' ::  HoppyF.Ptr QStackedWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "gencast__QStackedWidget__QFrame" castQStackedWidgetToQFrame :: HoppyF.Ptr QStackedWidgetConst -> HoppyF.Ptr M198.QFrameConst
+foreign import ccall "gencast__QFrame__QStackedWidget" castQFrameToQStackedWidget :: HoppyF.Ptr M198.QFrameConst -> HoppyF.Ptr QStackedWidgetConst
+foreign import ccall "gencast__QStackedWidget__QWidget" castQStackedWidgetToQWidget :: HoppyF.Ptr QStackedWidgetConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QStackedWidget" castQWidgetToQStackedWidget :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QStackedWidgetConst
+foreign import ccall "gencast__QStackedWidget__QObject" castQStackedWidgetToQObject :: HoppyF.Ptr QStackedWidgetConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QStackedWidget" castQObjectToQStackedWidget :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QStackedWidgetConstPtr a => QStackedWidgetValue a where
+#else
+instance QStackedWidgetConstPtr a => QStackedWidgetValue a where
+#endif
+  withQStackedWidgetPtr = HoppyP.flip ($) . toQStackedWidgetConst
+
+class (M198.QFrameConstPtr this) => QStackedWidgetConstPtr this where
+  toQStackedWidgetConst :: this -> QStackedWidgetConst
+
+count :: (QStackedWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+count arg'1 =
+  withQStackedWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1')
+
+currentIndex :: (QStackedWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+currentIndex arg'1 =
+  withQStackedWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (currentIndex' arg'1')
+
+currentWidget :: (QStackedWidgetValue arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+currentWidget arg'1 =
+  withQStackedWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (currentWidget' arg'1')
+
+indexOf :: (QStackedWidgetValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+indexOf arg'1 arg'2 =
+  withQStackedWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOf' arg'1' arg'2')
+
+widget :: (QStackedWidgetValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M280.QWidget
+widget arg'1 arg'2 =
+  withQStackedWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M280.QWidget
+  (widget' arg'1' arg'2')
+
+class (QStackedWidgetConstPtr this, M198.QFramePtr this) => QStackedWidgetPtr this where
+  toQStackedWidget :: this -> QStackedWidget
+
+addWidget :: (QStackedWidgetPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+addWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (addWidget' arg'1' arg'2')
+
+setCurrentIndex :: (QStackedWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setCurrentIndex arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setCurrentIndex' arg'1' arg'2')
+
+setCurrentWidget :: (QStackedWidgetPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setCurrentWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (setCurrentWidget' arg'1' arg'2')
+
+insertWidget :: (QStackedWidgetPtr arg'1, M280.QWidgetPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO HoppyP.Int
+insertWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStackedWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (insertWidget' arg'1' arg'2' arg'3')
+
+removeWidget :: (QStackedWidgetPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+removeWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (removeWidget' 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 M198.QFrameConstPtr QStackedWidgetConst where
+  toQFrameConst (QStackedWidgetConst ptr') = M198.QFrameConst $ castQStackedWidgetToQFrame ptr'
+  toQFrameConst (QStackedWidgetConstGc fptr' ptr') = M198.QFrameConstGc fptr' $ castQStackedWidgetToQFrame ptr'
+
+instance M280.QWidgetConstPtr QStackedWidgetConst where
+  toQWidgetConst (QStackedWidgetConst ptr') = M280.QWidgetConst $ castQStackedWidgetToQWidget ptr'
+  toQWidgetConst (QStackedWidgetConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQStackedWidgetToQWidget ptr'
+
+instance M30.QObjectConstPtr QStackedWidgetConst where
+  toQObjectConst (QStackedWidgetConst ptr') = M30.QObjectConst $ castQStackedWidgetToQObject ptr'
+  toQObjectConst (QStackedWidgetConstGc fptr' ptr') = M30.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 M198.QFrameConstPtr QStackedWidget where
+  toQFrameConst (QStackedWidget ptr') = M198.QFrameConst $ castQStackedWidgetToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+  toQFrameConst (QStackedWidgetGc fptr' ptr') = M198.QFrameConstGc fptr' $ castQStackedWidgetToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+
+instance M198.QFramePtr QStackedWidget where
+  toQFrame (QStackedWidget ptr') = M198.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M198.QFrameConst -> HoppyF.Ptr M198.QFrame) $ castQStackedWidgetToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+  toQFrame (QStackedWidgetGc fptr' ptr') = M198.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M198.QFrameConst -> HoppyF.Ptr M198.QFrame) $ castQStackedWidgetToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+
+instance M280.QWidgetConstPtr QStackedWidget where
+  toQWidgetConst (QStackedWidget ptr') = M280.QWidgetConst $ castQStackedWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+  toQWidgetConst (QStackedWidgetGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQStackedWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+
+instance M280.QWidgetPtr QStackedWidget where
+  toQWidget (QStackedWidget ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQStackedWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+  toQWidget (QStackedWidgetGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQStackedWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+
+instance M30.QObjectConstPtr QStackedWidget where
+  toQObjectConst (QStackedWidget ptr') = M30.QObjectConst $ castQStackedWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+  toQObjectConst (QStackedWidgetGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQStackedWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+
+instance M30.QObjectPtr QStackedWidget where
+  toQObject (QStackedWidget ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQStackedWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+  toQObject (QStackedWidgetGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQStackedWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+
+new ::  HoppyP.IO QStackedWidget
+new =
+  HoppyP.fmap QStackedWidget
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QStackedWidget
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QStackedWidget
+  (newWithParent' arg'1')
+
+class QStackedWidgetSuper a where
+  downToQStackedWidget :: a -> QStackedWidget
+
+instance QStackedWidgetSuper M198.QFrame where
+  downToQStackedWidget = castQStackedWidgetToNonconst . cast' . M198.castQFrameToConst
+    where
+      cast' (M198.QFrameConst ptr') = QStackedWidgetConst $ castQFrameToQStackedWidget ptr'
+      cast' (M198.QFrameConstGc fptr' ptr') = QStackedWidgetConstGc fptr' $ castQFrameToQStackedWidget ptr'
+instance QStackedWidgetSuper M280.QWidget where
+  downToQStackedWidget = castQStackedWidgetToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QStackedWidgetConst $ castQWidgetToQStackedWidget ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QStackedWidgetConstGc fptr' $ castQWidgetToQStackedWidget ptr'
+instance QStackedWidgetSuper M30.QObject where
+  downToQStackedWidget = castQStackedWidgetToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QStackedWidgetConst $ castQObjectToQStackedWidget ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QStackedWidgetConstGc fptr' $ castQObjectToQStackedWidget ptr'
+
+class QStackedWidgetSuperConst a where
+  downToQStackedWidgetConst :: a -> QStackedWidgetConst
+
+instance QStackedWidgetSuperConst M198.QFrameConst where
+  downToQStackedWidgetConst = cast'
+    where
+      cast' (M198.QFrameConst ptr') = QStackedWidgetConst $ castQFrameToQStackedWidget ptr'
+      cast' (M198.QFrameConstGc fptr' ptr') = QStackedWidgetConstGc fptr' $ castQFrameToQStackedWidget ptr'
+instance QStackedWidgetSuperConst M280.QWidgetConst where
+  downToQStackedWidgetConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QStackedWidgetConst $ castQWidgetToQStackedWidget ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QStackedWidgetConstGc fptr' $ castQWidgetToQStackedWidget ptr'
+instance QStackedWidgetSuperConst M30.QObjectConst where
+  downToQStackedWidgetConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QStackedWidgetConst $ castQObjectToQStackedWidget ptr'
+      cast' (M30.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,334 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QStatusBar)
+foreign import ccall "genpop__QStatusBar_addPermanentWidget" addPermanentWidget' ::  HoppyF.Ptr QStatusBar -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_addPermanentWidgetWithStretch" addPermanentWidgetWithStretch' ::  HoppyF.Ptr QStatusBar -> HoppyF.Ptr M280.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_addWidget" addWidget' ::  HoppyF.Ptr QStatusBar -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_addWidgetWithStretch" addWidgetWithStretch' ::  HoppyF.Ptr QStatusBar -> HoppyF.Ptr M280.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 M46.QStringConst)
+foreign import ccall "genpop__QStatusBar_insertPermanentWidget" insertPermanentWidget' ::  HoppyF.Ptr QStatusBar -> HoppyFC.CInt -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_insertPermanentWidgetWithStretch" insertPermanentWidgetWithStretch' ::  HoppyF.Ptr QStatusBar -> HoppyFC.CInt -> HoppyF.Ptr M280.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_insertWidget" insertWidget' ::  HoppyF.Ptr QStatusBar -> HoppyFC.CInt -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_insertWidgetWithStretch" insertWidgetWithStretch' ::  HoppyF.Ptr QStatusBar -> HoppyFC.CInt -> HoppyF.Ptr M280.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_removeWidget" removeWidget' ::  HoppyF.Ptr QStatusBar -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_showMessage" showMessage' ::  HoppyF.Ptr QStatusBar -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_showMessageWithTimeout" showMessageWithTimeout' ::  HoppyF.Ptr QStatusBar -> HoppyF.Ptr M46.QStringConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_isSizeGripEnabled" isSizeGripEnabled' ::  HoppyF.Ptr QStatusBarConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QStatusBar_setSizeGripEnabled" setSizeGripEnabled' ::  HoppyF.Ptr QStatusBar -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QStatusBar__QWidget" castQStatusBarToQWidget :: HoppyF.Ptr QStatusBarConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QStatusBar" castQWidgetToQStatusBar :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QStatusBarConst
+foreign import ccall "gencast__QStatusBar__QObject" castQStatusBarToQObject :: HoppyF.Ptr QStatusBarConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QStatusBar" castQObjectToQStatusBar :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QStatusBarConstPtr a => QStatusBarValue a where
+#else
+instance QStatusBarConstPtr a => QStatusBarValue a where
+#endif
+  withQStatusBarPtr = HoppyP.flip ($) . toQStatusBarConst
+
+class (M280.QWidgetConstPtr this) => QStatusBarConstPtr this where
+  toQStatusBarConst :: this -> QStatusBarConst
+
+currentMessage :: (QStatusBarValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+currentMessage arg'1 =
+  withQStatusBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (currentMessage' arg'1')
+
+isSizeGripEnabled :: (QStatusBarValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isSizeGripEnabled arg'1 =
+  withQStatusBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isSizeGripEnabled' arg'1')
+
+class (QStatusBarConstPtr this, M280.QWidgetPtr this) => QStatusBarPtr this where
+  toQStatusBar :: this -> QStatusBar
+
+addPermanentWidget :: (QStatusBarPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+addPermanentWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (addPermanentWidget' arg'1' arg'2')
+
+addPermanentWidgetWithStretch :: (QStatusBarPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO ()
+addPermanentWidgetWithStretch arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (addPermanentWidgetWithStretch' arg'1' arg'2' arg'3')
+
+addWidget :: (QStatusBarPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+addWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (addWidget' arg'1' arg'2')
+
+addWidgetWithStretch :: (QStatusBarPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO ()
+addWidgetWithStretch arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (addWidgetWithStretch' arg'1' arg'2' arg'3')
+
+clearMessage :: (QStatusBarPtr arg'1) => arg'1 -> HoppyP.IO ()
+clearMessage arg'1 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  (clearMessage' arg'1')
+
+insertPermanentWidget :: (QStatusBarPtr arg'1, M280.QWidgetPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+insertPermanentWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  (insertPermanentWidget' arg'1' arg'2' arg'3')
+
+insertPermanentWidgetWithStretch :: (QStatusBarPtr arg'1, M280.QWidgetPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.Int -> HoppyP.IO ()
+insertPermanentWidgetWithStretch arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  (insertPermanentWidgetWithStretch' arg'1' arg'2' arg'3' arg'4')
+
+insertWidget :: (QStatusBarPtr arg'1, M280.QWidgetPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+insertWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  (insertWidget' arg'1' arg'2' arg'3')
+
+insertWidgetWithStretch :: (QStatusBarPtr arg'1, M280.QWidgetPtr arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.Int -> HoppyP.IO ()
+insertWidgetWithStretch arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  (insertWidgetWithStretch' arg'1' arg'2' arg'3' arg'4')
+
+removeWidget :: (QStatusBarPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+removeWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (removeWidget' arg'1' arg'2')
+
+showMessage :: (QStatusBarPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+showMessage arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (showMessage' arg'1' arg'2')
+
+showMessageWithTimeout :: (QStatusBarPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.Int -> HoppyP.IO ()
+showMessageWithTimeout arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (showMessageWithTimeout' arg'1' arg'2' arg'3')
+
+setSizeGripEnabled :: (QStatusBarPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setSizeGripEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setSizeGripEnabled' 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 M280.QWidgetConstPtr QStatusBarConst where
+  toQWidgetConst (QStatusBarConst ptr') = M280.QWidgetConst $ castQStatusBarToQWidget ptr'
+  toQWidgetConst (QStatusBarConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQStatusBarToQWidget ptr'
+
+instance M30.QObjectConstPtr QStatusBarConst where
+  toQObjectConst (QStatusBarConst ptr') = M30.QObjectConst $ castQStatusBarToQObject ptr'
+  toQObjectConst (QStatusBarConstGc fptr' ptr') = M30.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 M280.QWidgetConstPtr QStatusBar where
+  toQWidgetConst (QStatusBar ptr') = M280.QWidgetConst $ castQStatusBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+  toQWidgetConst (QStatusBarGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQStatusBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+
+instance M280.QWidgetPtr QStatusBar where
+  toQWidget (QStatusBar ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQStatusBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+  toQWidget (QStatusBarGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQStatusBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+
+instance M30.QObjectConstPtr QStatusBar where
+  toQObjectConst (QStatusBar ptr') = M30.QObjectConst $ castQStatusBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+  toQObjectConst (QStatusBarGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQStatusBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+
+instance M30.QObjectPtr QStatusBar where
+  toQObject (QStatusBar ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQStatusBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+  toQObject (QStatusBarGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQStatusBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+
+new ::  HoppyP.IO QStatusBar
+new =
+  HoppyP.fmap QStatusBar
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QStatusBar
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QStatusBar
+  (newWithParent' arg'1')
+
+class QStatusBarSuper a where
+  downToQStatusBar :: a -> QStatusBar
+
+instance QStatusBarSuper M280.QWidget where
+  downToQStatusBar = castQStatusBarToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QStatusBarConst $ castQWidgetToQStatusBar ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QStatusBarConstGc fptr' $ castQWidgetToQStatusBar ptr'
+instance QStatusBarSuper M30.QObject where
+  downToQStatusBar = castQStatusBarToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QStatusBarConst $ castQObjectToQStatusBar ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QStatusBarConstGc fptr' $ castQObjectToQStatusBar ptr'
+
+class QStatusBarSuperConst a where
+  downToQStatusBarConst :: a -> QStatusBarConst
+
+instance QStatusBarSuperConst M280.QWidgetConst where
+  downToQStatusBarConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QStatusBarConst $ castQWidgetToQStatusBar ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QStatusBarConstGc fptr' $ castQWidgetToQStatusBar ptr'
+instance QStatusBarSuperConst M30.QObjectConst where
+  downToQStatusBarConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QStatusBarConst $ castQObjectToQStatusBar ptr'
+      cast' (M30.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/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,571 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  tabPosition,
+  tabShape,
+  tabText,
+  tabToolTip,
+  tabWhatsThis,
+  tabsClosable,
+  usesScrollButtons,
+  widget,
+  QTabWidgetPtr (..),
+  addTab,
+  clear,
+  setCurrentIndex,
+  setCurrentWidget,
+  setDocumentMode,
+  setElideMode,
+  setIconSize,
+  insertTab,
+  setMovable,
+  removeTab,
+  setCornerWidget,
+  setTabEnabled,
+  setTabText,
+  setTabToolTip,
+  setTabWhatsThis,
+  setTabBarAutoHide,
+  setTabPosition,
+  setTabShape,
+  setTabsClosable,
+  setUsesScrollButtons,
+  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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M42
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QTabWidget)
+foreign import ccall "genpop__QTabWidget_addTab" addTab' ::  HoppyF.Ptr QTabWidget -> HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.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 M280.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 M280.QWidget)
+foreign import ccall "genpop__QTabWidget_setCurrentWidget" setCurrentWidget' ::  HoppyF.Ptr QTabWidget -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_documentMode" documentMode' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QTabWidget_setDocumentMode" setDocumentMode' ::  HoppyF.Ptr QTabWidget -> HoppyFHR.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 M42.QSizeConst)
+foreign import ccall "genpop__QTabWidget_setIconSize" setIconSize' ::  HoppyF.Ptr QTabWidget -> HoppyF.Ptr M42.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_indexOf" indexOf' ::  HoppyF.Ptr QTabWidgetConst -> HoppyF.Ptr M280.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTabWidget_insertTab" insertTab' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTabWidget_isTabEnabled" isTabEnabled' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QTabWidget_isMovable" isMovable' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QTabWidget_setMovable" setMovable' ::  HoppyF.Ptr QTabWidget -> HoppyFHR.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 M280.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_setTabEnabled" setTabEnabled' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_setTabText" setTabText' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_setTabToolTip" setTabToolTip' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_setTabWhatsThis" setTabWhatsThis' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_tabBarAutoHide" tabBarAutoHide' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QTabWidget_setTabBarAutoHide" setTabBarAutoHide' ::  HoppyF.Ptr QTabWidget -> HoppyFHR.CBool -> HoppyP.IO ()
+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 M46.QStringConst)
+foreign import ccall "genpop__QTabWidget_tabToolTip" tabToolTip' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QTabWidget_tabWhatsThis" tabWhatsThis' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QTabWidget_tabsClosable" tabsClosable' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QTabWidget_setTabsClosable" setTabsClosable' ::  HoppyF.Ptr QTabWidget -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_usesScrollButtons" usesScrollButtons' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QTabWidget_setUsesScrollButtons" setUsesScrollButtons' ::  HoppyF.Ptr QTabWidget -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_widget" widget' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M280.QWidget)
+foreign import ccall "gencast__QTabWidget__QWidget" castQTabWidgetToQWidget :: HoppyF.Ptr QTabWidgetConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QTabWidget" castQWidgetToQTabWidget :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QTabWidgetConst
+foreign import ccall "gencast__QTabWidget__QObject" castQTabWidgetToQObject :: HoppyF.Ptr QTabWidgetConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QTabWidget" castQObjectToQTabWidget :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QTabWidgetConstPtr a => QTabWidgetValue a where
+#else
+instance QTabWidgetConstPtr a => QTabWidgetValue a where
+#endif
+  withQTabWidgetPtr = HoppyP.flip ($) . toQTabWidgetConst
+
+class (M280.QWidgetConstPtr this) => QTabWidgetConstPtr this where
+  toQTabWidgetConst :: this -> QTabWidgetConst
+
+cornerWidget :: (QTabWidgetValue arg'1) => arg'1 -> M58.QtCorner -> HoppyP.IO M280.QWidget
+cornerWidget arg'1 arg'2 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  HoppyP.fmap M280.QWidget
+  (cornerWidget' arg'1' arg'2')
+
+count :: (QTabWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+count arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (count' arg'1')
+
+currentIndex :: (QTabWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+currentIndex arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (currentIndex' arg'1')
+
+currentWidget :: (QTabWidgetValue arg'1) => arg'1 -> HoppyP.IO M280.QWidget
+currentWidget arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M280.QWidget
+  (currentWidget' arg'1')
+
+documentMode :: (QTabWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+documentMode arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (documentMode' arg'1')
+
+elideMode :: (QTabWidgetValue arg'1) => arg'1 -> HoppyP.IO M58.QtTextElideMode
+elideMode arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (elideMode' arg'1')
+
+iconSize :: (QTabWidgetValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+iconSize arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (iconSize' arg'1')
+
+indexOf :: (QTabWidgetValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Int
+indexOf arg'1 arg'2 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (indexOf' arg'1' arg'2')
+
+isTabEnabled :: (QTabWidgetValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Bool
+isTabEnabled arg'1 arg'2 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap (/= 0)
+  (isTabEnabled' arg'1' arg'2')
+
+isMovable :: (QTabWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isMovable arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isMovable' arg'1')
+
+tabBarAutoHide :: (QTabWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+tabBarAutoHide arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (tabBarAutoHide' arg'1')
+
+tabPosition :: (QTabWidgetValue arg'1) => arg'1 -> HoppyP.IO QTabWidgetTabPosition
+tabPosition arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (tabPosition' arg'1')
+
+tabShape :: (QTabWidgetValue arg'1) => arg'1 -> HoppyP.IO QTabWidgetTabShape
+tabShape arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (tabShape' arg'1')
+
+tabText :: (QTabWidgetValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QtahP.String
+tabText arg'1 arg'2 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (tabText' arg'1' arg'2')
+
+tabToolTip :: (QTabWidgetValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QtahP.String
+tabToolTip arg'1 arg'2 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (tabToolTip' arg'1' arg'2')
+
+tabWhatsThis :: (QTabWidgetValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QtahP.String
+tabWhatsThis arg'1 arg'2 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (tabWhatsThis' arg'1' arg'2')
+
+tabsClosable :: (QTabWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+tabsClosable arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (tabsClosable' arg'1')
+
+usesScrollButtons :: (QTabWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+usesScrollButtons arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (usesScrollButtons' arg'1')
+
+widget :: (QTabWidgetValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO M280.QWidget
+widget arg'1 arg'2 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap M280.QWidget
+  (widget' arg'1' arg'2')
+
+class (QTabWidgetConstPtr this, M280.QWidgetPtr this) => QTabWidgetPtr this where
+  toQTabWidget :: this -> QTabWidget
+
+addTab :: (QTabWidgetPtr arg'1, M280.QWidgetPtr arg'2, M46.QStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Int
+addTab arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (addTab' arg'1' arg'2' arg'3')
+
+clear :: (QTabWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+setCurrentIndex :: (QTabWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setCurrentIndex arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setCurrentIndex' arg'1' arg'2')
+
+setCurrentWidget :: (QTabWidgetPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setCurrentWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  (setCurrentWidget' arg'1' arg'2')
+
+setDocumentMode :: (QTabWidgetPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setDocumentMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setDocumentMode' arg'1' arg'2')
+
+setElideMode :: (QTabWidgetPtr arg'1) => arg'1 -> M58.QtTextElideMode -> HoppyP.IO ()
+setElideMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setElideMode' arg'1' arg'2')
+
+setIconSize :: (QTabWidgetPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setIconSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIconSize' arg'1' arg'2')
+
+insertTab :: (QTabWidgetPtr arg'1, M280.QWidgetPtr arg'3, M46.QStringValue arg'4) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyFHR.withCppPtr (M280.toQWidget arg'3) $ \arg'3' ->
+  M46.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (insertTab' arg'1' arg'2' arg'3' arg'4')
+
+setMovable :: (QTabWidgetPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setMovable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setMovable' arg'1' arg'2')
+
+removeTab :: (QTabWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+removeTab arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (removeTab' arg'1' arg'2')
+
+setCornerWidget :: (QTabWidgetPtr arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> M58.QtCorner -> HoppyP.IO ()
+setCornerWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
+  (setCornerWidget' arg'1' arg'2' arg'3')
+
+setTabEnabled :: (QTabWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Bool -> HoppyP.IO ()
+setTabEnabled arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = if arg'3 then 1 else 0 in
+  (setTabEnabled' arg'1' arg'2' arg'3')
+
+setTabText :: (QTabWidgetPtr arg'1, M46.QStringValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+setTabText arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setTabText' arg'1' arg'2' arg'3')
+
+setTabToolTip :: (QTabWidgetPtr arg'1, M46.QStringValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+setTabToolTip arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setTabToolTip' arg'1' arg'2' arg'3')
+
+setTabWhatsThis :: (QTabWidgetPtr arg'1, M46.QStringValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO ()
+setTabWhatsThis arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setTabWhatsThis' arg'1' arg'2' arg'3')
+
+setTabBarAutoHide :: (QTabWidgetPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setTabBarAutoHide arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setTabBarAutoHide' arg'1' arg'2')
+
+setTabPosition :: (QTabWidgetPtr arg'1) => arg'1 -> QTabWidgetTabPosition -> HoppyP.IO ()
+setTabPosition arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setTabPosition' arg'1' arg'2')
+
+setTabShape :: (QTabWidgetPtr arg'1) => arg'1 -> QTabWidgetTabShape -> HoppyP.IO ()
+setTabShape arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setTabShape' arg'1' arg'2')
+
+setTabsClosable :: (QTabWidgetPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setTabsClosable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setTabsClosable' arg'1' arg'2')
+
+setUsesScrollButtons :: (QTabWidgetPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setUsesScrollButtons arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setUsesScrollButtons' 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 M280.QWidgetConstPtr QTabWidgetConst where
+  toQWidgetConst (QTabWidgetConst ptr') = M280.QWidgetConst $ castQTabWidgetToQWidget ptr'
+  toQWidgetConst (QTabWidgetConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQTabWidgetToQWidget ptr'
+
+instance M30.QObjectConstPtr QTabWidgetConst where
+  toQObjectConst (QTabWidgetConst ptr') = M30.QObjectConst $ castQTabWidgetToQObject ptr'
+  toQObjectConst (QTabWidgetConstGc fptr' ptr') = M30.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 M280.QWidgetConstPtr QTabWidget where
+  toQWidgetConst (QTabWidget ptr') = M280.QWidgetConst $ castQTabWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+  toQWidgetConst (QTabWidgetGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQTabWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+
+instance M280.QWidgetPtr QTabWidget where
+  toQWidget (QTabWidget ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQTabWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+  toQWidget (QTabWidgetGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQTabWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+
+instance M30.QObjectConstPtr QTabWidget where
+  toQObjectConst (QTabWidget ptr') = M30.QObjectConst $ castQTabWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+  toQObjectConst (QTabWidgetGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQTabWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+
+instance M30.QObjectPtr QTabWidget where
+  toQObject (QTabWidget ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQTabWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+  toQObject (QTabWidgetGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQTabWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+
+new ::  HoppyP.IO QTabWidget
+new =
+  HoppyP.fmap QTabWidget
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QTabWidget
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QTabWidget
+  (newWithParent' arg'1')
+
+class QTabWidgetSuper a where
+  downToQTabWidget :: a -> QTabWidget
+
+instance QTabWidgetSuper M280.QWidget where
+  downToQTabWidget = castQTabWidgetToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QTabWidgetConst $ castQWidgetToQTabWidget ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QTabWidgetConstGc fptr' $ castQWidgetToQTabWidget ptr'
+instance QTabWidgetSuper M30.QObject where
+  downToQTabWidget = castQTabWidgetToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QTabWidgetConst $ castQObjectToQTabWidget ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QTabWidgetConstGc fptr' $ castQObjectToQTabWidget ptr'
+
+class QTabWidgetSuperConst a where
+  downToQTabWidgetConst :: a -> QTabWidgetConst
+
+instance QTabWidgetSuperConst M280.QWidgetConst where
+  downToQTabWidgetConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QTabWidgetConst $ castQWidgetToQTabWidget ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QTabWidgetConstGc fptr' $ castQWidgetToQTabWidget ptr'
+instance QTabWidgetSuperConst M30.QObjectConst where
+  downToQTabWidgetConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QTabWidgetConst $ castQObjectToQTabWidget ptr'
+      cast' (M30.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
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QTabWidgetTabPosition where
+  fromEnum North = 0
+  fromEnum South = 1
+  fromEnum West = 2
+  fromEnum East = 3
+  
+  toEnum (0) = North
+  toEnum (1) = South
+  toEnum (2) = West
+  toEnum (3) = East
+  toEnum n' = HoppyP.error $ "Unknown QTabWidgetTabPosition numeric value: " ++ HoppyP.show n'
+
+data QTabWidgetTabShape =
+  Rounded
+  | Triangular
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QTabWidgetTabShape where
+  fromEnum Rounded = 0
+  fromEnum Triangular = 1
+  
+  toEnum (0) = Rounded
+  toEnum (1) = Triangular
+  toEnum n' = HoppyP.error $ "Unknown QTabWidgetTabShape numeric value: " ++ HoppyP.show n'
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,774 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QTextEdit (
+  castQTextEditToQAbstractScrollArea,
+  castQAbstractScrollAreaToQTextEdit,
+  castQTextEditToQWidget,
+  castQWidgetToQTextEdit,
+  castQTextEditToQObject,
+  castQObjectToQTextEdit,
+  QTextEditValue (..),
+  QTextEditConstPtr (..),
+  acceptRichText,
+  alignment,
+  anchorAt,
+  canPaste,
+  cursorRect,
+  cursorWidth,
+  documentTitle,
+  fontFamily,
+  fontItalic,
+  fontPointSize,
+  fontUnderline,
+  fontWeight,
+  lineWrapColumnOrWidth,
+  lineWrapMode,
+  overwriteMode,
+  isReadOnly,
+  tabChangesFocus,
+  tabStopWidth,
+  textBackgroundColor,
+  textColor,
+  toHtml,
+  toPlainText,
+  isUndoRedoEnabled,
+  QTextEditPtr (..),
+  setAcceptRichText,
+  setAlignment,
+  append,
+  clear,
+  copy,
+  createStandardContextMenu,
+  createStandardContextMenuAt,
+  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,
+  QTextEditConst (..),
+  castQTextEditToConst,
+  QTextEdit (..),
+  castQTextEditToNonconst,
+  new,
+  newWithParent,
+  newWithText,
+  newWithTextAndParent,
+  QTextEditSuper (..),
+  QTextEditSuperConst (..),
+  QTextEditLineWrapMode (..),
+  ) 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 M30
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QColor as M92
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea as M168
+import qualified Graphics.UI.Qtah.Generated.Widgets.QMenu as M238
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QTextEdit)
+foreign import ccall "genpop__QTextEdit_newWithText" newWithText' ::  HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr QTextEdit)
+foreign import ccall "genpop__QTextEdit_newWithTextAndParent" newWithTextAndParent' ::  HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M280.QWidget -> HoppyP.IO (HoppyF.Ptr QTextEdit)
+foreign import ccall "genpop__QTextEdit_acceptRichText" acceptRichText' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QTextEdit_setAcceptRichText" setAcceptRichText' ::  HoppyF.Ptr QTextEdit -> HoppyFHR.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 M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QTextEdit_append" append' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_canPaste" canPaste' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFHR.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 M238.QMenu)
+foreign import ccall "genpop__QTextEdit_createStandardContextMenuAt" createStandardContextMenuAt' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M238.QMenu)
+foreign import ccall "genpop__QTextEdit_cursorRect" cursorRect' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO (HoppyF.Ptr M38.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 M46.QStringConst)
+foreign import ccall "genpop__QTextEdit_setDocumentTitle" setDocumentTitle' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M46.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 M46.QStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QTextEdit_fontFamily" fontFamily' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QTextEdit_setFontFamily" setFontFamily' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_fontItalic" fontItalic' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QTextEdit_setFontItalic" setFontItalic' ::  HoppyF.Ptr QTextEdit -> HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QTextEdit_setFontUnderline" setFontUnderline' ::  HoppyF.Ptr QTextEdit -> HoppyFHR.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 M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_insertPlainText" insertPlainText' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M46.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 HoppyFHR.CBool
+foreign import ccall "genpop__QTextEdit_setOverwriteMode" setOverwriteMode' ::  HoppyF.Ptr QTextEdit -> HoppyFHR.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 HoppyFHR.CBool
+foreign import ccall "genpop__QTextEdit_setReadOnly" setReadOnly' ::  HoppyF.Ptr QTextEdit -> HoppyFHR.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 M46.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 M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_setPlainText" setPlainText' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_setText" setText' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_tabChangesFocus" tabChangesFocus' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QTextEdit_setTabChangesFocus" setTabChangesFocus' ::  HoppyF.Ptr QTextEdit -> HoppyFHR.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 M92.QColorConst)
+foreign import ccall "genpop__QTextEdit_setTextBackgroundColor" setTextBackgroundColor' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M92.QColorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_textColor" textColor' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO (HoppyF.Ptr M92.QColorConst)
+foreign import ccall "genpop__QTextEdit_setTextColor" setTextColor' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M92.QColorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_toHtml" toHtml' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QTextEdit_toPlainText" toPlainText' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO (HoppyF.Ptr M46.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 HoppyFHR.CBool
+foreign import ccall "genpop__QTextEdit_setUndoRedoEnabled" setUndoRedoEnabled' ::  HoppyF.Ptr QTextEdit -> HoppyFHR.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 "gencast__QTextEdit__QAbstractScrollArea" castQTextEditToQAbstractScrollArea :: HoppyF.Ptr QTextEditConst -> HoppyF.Ptr M168.QAbstractScrollAreaConst
+foreign import ccall "gencast__QAbstractScrollArea__QTextEdit" castQAbstractScrollAreaToQTextEdit :: HoppyF.Ptr M168.QAbstractScrollAreaConst -> HoppyF.Ptr QTextEditConst
+foreign import ccall "gencast__QTextEdit__QWidget" castQTextEditToQWidget :: HoppyF.Ptr QTextEditConst -> HoppyF.Ptr M280.QWidgetConst
+foreign import ccall "gencast__QWidget__QTextEdit" castQWidgetToQTextEdit :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QTextEditConst
+foreign import ccall "gencast__QTextEdit__QObject" castQTextEditToQObject :: HoppyF.Ptr QTextEditConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QTextEdit" castQObjectToQTextEdit :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QTextEditConstPtr a => QTextEditValue a where
+#else
+instance QTextEditConstPtr a => QTextEditValue a where
+#endif
+  withQTextEditPtr = HoppyP.flip ($) . toQTextEditConst
+
+class (M168.QAbstractScrollAreaConstPtr this) => QTextEditConstPtr this where
+  toQTextEditConst :: this -> QTextEditConst
+
+acceptRichText :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+acceptRichText arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (acceptRichText' arg'1')
+
+alignment :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO M58.QtAlignment
+alignment arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtAlignment
+  (alignment' arg'1')
+
+anchorAt :: (QTextEditValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QtahP.String
+anchorAt arg'1 arg'2 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (anchorAt' arg'1' arg'2')
+
+canPaste :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+canPaste arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (canPaste' arg'1')
+
+cursorRect :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+cursorRect arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (cursorRect' arg'1')
+
+cursorWidth :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+cursorWidth arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (cursorWidth' arg'1')
+
+documentTitle :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+documentTitle arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (documentTitle' arg'1')
+
+fontFamily :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+fontFamily arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (fontFamily' arg'1')
+
+fontItalic :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+fontItalic arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (fontItalic' arg'1')
+
+fontPointSize :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+fontPointSize arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (fontPointSize' arg'1')
+
+fontUnderline :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+fontUnderline arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (fontUnderline' arg'1')
+
+fontWeight :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+fontWeight arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (fontWeight' arg'1')
+
+lineWrapColumnOrWidth :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+lineWrapColumnOrWidth arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (lineWrapColumnOrWidth' arg'1')
+
+lineWrapMode :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO QTextEditLineWrapMode
+lineWrapMode arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (lineWrapMode' arg'1')
+
+overwriteMode :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+overwriteMode arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (overwriteMode' arg'1')
+
+isReadOnly :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isReadOnly arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isReadOnly' arg'1')
+
+tabChangesFocus :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+tabChangesFocus arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (tabChangesFocus' arg'1')
+
+tabStopWidth :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+tabStopWidth arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (tabStopWidth' arg'1')
+
+textBackgroundColor :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO HColor.HColor
+textBackgroundColor arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M92.QColorConst) =<<
+  (textBackgroundColor' arg'1')
+
+textColor :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO HColor.HColor
+textColor arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M92.QColorConst) =<<
+  (textColor' arg'1')
+
+toHtml :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+toHtml arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (toHtml' arg'1')
+
+toPlainText :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+toPlainText arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (toPlainText' arg'1')
+
+isUndoRedoEnabled :: (QTextEditValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isUndoRedoEnabled arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isUndoRedoEnabled' arg'1')
+
+class (QTextEditConstPtr this, M168.QAbstractScrollAreaPtr this) => QTextEditPtr this where
+  toQTextEdit :: this -> QTextEdit
+
+setAcceptRichText :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setAcceptRichText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setAcceptRichText' arg'1' arg'2')
+
+setAlignment :: (QTextEditPtr arg'1, M58.IsQtAlignment arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtAlignment $ M58.toQtAlignment arg'2 in
+  (setAlignment' arg'1' arg'2')
+
+append :: (QTextEditPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+clear :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+copy :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+copy arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (copy' arg'1')
+
+createStandardContextMenu :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.IO M238.QMenu
+createStandardContextMenu arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  HoppyP.fmap M238.QMenu
+  (createStandardContextMenu' arg'1')
+
+createStandardContextMenuAt :: (QTextEditPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO M238.QMenu
+createStandardContextMenuAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M238.QMenu
+  (createStandardContextMenuAt' arg'1' arg'2')
+
+setCursorWidth :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setCursorWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setCursorWidth' arg'1' arg'2')
+
+cut :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+cut arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (cut' arg'1')
+
+setDocumentTitle :: (QTextEditPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setDocumentTitle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setDocumentTitle' arg'1' arg'2')
+
+ensureCursorVisible :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+ensureCursorVisible arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (ensureCursorVisible' arg'1')
+
+find :: (QTextEditPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+find arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap (/= 0)
+  (find' arg'1' arg'2')
+
+setFontFamily :: (QTextEditPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setFontFamily arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFontFamily' arg'1' arg'2')
+
+setFontItalic :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setFontItalic arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setFontItalic' arg'1' arg'2')
+
+setFontPointSize :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setFontPointSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setFontPointSize' arg'1' arg'2')
+
+setFontUnderline :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setFontUnderline arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setFontUnderline' arg'1' arg'2')
+
+setFontWeight :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setFontWeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setFontWeight' arg'1' arg'2')
+
+insertHtml :: (QTextEditPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+insertHtml arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (insertHtml' arg'1' arg'2')
+
+insertPlainText :: (QTextEditPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+insertPlainText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (insertPlainText' arg'1' arg'2')
+
+setLineWrapColumnOrWidth :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setLineWrapColumnOrWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setLineWrapColumnOrWidth' arg'1' arg'2')
+
+setLineWrapMode :: (QTextEditPtr arg'1) => arg'1 -> QTextEditLineWrapMode -> HoppyP.IO ()
+setLineWrapMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setLineWrapMode' arg'1' arg'2')
+
+setOverwriteMode :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setOverwriteMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setOverwriteMode' arg'1' arg'2')
+
+paste :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+paste arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (paste' arg'1')
+
+setReadOnly :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setReadOnly arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setReadOnly' arg'1' arg'2')
+
+redo :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+redo arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (redo' arg'1')
+
+scrollToAnchor :: (QTextEditPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+scrollToAnchor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (scrollToAnchor' arg'1' arg'2')
+
+selectAll :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+selectAll arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (selectAll' arg'1')
+
+setHtml :: (QTextEditPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setHtml arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setHtml' arg'1' arg'2')
+
+setPlainText :: (QTextEditPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setPlainText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPlainText' arg'1' arg'2')
+
+setText :: (QTextEditPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setText' arg'1' arg'2')
+
+setTabChangesFocus :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setTabChangesFocus arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setTabChangesFocus' arg'1' arg'2')
+
+setTabStopWidth :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setTabStopWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setTabStopWidth' arg'1' arg'2')
+
+setTextBackgroundColor :: (QTextEditPtr arg'1, M92.QColorValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setTextBackgroundColor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M92.withQColorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTextBackgroundColor' arg'1' arg'2')
+
+setTextColor :: (QTextEditPtr arg'1, M92.QColorValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setTextColor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M92.withQColorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTextColor' arg'1' arg'2')
+
+undo :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+undo arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (undo' arg'1')
+
+setUndoRedoEnabled :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setUndoRedoEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setUndoRedoEnabled' arg'1' arg'2')
+
+zoomIn :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+zoomIn arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (zoomIn' arg'1')
+
+zoomInPoints :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+zoomInPoints arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (zoomInPoints' arg'1' arg'2')
+
+zoomOut :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.IO ()
+zoomOut arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (zoomOut' arg'1')
+
+zoomOutPoints :: (QTextEditPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+zoomOutPoints arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (zoomOutPoints' 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 M168.QAbstractScrollAreaConstPtr QTextEditConst where
+  toQAbstractScrollAreaConst (QTextEditConst ptr') = M168.QAbstractScrollAreaConst $ castQTextEditToQAbstractScrollArea ptr'
+  toQAbstractScrollAreaConst (QTextEditConstGc fptr' ptr') = M168.QAbstractScrollAreaConstGc fptr' $ castQTextEditToQAbstractScrollArea ptr'
+
+instance M280.QWidgetConstPtr QTextEditConst where
+  toQWidgetConst (QTextEditConst ptr') = M280.QWidgetConst $ castQTextEditToQWidget ptr'
+  toQWidgetConst (QTextEditConstGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQTextEditToQWidget ptr'
+
+instance M30.QObjectConstPtr QTextEditConst where
+  toQObjectConst (QTextEditConst ptr') = M30.QObjectConst $ castQTextEditToQObject ptr'
+  toQObjectConst (QTextEditConstGc fptr' ptr') = M30.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 M168.QAbstractScrollAreaConstPtr QTextEdit where
+  toQAbstractScrollAreaConst (QTextEdit ptr') = M168.QAbstractScrollAreaConst $ castQTextEditToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+  toQAbstractScrollAreaConst (QTextEditGc fptr' ptr') = M168.QAbstractScrollAreaConstGc fptr' $ castQTextEditToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+
+instance M168.QAbstractScrollAreaPtr QTextEdit where
+  toQAbstractScrollArea (QTextEdit ptr') = M168.QAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr M168.QAbstractScrollAreaConst -> HoppyF.Ptr M168.QAbstractScrollArea) $ castQTextEditToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+  toQAbstractScrollArea (QTextEditGc fptr' ptr') = M168.QAbstractScrollAreaGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M168.QAbstractScrollAreaConst -> HoppyF.Ptr M168.QAbstractScrollArea) $ castQTextEditToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+
+instance M280.QWidgetConstPtr QTextEdit where
+  toQWidgetConst (QTextEdit ptr') = M280.QWidgetConst $ castQTextEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+  toQWidgetConst (QTextEditGc fptr' ptr') = M280.QWidgetConstGc fptr' $ castQTextEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+
+instance M280.QWidgetPtr QTextEdit where
+  toQWidget (QTextEdit ptr') = M280.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQTextEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+  toQWidget (QTextEditGc fptr' ptr') = M280.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr M280.QWidget) $ castQTextEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+
+instance M30.QObjectConstPtr QTextEdit where
+  toQObjectConst (QTextEdit ptr') = M30.QObjectConst $ castQTextEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+  toQObjectConst (QTextEditGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQTextEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+
+instance M30.QObjectPtr QTextEdit where
+  toQObject (QTextEdit ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQTextEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+  toQObject (QTextEditGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQTextEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+
+new ::  HoppyP.IO QTextEdit
+new =
+  HoppyP.fmap QTextEdit
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QTextEdit
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QTextEdit
+  (newWithParent' arg'1')
+
+newWithText :: (M46.QStringValue arg'1) => arg'1 -> HoppyP.IO QTextEdit
+newWithText arg'1 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QTextEdit
+  (newWithText' arg'1')
+
+newWithTextAndParent :: (M46.QStringValue arg'1, M280.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QTextEdit
+newWithTextAndParent arg'1 arg'2 =
+  M46.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M280.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QTextEdit
+  (newWithTextAndParent' arg'1' arg'2')
+
+class QTextEditSuper a where
+  downToQTextEdit :: a -> QTextEdit
+
+instance QTextEditSuper M168.QAbstractScrollArea where
+  downToQTextEdit = castQTextEditToNonconst . cast' . M168.castQAbstractScrollAreaToConst
+    where
+      cast' (M168.QAbstractScrollAreaConst ptr') = QTextEditConst $ castQAbstractScrollAreaToQTextEdit ptr'
+      cast' (M168.QAbstractScrollAreaConstGc fptr' ptr') = QTextEditConstGc fptr' $ castQAbstractScrollAreaToQTextEdit ptr'
+instance QTextEditSuper M280.QWidget where
+  downToQTextEdit = castQTextEditToNonconst . cast' . M280.castQWidgetToConst
+    where
+      cast' (M280.QWidgetConst ptr') = QTextEditConst $ castQWidgetToQTextEdit ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QTextEditConstGc fptr' $ castQWidgetToQTextEdit ptr'
+instance QTextEditSuper M30.QObject where
+  downToQTextEdit = castQTextEditToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QTextEditConst $ castQObjectToQTextEdit ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QTextEditConstGc fptr' $ castQObjectToQTextEdit ptr'
+
+class QTextEditSuperConst a where
+  downToQTextEditConst :: a -> QTextEditConst
+
+instance QTextEditSuperConst M168.QAbstractScrollAreaConst where
+  downToQTextEditConst = cast'
+    where
+      cast' (M168.QAbstractScrollAreaConst ptr') = QTextEditConst $ castQAbstractScrollAreaToQTextEdit ptr'
+      cast' (M168.QAbstractScrollAreaConstGc fptr' ptr') = QTextEditConstGc fptr' $ castQAbstractScrollAreaToQTextEdit ptr'
+instance QTextEditSuperConst M280.QWidgetConst where
+  downToQTextEditConst = cast'
+    where
+      cast' (M280.QWidgetConst ptr') = QTextEditConst $ castQWidgetToQTextEdit ptr'
+      cast' (M280.QWidgetConstGc fptr' ptr') = QTextEditConstGc fptr' $ castQWidgetToQTextEdit ptr'
+instance QTextEditSuperConst M30.QObjectConst where
+  downToQTextEditConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QTextEditConst $ castQObjectToQTextEdit ptr'
+      cast' (M30.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
+
+data QTextEditLineWrapMode =
+  NoWrap
+  | WidgetWidth
+  | FixedPixelWidth
+  | FixedColumnWidth
+  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)
+
+instance HoppyP.Enum QTextEditLineWrapMode where
+  fromEnum NoWrap = 0
+  fromEnum WidgetWidth = 1
+  fromEnum FixedPixelWidth = 2
+  fromEnum FixedColumnWidth = 3
+  
+  toEnum (0) = NoWrap
+  toEnum (1) = WidgetWidth
+  toEnum (2) = FixedPixelWidth
+  toEnum (3) = FixedColumnWidth
+  toEnum n' = HoppyP.error $ "Unknown QTextEditLineWrapMode numeric value: " ++ HoppyP.show n'
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,258 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Graphics.UI.Qtah.Generated.Widgets.QBoxLayout as M180
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayout as M228
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M230
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QVBoxLayout)
+foreign import ccall "gencast__QVBoxLayout__QBoxLayout" castQVBoxLayoutToQBoxLayout :: HoppyF.Ptr QVBoxLayoutConst -> HoppyF.Ptr M180.QBoxLayoutConst
+foreign import ccall "gencast__QBoxLayout__QVBoxLayout" castQBoxLayoutToQVBoxLayout :: HoppyF.Ptr M180.QBoxLayoutConst -> HoppyF.Ptr QVBoxLayoutConst
+foreign import ccall "gencast__QVBoxLayout__QLayout" castQVBoxLayoutToQLayout :: HoppyF.Ptr QVBoxLayoutConst -> HoppyF.Ptr M228.QLayoutConst
+foreign import ccall "gencast__QLayout__QVBoxLayout" castQLayoutToQVBoxLayout :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr QVBoxLayoutConst
+foreign import ccall "gencast__QVBoxLayout__QObject" castQVBoxLayoutToQObject :: HoppyF.Ptr QVBoxLayoutConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QVBoxLayout" castQObjectToQVBoxLayout :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr QVBoxLayoutConst
+foreign import ccall "gencast__QVBoxLayout__QLayoutItem" castQVBoxLayoutToQLayoutItem :: HoppyF.Ptr QVBoxLayoutConst -> HoppyF.Ptr M230.QLayoutItemConst
+foreign import ccall "gencast__QLayoutItem__QVBoxLayout" castQLayoutItemToQVBoxLayout :: HoppyF.Ptr M230.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QVBoxLayoutConstPtr a => QVBoxLayoutValue a where
+#else
+instance QVBoxLayoutConstPtr a => QVBoxLayoutValue a where
+#endif
+  withQVBoxLayoutPtr = HoppyP.flip ($) . toQVBoxLayoutConst
+
+class (M180.QBoxLayoutConstPtr this) => QVBoxLayoutConstPtr this where
+  toQVBoxLayoutConst :: this -> QVBoxLayoutConst
+
+class (QVBoxLayoutConstPtr this, M180.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 M180.QBoxLayoutConstPtr QVBoxLayoutConst where
+  toQBoxLayoutConst (QVBoxLayoutConst ptr') = M180.QBoxLayoutConst $ castQVBoxLayoutToQBoxLayout ptr'
+  toQBoxLayoutConst (QVBoxLayoutConstGc fptr' ptr') = M180.QBoxLayoutConstGc fptr' $ castQVBoxLayoutToQBoxLayout ptr'
+
+instance M228.QLayoutConstPtr QVBoxLayoutConst where
+  toQLayoutConst (QVBoxLayoutConst ptr') = M228.QLayoutConst $ castQVBoxLayoutToQLayout ptr'
+  toQLayoutConst (QVBoxLayoutConstGc fptr' ptr') = M228.QLayoutConstGc fptr' $ castQVBoxLayoutToQLayout ptr'
+
+instance M30.QObjectConstPtr QVBoxLayoutConst where
+  toQObjectConst (QVBoxLayoutConst ptr') = M30.QObjectConst $ castQVBoxLayoutToQObject ptr'
+  toQObjectConst (QVBoxLayoutConstGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQVBoxLayoutToQObject ptr'
+
+instance M230.QLayoutItemConstPtr QVBoxLayoutConst where
+  toQLayoutItemConst (QVBoxLayoutConst ptr') = M230.QLayoutItemConst $ castQVBoxLayoutToQLayoutItem ptr'
+  toQLayoutItemConst (QVBoxLayoutConstGc fptr' ptr') = M230.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 M180.QBoxLayoutConstPtr QVBoxLayout where
+  toQBoxLayoutConst (QVBoxLayout ptr') = M180.QBoxLayoutConst $ castQVBoxLayoutToQBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+  toQBoxLayoutConst (QVBoxLayoutGc fptr' ptr') = M180.QBoxLayoutConstGc fptr' $ castQVBoxLayoutToQBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+
+instance M180.QBoxLayoutPtr QVBoxLayout where
+  toQBoxLayout (QVBoxLayout ptr') = M180.QBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr M180.QBoxLayoutConst -> HoppyF.Ptr M180.QBoxLayout) $ castQVBoxLayoutToQBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+  toQBoxLayout (QVBoxLayoutGc fptr' ptr') = M180.QBoxLayoutGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M180.QBoxLayoutConst -> HoppyF.Ptr M180.QBoxLayout) $ castQVBoxLayoutToQBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+
+instance M228.QLayoutConstPtr QVBoxLayout where
+  toQLayoutConst (QVBoxLayout ptr') = M228.QLayoutConst $ castQVBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+  toQLayoutConst (QVBoxLayoutGc fptr' ptr') = M228.QLayoutConstGc fptr' $ castQVBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+
+instance M228.QLayoutPtr QVBoxLayout where
+  toQLayout (QVBoxLayout ptr') = M228.QLayout $ (HoppyF.castPtr :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr M228.QLayout) $ castQVBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+  toQLayout (QVBoxLayoutGc fptr' ptr') = M228.QLayoutGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M228.QLayoutConst -> HoppyF.Ptr M228.QLayout) $ castQVBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+
+instance M30.QObjectConstPtr QVBoxLayout where
+  toQObjectConst (QVBoxLayout ptr') = M30.QObjectConst $ castQVBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+  toQObjectConst (QVBoxLayoutGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQVBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+
+instance M30.QObjectPtr QVBoxLayout where
+  toQObject (QVBoxLayout ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQVBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+  toQObject (QVBoxLayoutGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQVBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+
+instance M230.QLayoutItemConstPtr QVBoxLayout where
+  toQLayoutItemConst (QVBoxLayout ptr') = M230.QLayoutItemConst $ castQVBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+  toQLayoutItemConst (QVBoxLayoutGc fptr' ptr') = M230.QLayoutItemConstGc fptr' $ castQVBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+
+instance M230.QLayoutItemPtr QVBoxLayout where
+  toQLayoutItem (QVBoxLayout ptr') = M230.QLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQVBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+  toQLayoutItem (QVBoxLayoutGc fptr' ptr') = M230.QLayoutItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQVBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+
+new ::  HoppyP.IO QVBoxLayout
+new =
+  HoppyP.fmap QVBoxLayout
+  (new')
+
+newWithParent :: (M280.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QVBoxLayout
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QVBoxLayout
+  (newWithParent' arg'1')
+
+class QVBoxLayoutSuper a where
+  downToQVBoxLayout :: a -> QVBoxLayout
+
+instance QVBoxLayoutSuper M180.QBoxLayout where
+  downToQVBoxLayout = castQVBoxLayoutToNonconst . cast' . M180.castQBoxLayoutToConst
+    where
+      cast' (M180.QBoxLayoutConst ptr') = QVBoxLayoutConst $ castQBoxLayoutToQVBoxLayout ptr'
+      cast' (M180.QBoxLayoutConstGc fptr' ptr') = QVBoxLayoutConstGc fptr' $ castQBoxLayoutToQVBoxLayout ptr'
+instance QVBoxLayoutSuper M228.QLayout where
+  downToQVBoxLayout = castQVBoxLayoutToNonconst . cast' . M228.castQLayoutToConst
+    where
+      cast' (M228.QLayoutConst ptr') = QVBoxLayoutConst $ castQLayoutToQVBoxLayout ptr'
+      cast' (M228.QLayoutConstGc fptr' ptr') = QVBoxLayoutConstGc fptr' $ castQLayoutToQVBoxLayout ptr'
+instance QVBoxLayoutSuper M30.QObject where
+  downToQVBoxLayout = castQVBoxLayoutToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QVBoxLayoutConst $ castQObjectToQVBoxLayout ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QVBoxLayoutConstGc fptr' $ castQObjectToQVBoxLayout ptr'
+instance QVBoxLayoutSuper M230.QLayoutItem where
+  downToQVBoxLayout = castQVBoxLayoutToNonconst . cast' . M230.castQLayoutItemToConst
+    where
+      cast' (M230.QLayoutItemConst ptr') = QVBoxLayoutConst $ castQLayoutItemToQVBoxLayout ptr'
+      cast' (M230.QLayoutItemConstGc fptr' ptr') = QVBoxLayoutConstGc fptr' $ castQLayoutItemToQVBoxLayout ptr'
+
+class QVBoxLayoutSuperConst a where
+  downToQVBoxLayoutConst :: a -> QVBoxLayoutConst
+
+instance QVBoxLayoutSuperConst M180.QBoxLayoutConst where
+  downToQVBoxLayoutConst = cast'
+    where
+      cast' (M180.QBoxLayoutConst ptr') = QVBoxLayoutConst $ castQBoxLayoutToQVBoxLayout ptr'
+      cast' (M180.QBoxLayoutConstGc fptr' ptr') = QVBoxLayoutConstGc fptr' $ castQBoxLayoutToQVBoxLayout ptr'
+instance QVBoxLayoutSuperConst M228.QLayoutConst where
+  downToQVBoxLayoutConst = cast'
+    where
+      cast' (M228.QLayoutConst ptr') = QVBoxLayoutConst $ castQLayoutToQVBoxLayout ptr'
+      cast' (M228.QLayoutConstGc fptr' ptr') = QVBoxLayoutConstGc fptr' $ castQLayoutToQVBoxLayout ptr'
+instance QVBoxLayoutSuperConst M30.QObjectConst where
+  downToQVBoxLayoutConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QVBoxLayoutConst $ castQObjectToQVBoxLayout ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QVBoxLayoutConstGc fptr' $ castQObjectToQVBoxLayout ptr'
+instance QVBoxLayoutSuperConst M230.QLayoutItemConst where
+  downToQVBoxLayoutConst = cast'
+    where
+      cast' (M230.QLayoutItemConst ptr') = QVBoxLayoutConst $ castQLayoutItemToQVBoxLayout ptr'
+      cast' (M230.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,1523 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QWidget (
+  castQWidgetToQObject,
+  castQObjectToQWidget,
+  QWidgetValue (..),
+  QWidgetConstPtr (..),
+  acceptDrops,
+  accessibleDescription,
+  accessibleName,
+  autoFillBackground,
+  baseSize,
+  childAtRaw,
+  childAtPoint,
+  childrenRect,
+  contentsMargins,
+  contentsRect,
+  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,
+  parentWidget,
+  pos,
+  previousInFocusChain,
+  rect,
+  size,
+  sizeHint,
+  sizeIncrement,
+  statusTip,
+  styleSheet,
+  toolTip,
+  underMouse,
+  updatesEnabled,
+  whatsThis,
+  width,
+  window,
+  windowFilePath,
+  windowFlags,
+  windowIconText,
+  windowModality,
+  windowOpacity,
+  windowRole,
+  windowState,
+  windowTitle,
+  x,
+  y,
+  QWidgetPtr (..),
+  activateWindow,
+  addAction,
+  adjustSize,
+  clearFocus,
+  clearMask,
+  close,
+  setFont,
+  grabKeyboard,
+  grabMouse,
+  hide,
+  insertAction,
+  lower,
+  move,
+  raise,
+  releaseKeyboard,
+  releaseMouse,
+  removeAction,
+  repaint,
+  repaintRaw,
+  repaintRect,
+  resize,
+  resizeRaw,
+  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,
+  setStatusTip,
+  setStyleSheet,
+  setToolTip,
+  setUpdatesEnabled,
+  setVisible,
+  setWhatsThis,
+  setWindowFilePath,
+  setWindowIconText,
+  setWindowModified,
+  setWindowRole,
+  show,
+  showFullScreen,
+  showMaximized,
+  showMinimized,
+  showNormal,
+  stackUnder,
+  unsetCursor,
+  unsetLayoutDirection,
+  unsetLocale,
+  update,
+  updateRaw,
+  updateRect,
+  updateGeometry,
+  setWindowFlags,
+  setWindowModality,
+  setWindowOpacity,
+  setWindowState,
+  setWindowTitle,
+  keyboardGrabber,
+  mouseGrabber,
+  setTabOrder,
+  QWidgetConst (..),
+  castQWidgetToConst,
+  QWidget (..),
+  castQWidgetToNonconst,
+  new,
+  newWithParent,
+  QWidgetSuper (..),
+  QWidgetSuperConst (..),
+  ) 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.Generated.Core.QMargins as M24
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M38
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M42
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QFont as M102
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M174
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QLayout as M228
+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 HoppyFHR.CBool
+foreign import ccall "genpop__QWidget_accessibleDescription" accessibleDescription' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QWidget_accessibleName" accessibleName' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M46.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 M174.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 HoppyFHR.CBool
+foreign import ccall "genpop__QWidget_baseSize" baseSize' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M42.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 M34.QPointConst -> HoppyP.IO (HoppyF.Ptr QWidget)
+foreign import ccall "genpop__QWidget_childrenRect" childrenRect' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M38.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 HoppyFHR.CBool
+foreign import ccall "genpop__QWidget_contentsMargins" contentsMargins' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M24.QMarginsConst)
+foreign import ccall "genpop__QWidget_contentsRect" contentsRect' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M38.QRectConst)
+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 M102.QFontConst)
+foreign import ccall "genpop__QWidget_setFont" setFont' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M102.QFontConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_frameGeometry" frameGeometry' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M38.QRectConst)
+foreign import ccall "genpop__QWidget_frameSize" frameSize' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M42.QSizeConst)
+foreign import ccall "genpop__QWidget_geometry" geometry' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M38.QRectConst)
+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_hasFocus" hasFocus' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QWidget_hasMouseTracking" hasMouseTracking' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFHR.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 M174.QAction -> HoppyF.Ptr M174.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_isActiveWindow" isActiveWindow' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QWidget_isAncestorOf" isAncestorOf' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr QWidget -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QWidget_isEnabled" isEnabled' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QWidget_isEnabledTo" isEnabledTo' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr QWidget -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QWidget_isFullScreen" isFullScreen' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QWidget_isHidden" isHidden' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QWidget_isMaximized" isMaximized' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QWidget_isMinimized" isMinimized' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QWidget_isModal" isModal' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QWidget_isVisible" isVisible' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QWidget_isVisibleTo" isVisibleTo' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr QWidget -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QWidget_isWindow" isWindow' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__QWidget_isWindowModified" isWindowModified' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFHR.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 M228.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 M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QWidget_mapFromGlobal" mapFromGlobal' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QWidget_mapFromParent" mapFromParent' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QWidget_mapTo" mapTo' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr QWidget -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QWidget_mapToGlobal" mapToGlobal' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
+foreign import ccall "genpop__QWidget_mapToParent" mapToParent' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr M34.QPointConst -> HoppyP.IO (HoppyF.Ptr M34.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 M42.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 M42.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 M34.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 M38.QRectConst)
+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 M34.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 M38.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 M174.QAction -> 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 M38.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_resize" resize' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M42.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_resizeRaw" resizeRaw' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+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 M38.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setAcceptDrops" setAcceptDrops' ::  HoppyF.Ptr QWidget -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setAccessibleDescription" setAccessibleDescription' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setAccessibleName" setAccessibleName' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setAutoFillBackground" setAutoFillBackground' ::  HoppyF.Ptr QWidget -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setBaseSize" setBaseSize' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M42.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 M24.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 -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setDisabled" setDisabled' ::  HoppyF.Ptr QWidget -> HoppyFHR.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 M42.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 M38.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setHidden" setHidden' ::  HoppyF.Ptr QWidget -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setLayout" setLayout' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M228.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 M42.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 M42.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 -> HoppyFHR.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 M42.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setSizeIncrementRaw" setSizeIncrementRaw' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setStatusTip" setStatusTip' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setStyleSheet" setStyleSheet' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M46.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 M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setUpdatesEnabled" setUpdatesEnabled' ::  HoppyF.Ptr QWidget -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setVisible" setVisible' ::  HoppyF.Ptr QWidget -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setWhatsThis" setWhatsThis' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setWindowFilePath" setWindowFilePath' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setWindowIconText" setWindowIconText' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setWindowModified" setWindowModified' ::  HoppyF.Ptr QWidget -> HoppyFHR.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setWindowRole" setWindowRole' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M46.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 M42.QSizeConst)
+foreign import ccall "genpop__QWidget_sizeHint" sizeHint' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M42.QSizeConst)
+foreign import ccall "genpop__QWidget_sizeIncrement" sizeIncrement' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M42.QSizeConst)
+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 M46.QStringConst)
+foreign import ccall "genpop__QWidget_styleSheet" styleSheet' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QWidget_toolTip" toolTip' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
+foreign import ccall "genpop__QWidget_underMouse" underMouse' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFHR.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 M38.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 HoppyFHR.CBool
+foreign import ccall "genpop__QWidget_whatsThis" whatsThis' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M46.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 M46.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_windowIconText" windowIconText' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M46.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 M46.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 M46.QStringConst)
+foreign import ccall "genpop__QWidget_setWindowTitle" setWindowTitle' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M46.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 "gencast__QWidget__QObject" castQWidgetToQObject :: HoppyF.Ptr QWidgetConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__QWidget" castQObjectToQWidget :: HoppyF.Ptr M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QWidgetConstPtr a => QWidgetValue a where
+#else
+instance QWidgetConstPtr a => QWidgetValue a where
+#endif
+  withQWidgetPtr = HoppyP.flip ($) . toQWidgetConst
+
+class (M30.QObjectConstPtr this) => QWidgetConstPtr this where
+  toQWidgetConst :: this -> QWidgetConst
+
+acceptDrops :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+acceptDrops arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (acceptDrops' arg'1')
+
+accessibleDescription :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+accessibleDescription arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (accessibleDescription' arg'1')
+
+accessibleName :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+accessibleName arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (accessibleName' arg'1')
+
+autoFillBackground :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+autoFillBackground arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (autoFillBackground' arg'1')
+
+baseSize :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+baseSize arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (baseSize' arg'1')
+
+childAtRaw :: (QWidgetValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QWidget
+childAtRaw arg'1 arg'2 arg'3 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyP.fmap QWidget
+  (childAtRaw' arg'1' arg'2' arg'3')
+
+childAtPoint :: (QWidgetValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QWidget
+childAtPoint arg'1 arg'2 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QWidget
+  (childAtPoint' arg'1' arg'2')
+
+childrenRect :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+childrenRect arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (childrenRect' arg'1')
+
+contentsMargins :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HMargins.HMargins
+contentsMargins arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M24.QMarginsConst) =<<
+  (contentsMargins' arg'1')
+
+contentsRect :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+contentsRect arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (contentsRect' arg'1')
+
+ensurePolished :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO ()
+ensurePolished arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (ensurePolished' arg'1')
+
+focusProxy :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO QWidget
+focusProxy arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWidget
+  (focusProxy' arg'1')
+
+focusWidget :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO QWidget
+focusWidget arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWidget
+  (focusWidget' arg'1')
+
+font :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO M102.QFont
+font arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M102.QFontConst) =<<
+  (font' arg'1')
+
+frameGeometry :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+frameGeometry arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (frameGeometry' arg'1')
+
+frameSize :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+frameSize arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (frameSize' arg'1')
+
+geometry :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+geometry arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (geometry' arg'1')
+
+hasFocus :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasFocus arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasFocus' arg'1')
+
+hasMouseTracking :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+hasMouseTracking arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (hasMouseTracking' arg'1')
+
+height :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+height arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (height' arg'1')
+
+heightForWidth :: (QWidgetValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyP.Int
+heightForWidth arg'1 arg'2 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (heightForWidth' arg'1' arg'2')
+
+isActiveWindow :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isActiveWindow arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isActiveWindow' arg'1')
+
+isAncestorOf :: (QWidgetValue arg'1, QWidgetPtr arg'2) => arg'1 -> 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.fmap (/= 0)
+  (isAncestorOf' arg'1' arg'2')
+
+isEnabled :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isEnabled arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isEnabled' arg'1')
+
+isEnabledTo :: (QWidgetValue arg'1, QWidgetPtr arg'2) => arg'1 -> 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.fmap (/= 0)
+  (isEnabledTo' arg'1' arg'2')
+
+isFullScreen :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isFullScreen arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isFullScreen' arg'1')
+
+isHidden :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isHidden arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isHidden' arg'1')
+
+isMaximized :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isMaximized arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isMaximized' arg'1')
+
+isMinimized :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isMinimized arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isMinimized' arg'1')
+
+isModal :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isModal arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isModal' arg'1')
+
+isVisible :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isVisible arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isVisible' arg'1')
+
+isVisibleTo :: (QWidgetValue arg'1, QWidgetPtr arg'2) => arg'1 -> 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.fmap (/= 0)
+  (isVisibleTo' arg'1' arg'2')
+
+isWindow :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isWindow arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isWindow' arg'1')
+
+isWindowModified :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+isWindowModified arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (isWindowModified' arg'1')
+
+layout :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO M228.QLayout
+layout arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M228.QLayout
+  (layout' arg'1')
+
+layoutDirection :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO M58.QtLayoutDirection
+layoutDirection arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (layoutDirection' arg'1')
+
+mapFrom :: (QWidgetValue arg'1, QWidgetPtr arg'2, M34.QPointValue arg'3) => arg'1 -> 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' ->
+  M34.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (mapFrom' arg'1' arg'2' arg'3')
+
+mapFromGlobal :: (QWidgetValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HPoint.HPoint
+mapFromGlobal arg'1 arg'2 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (mapFromGlobal' arg'1' arg'2')
+
+mapFromParent :: (QWidgetValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HPoint.HPoint
+mapFromParent arg'1 arg'2 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (mapFromParent' arg'1' arg'2')
+
+mapTo :: (QWidgetValue arg'1, QWidgetPtr arg'2, M34.QPointValue arg'3) => arg'1 -> 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' ->
+  M34.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (mapTo' arg'1' arg'2' arg'3')
+
+mapToGlobal :: (QWidgetValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HPoint.HPoint
+mapToGlobal arg'1 arg'2 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (mapToGlobal' arg'1' arg'2')
+
+mapToParent :: (QWidgetValue arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HPoint.HPoint
+mapToParent arg'1 arg'2 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (mapToParent' arg'1' arg'2')
+
+maximumHeight :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+maximumHeight arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (maximumHeight' arg'1')
+
+maximumSize :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+maximumSize arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (maximumSize' arg'1')
+
+maximumWidth :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+maximumWidth arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (maximumWidth' arg'1')
+
+minimumHeight :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+minimumHeight arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (minimumHeight' arg'1')
+
+minimumSize :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+minimumSize arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (minimumSize' arg'1')
+
+minimumWidth :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+minimumWidth arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (minimumWidth' arg'1')
+
+nativeParentWidget :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO QWidget
+nativeParentWidget arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWidget
+  (nativeParentWidget' arg'1')
+
+nextInFocusChain :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO QWidget
+nextInFocusChain arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWidget
+  (nextInFocusChain' arg'1')
+
+normalGeometry :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+normalGeometry arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (normalGeometry' arg'1')
+
+parentWidget :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO QWidget
+parentWidget arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWidget
+  (parentWidget' arg'1')
+
+pos :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
+pos arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
+  (pos' arg'1')
+
+previousInFocusChain :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO QWidget
+previousInFocusChain arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWidget
+  (previousInFocusChain' arg'1')
+
+rect :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HRect.HRect
+rect arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M38.QRectConst) =<<
+  (rect' arg'1')
+
+size :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+size arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (size' arg'1')
+
+sizeHint :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+sizeHint arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (sizeHint' arg'1')
+
+sizeIncrement :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HSize.HSize
+sizeIncrement arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M42.QSizeConst) =<<
+  (sizeIncrement' arg'1')
+
+statusTip :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+statusTip arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (statusTip' arg'1')
+
+styleSheet :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+styleSheet arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (styleSheet' arg'1')
+
+toolTip :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+toolTip arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (toolTip' arg'1')
+
+underMouse :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+underMouse arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (underMouse' arg'1')
+
+updatesEnabled :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+updatesEnabled arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (updatesEnabled' arg'1')
+
+whatsThis :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+whatsThis arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (whatsThis' arg'1')
+
+width :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+width arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (width' arg'1')
+
+window :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO QWidget
+window arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWidget
+  (window' arg'1')
+
+windowFilePath :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+windowFilePath arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (windowFilePath' arg'1')
+
+windowFlags :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO M58.QtWindowFlags
+windowFlags arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtWindowFlags
+  (windowFlags' arg'1')
+
+windowIconText :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+windowIconText arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (windowIconText' arg'1')
+
+windowModality :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO M58.QtWindowModality
+windowModality arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
+  (windowModality' arg'1')
+
+windowOpacity :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Double
+windowOpacity arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyP.realToFrac
+  (windowOpacity' arg'1')
+
+windowRole :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+windowRole arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (windowRole' arg'1')
+
+windowState :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO M58.QtWindowStates
+windowState arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QtWindowStates
+  (windowState' arg'1')
+
+windowTitle :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO QtahP.String
+windowTitle arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
+  (windowTitle' arg'1')
+
+x :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+x arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (x' arg'1')
+
+y :: (QWidgetValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
+y arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap HoppyFHR.coerceIntegral
+  (y' arg'1')
+
+class (QWidgetConstPtr this, M30.QObjectPtr this) => QWidgetPtr this where
+  toQWidget :: this -> QWidget
+
+activateWindow :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+activateWindow arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (activateWindow' arg'1')
+
+addAction :: (QWidgetPtr arg'1, M174.QActionPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+addAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  (addAction' arg'1' arg'2')
+
+adjustSize :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+adjustSize arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (adjustSize' arg'1')
+
+clearFocus :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+clearFocus arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (clearFocus' arg'1')
+
+clearMask :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+clearMask arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (clearMask' arg'1')
+
+close :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
+close arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap (/= 0)
+  (close' arg'1')
+
+setFont :: (QWidgetPtr arg'1, M102.QFontValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setFont arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M102.withQFontPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFont' arg'1' arg'2')
+
+grabKeyboard :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+grabKeyboard arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (grabKeyboard' arg'1')
+
+grabMouse :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+grabMouse arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (grabMouse' arg'1')
+
+hide :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+hide arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (hide' arg'1')
+
+insertAction :: (QWidgetPtr arg'1, M174.QActionPtr arg'2, M174.QActionPtr arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO ()
+insertAction arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'3) $ \arg'3' ->
+  (insertAction' arg'1' arg'2' arg'3')
+
+lower :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+lower arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (lower' arg'1')
+
+move :: (QWidgetPtr arg'1, M34.QPointValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+move arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M34.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (move' arg'1' arg'2')
+
+raise :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+raise arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (raise' arg'1')
+
+releaseKeyboard :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+releaseKeyboard arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (releaseKeyboard' arg'1')
+
+releaseMouse :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+releaseMouse arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (releaseMouse' arg'1')
+
+removeAction :: (QWidgetPtr arg'1, M174.QActionPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+removeAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M174.toQAction arg'2) $ \arg'2' ->
+  (removeAction' arg'1' arg'2')
+
+repaint :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+repaint arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (repaint' arg'1')
+
+repaintRaw :: (QWidgetPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (repaintRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+repaintRect :: (QWidgetPtr arg'1, M38.QRectValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+repaintRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M38.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (repaintRect' arg'1' arg'2')
+
+resize :: (QWidgetPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (resize' arg'1' arg'2')
+
+resizeRaw :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+resizeRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (resizeRaw' arg'1' arg'2' arg'3')
+
+scrollRaw :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+scrollRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (scrollRaw' arg'1' arg'2' arg'3')
+
+scrollRect :: (QWidgetPtr arg'1, M38.QRectValue arg'4) => arg'1 -> HoppyP.Int -> HoppyP.Int -> arg'4 -> HoppyP.IO ()
+scrollRect arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  M38.withQRectPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (scrollRect' arg'1' arg'2' arg'3' arg'4')
+
+setAcceptDrops :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setAcceptDrops arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setAcceptDrops' arg'1' arg'2')
+
+setAccessibleDescription :: (QWidgetPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setAccessibleDescription arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setAccessibleDescription' arg'1' arg'2')
+
+setAccessibleName :: (QWidgetPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setAccessibleName arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setAccessibleName' arg'1' arg'2')
+
+setAutoFillBackground :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setAutoFillBackground arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setAutoFillBackground' arg'1' arg'2')
+
+setBaseSize :: (QWidgetPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setBaseSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBaseSize' arg'1' arg'2')
+
+setBaseSizeRaw :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setBaseSizeRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setBaseSizeRaw' arg'1' arg'2' arg'3')
+
+setContentsMargins :: (QWidgetPtr arg'1, M24.QMarginsValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setContentsMargins arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M24.withQMarginsPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setContentsMargins' arg'1' arg'2')
+
+setContentsMarginsRaw :: (QWidgetPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (setContentsMarginsRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setEnabled :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setEnabled' arg'1' arg'2')
+
+setDisabled :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setDisabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setDisabled' arg'1' arg'2')
+
+setFixedHeight :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setFixedHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setFixedHeight' arg'1' arg'2')
+
+setFixedSize :: (QWidgetPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setFixedSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFixedSize' arg'1' arg'2')
+
+setFixedSizeRaw :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setFixedSizeRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setFixedSizeRaw' arg'1' arg'2' arg'3')
+
+setFixedWidth :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setFixedWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setFixedWidth' arg'1' arg'2')
+
+setFocus :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+setFocus arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (setFocus' arg'1')
+
+setFocusProxy :: (QWidgetPtr arg'1, QWidgetPtr arg'2) => arg'1 -> 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 arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (setGeometryRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setGeometryRect :: (QWidgetPtr arg'1, M38.QRectValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setGeometryRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M38.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setGeometryRect' arg'1' arg'2')
+
+setHidden :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setHidden arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setHidden' arg'1' arg'2')
+
+setLayout :: (QWidgetPtr arg'1, M228.QLayoutPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setLayout arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M228.toQLayout arg'2) $ \arg'2' ->
+  (setLayout' arg'1' arg'2')
+
+setLayoutDirection :: (QWidgetPtr arg'1) => arg'1 -> M58.QtLayoutDirection -> HoppyP.IO ()
+setLayoutDirection arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setLayoutDirection' arg'1' arg'2')
+
+setMaximumHeight :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setMaximumHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setMaximumHeight' arg'1' arg'2')
+
+setMaximumSize :: (QWidgetPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setMaximumSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setMaximumSize' arg'1' arg'2')
+
+setMaximumSizeRaw :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setMaximumSizeRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setMaximumSizeRaw' arg'1' arg'2' arg'3')
+
+setMaximumWidth :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setMaximumWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setMaximumWidth' arg'1' arg'2')
+
+setMinimumHeight :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setMinimumHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setMinimumHeight' arg'1' arg'2')
+
+setMinimumSize :: (QWidgetPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setMinimumSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setMinimumSize' arg'1' arg'2')
+
+setMinimumSizeRaw :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setMinimumSizeRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setMinimumSizeRaw' arg'1' arg'2' arg'3')
+
+setMinimumWidth :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
+setMinimumWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (setMinimumWidth' arg'1' arg'2')
+
+setMouseTracking :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setMouseTracking arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setMouseTracking' arg'1' arg'2')
+
+setParent :: (QWidgetPtr arg'1, QWidgetPtr arg'2) => arg'1 -> 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 arg'1, QWidgetPtr arg'2, M58.IsQtWindowFlags arg'3) => arg'1 -> 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' ->
+  let arg'3' = M58.fromQtWindowFlags $ M58.toQtWindowFlags arg'3 in
+  (setParentWithFlags' arg'1' arg'2' arg'3')
+
+setSizeIncrement :: (QWidgetPtr arg'1, M42.QSizeValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setSizeIncrement arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M42.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSizeIncrement' arg'1' arg'2')
+
+setSizeIncrementRaw :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
+setSizeIncrementRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (setSizeIncrementRaw' arg'1' arg'2' arg'3')
+
+setStatusTip :: (QWidgetPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setStatusTip arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setStatusTip' arg'1' arg'2')
+
+setStyleSheet :: (QWidgetPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setStyleSheet arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setStyleSheet' arg'1' arg'2')
+
+setToolTip :: (QWidgetPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setToolTip arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToolTip' arg'1' arg'2')
+
+setUpdatesEnabled :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setUpdatesEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setUpdatesEnabled' arg'1' arg'2')
+
+setVisible :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setVisible' arg'1' arg'2')
+
+setWhatsThis :: (QWidgetPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setWhatsThis arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWhatsThis' arg'1' arg'2')
+
+setWindowFilePath :: (QWidgetPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setWindowFilePath arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWindowFilePath' arg'1' arg'2')
+
+setWindowIconText :: (QWidgetPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setWindowIconText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWindowIconText' arg'1' arg'2')
+
+setWindowModified :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
+setWindowModified arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = if arg'2 then 1 else 0 in
+  (setWindowModified' arg'1' arg'2')
+
+setWindowRole :: (QWidgetPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setWindowRole arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWindowRole' arg'1' arg'2')
+
+show :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+show arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (show' arg'1')
+
+showFullScreen :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+showFullScreen arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (showFullScreen' arg'1')
+
+showMaximized :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+showMaximized arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (showMaximized' arg'1')
+
+showMinimized :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+showMinimized arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (showMinimized' arg'1')
+
+showNormal :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+showNormal arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (showNormal' arg'1')
+
+stackUnder :: (QWidgetPtr arg'1, QWidgetPtr arg'2) => arg'1 -> 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 arg'1) => arg'1 -> HoppyP.IO ()
+unsetCursor arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (unsetCursor' arg'1')
+
+unsetLayoutDirection :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+unsetLayoutDirection arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (unsetLayoutDirection' arg'1')
+
+unsetLocale :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+unsetLocale arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (unsetLocale' arg'1')
+
+update :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+update arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (update' arg'1')
+
+updateRaw :: (QWidgetPtr arg'1) => arg'1 -> 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' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  let arg'4' = HoppyFHR.coerceIntegral arg'4 in
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (updateRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+updateRect :: (QWidgetPtr arg'1, M38.QRectValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+updateRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M38.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (updateRect' arg'1' arg'2')
+
+updateGeometry :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.IO ()
+updateGeometry arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (updateGeometry' arg'1')
+
+setWindowFlags :: (QWidgetPtr arg'1, M58.IsQtWindowFlags arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setWindowFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtWindowFlags $ M58.toQtWindowFlags arg'2 in
+  (setWindowFlags' arg'1' arg'2')
+
+setWindowModality :: (QWidgetPtr arg'1) => arg'1 -> M58.QtWindowModality -> HoppyP.IO ()
+setWindowModality arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
+  (setWindowModality' arg'1' arg'2')
+
+setWindowOpacity :: (QWidgetPtr arg'1) => arg'1 -> HoppyP.Double -> HoppyP.IO ()
+setWindowOpacity arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = HoppyP.realToFrac arg'2 in
+  (setWindowOpacity' arg'1' arg'2')
+
+setWindowState :: (QWidgetPtr arg'1, M58.IsQtWindowStates arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setWindowState arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  let arg'2' = M58.fromQtWindowStates $ M58.toQtWindowStates arg'2 in
+  (setWindowState' arg'1' arg'2')
+
+setWindowTitle :: (QWidgetPtr arg'1, M46.QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
+setWindowTitle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWindowTitle' 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 M30.QObjectConstPtr QWidgetConst where
+  toQObjectConst (QWidgetConst ptr') = M30.QObjectConst $ castQWidgetToQObject ptr'
+  toQObjectConst (QWidgetConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr QWidget where
+  toQObjectConst (QWidget ptr') = M30.QObjectConst $ castQWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QWidget -> HoppyF.Ptr QWidgetConst) ptr'
+  toQObjectConst (QWidgetGc fptr' ptr') = M30.QObjectConstGc fptr' $ castQWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QWidget -> HoppyF.Ptr QWidgetConst) ptr'
+
+instance M30.QObjectPtr QWidget where
+  toQObject (QWidget ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castQWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QWidget -> HoppyF.Ptr QWidgetConst) ptr'
+  toQObject (QWidgetGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.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 M30.QObject where
+  downToQWidget = castQWidgetToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = QWidgetConst $ castQObjectToQWidget ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = QWidgetConstGc fptr' $ castQObjectToQWidget ptr'
+
+class QWidgetSuperConst a where
+  downToQWidgetConst :: a -> QWidgetConst
+
+instance QWidgetSuperConst M30.QObjectConst where
+  downToQWidgetConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = QWidgetConst $ castQObjectToQWidget ptr'
+      cast' (M30.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,71 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M30
+import qualified Prelude as HoppyP
+
+
+class QWidgetValue a where
+  withQWidgetPtr :: a -> (QWidgetConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} QWidgetConstPtr a => QWidgetValue a
+#else
+instance QWidgetConstPtr a => QWidgetValue a
+#endif
+
+class (M30.QObjectConstPtr this) => QWidgetConstPtr this where
+  toQWidgetConst :: this -> QWidgetConst
+
+class (QWidgetConstPtr this, M30.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 M30.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 M30.QObjectConstPtr QWidget
+
+instance M30.QObjectPtr QWidget
+castQWidgetToQObject :: HoppyF.Ptr QWidgetConst -> HoppyF.Ptr M30.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-2016 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2017 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,47 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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/QBrush.hs b/src/Graphics/UI/Qtah/Gui/QBrush.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QBrush.hs
@@ -0,0 +1,51 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  setTransform,
+  style,
+  swap,
+  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 M86
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQBrushConst
+cast = toQBrush
+downCastConst = downToQBrushConst
+downCast = downToQBrush
+
+decode :: (QBrushConstPtr this) => this -> QtahP.IO M86.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,83 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  ownsClipboard,
+  ownsFindBuffer,
+  ownsSelection,
+  setText,
+  setTextWithMode,
+  supportsFindBuffer,
+  supportsSelection,
+  text,
+  textSubtype,
+  textSubtypeWithMode,
+  textWithMode,
+  changedSignal,
+  dataChangedSignal,
+  findBufferChangedSignal,
+  selectionChangedSignal,
+  QClipboardMode (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Gui.QClipboard
+import qualified Graphics.UI.Qtah.Generated.Gui.QClipboard as M88
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude ()
+import qualified Prelude as HoppyP
+
+
+castConst = toQClipboardConst
+cast = toQClipboard
+downCastConst = downToQClipboardConst
+downCast = downToQClipboard
+
+changedSignal :: (QClipboardPtr object) => QtahSignal.Signal object (M88.QClipboardMode -> HoppyP.IO ())
+changedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQClipboardMode_new fn'
+    listenerQClipboardMode_connectListener listener' object' "2changed(QClipboard::Mode)"
+  , QtahSignal.internalName = "QClipboard::changed (ListenerQClipboardMode)"
+  }
+
+dataChangedSignal :: (QClipboardPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+dataChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2dataChanged()"
+  , QtahSignal.internalName = "QClipboard::dataChanged (Listener)"
+  }
+
+findBufferChangedSignal :: (QClipboardPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+findBufferChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2findBufferChanged()"
+  , QtahSignal.internalName = "QClipboard::findBufferChanged (Listener)"
+  }
+
+selectionChangedSignal :: (QClipboardPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+selectionChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2selectionChanged()"
+  , 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,44 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,138 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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/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,44 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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/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,53 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,45 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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/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,47 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QFont.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  eQ,
+  nE,
+  setPixelSize,
+  setPointSize,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QFont
+import qualified Graphics.UI.Qtah.Generated.Gui.QFont as M102
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQFontConst
+cast = toQFont
+downCastConst = downToQFontConst
+downCast = downToQFont
+
+decode :: (QFontConstPtr this) => this -> QtahP.IO M102.QFont
+decode = QtahFHR.decode QtahP.. toQFontConst
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,44 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,49 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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/QImage.hs b/src/Graphics/UI/Qtah/Gui/QImage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QImage.hs
@@ -0,0 +1,136 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  fromData,
+  fromDataWithFormat,
+  hasAlphaChannel,
+  height,
+  invertPixels,
+  invertPixelsWithMode,
+  isGrayscale,
+  isNull,
+  load,
+  loadFromData,
+  loadFromDataWithFormat,
+  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 M108
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQImageConst
+cast = toQImage
+downCastConst = downToQImageConst
+downCast = downToQImage
+
+decode :: (QImageConstPtr this) => this -> QtahP.IO M108.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,45 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,38 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,55 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,59 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QOpenGLWindow.hs
@@ -0,0 +1,51 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  grabFramebuffer,
+  isValid,
+  makeCurrent,
+  updateBehavior,
+  frameSwappedSignal,
+  QOpenGLWindowUpdateBehavior (..),
+  ) where
+
+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
+
+
+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 fn'
+    listener_connectListener listener' object' "2frameSwapped()"
+  , QtahSignal.internalName = "QOpenGLWindow::frameSwapped (Listener)"
+  }
diff --git a/src/Graphics/UI/Qtah/Gui/QPaintDevice.hs b/src/Graphics/UI/Qtah/Gui/QPaintDevice.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QPaintDevice.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QPaintDeviceWindow.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QPaintEvent.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QPainter.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  fromQPainterRenderHints,
+  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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QPainterPath.hs
@@ -0,0 +1,42 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M128
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQPainterPathConst
+cast = toQPainterPath
+downCastConst = downToQPainterPathConst
+downCast = downToQPainterPath
+
+decode :: (QPainterPathConstPtr this) => this -> QtahP.IO M128.QPainterPath
+decode = QtahFHR.decode QtahP.. toQPainterPathConst
diff --git a/src/Graphics/UI/Qtah/Gui/QPen.hs b/src/Graphics/UI/Qtah/Gui/QPen.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QPen.hs
@@ -0,0 +1,42 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M130
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQPenConst
+cast = toQPen
+downCastConst = downToQPenConst
+downCast = downToQPen
+
+decode :: (QPenConstPtr this) => this -> QtahP.IO M130.QPen
+decode = QtahFHR.decode QtahP.. toQPenConst
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,57 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M132
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQPolygonConst
+cast = toQPolygon
+downCastConst = downToQPolygonConst
+downCast = downToQPolygon
+
+decode :: (QPolygonConstPtr this) => this -> QtahP.IO M132.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,57 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M134
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQPolygonFConst
+cast = toQPolygonF
+downCastConst = downToQPolygonFConst
+downCast = downToQPolygonF
+
+decode :: (QPolygonFConstPtr this) => this -> QtahP.IO M134.QPolygonF
+decode = QtahFHR.decode QtahP.. toQPolygonFConst
diff --git a/src/Graphics/UI/Qtah/Gui/QRasterWindow.hs b/src/Graphics/UI/Qtah/Gui/QRasterWindow.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QRasterWindow.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,63 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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 M138
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQRegionConst
+cast = toQRegion
+downCastConst = downToQRegionConst
+downCast = downToQRegion
+
+decode :: (QRegionConstPtr this) => this -> QtahP.IO M138.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,44 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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/QSurface.hs b/src/Graphics/UI/Qtah/Gui/QSurface.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QSurface.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QTransform.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 M144
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQTransformConst
+cast = toQTransform
+downCastConst = downToQTransformConst
+downCast = downToQTransform
+
+decode :: (QTransformConstPtr this) => this -> QtahP.IO M144.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,44 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QValidator (
+  QValidatorValue (..),
+  QValidatorConstPtr (..),
+  QValidatorPtr (..),
+  QValidatorConst,
+  QValidator,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  fixup,
+  validate,
+  changedSignal,
+  QValidatorState (..),
+  ) where
+
+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
+
+
+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 fn'
+    listener_connectListener listener' object' "2changed()"
+  , 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,57 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QWindow.hs
@@ -0,0 +1,281 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  destroy,
+  devicePixelRatio,
+  filePath,
+  flags,
+  focusObject,
+  frameGeometry,
+  frameMargins,
+  framePosition,
+  geometry,
+  getType,
+  height,
+  hide,
+  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,
+  setFilePath,
+  setFlags,
+  setFramePosition,
+  setGeometry,
+  setGeometryRaw,
+  setHeight,
+  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 Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import Graphics.UI.Qtah.Generated.Gui.QWindow
+import qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M150
+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 fn'
+    listener_connectListener listener' object' "2activeChanged()"
+  , QtahSignal.internalName = "QWindow::activeChanged (Listener)"
+  }
+
+contentOrientationChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (M58.QtScreenOrientation -> HoppyP.IO ())
+contentOrientationChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerScreenOrientation_new fn'
+    listenerScreenOrientation_connectListener listener' object' "2contentOrientationChanged(Qt::ScreenOrientation)"
+  , QtahSignal.internalName = "QWindow::contentOrientationChanged (ListenerScreenOrientation)"
+  }
+
+focusObjectChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (M30.QObject -> HoppyP.IO ())
+focusObjectChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQObject_new fn'
+    listenerPtrQObject_connectListener listener' object' "2focusObjectChanged(QObject*)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2heightChanged(int)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2maximumHeightChanged(int)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2maximumWidthChanged(int)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2minimumHeightChanged(int)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2minimumWidthChanged(int)"
+  , QtahSignal.internalName = "QWindow::minimumWidthChanged (ListenerInt)"
+  }
+
+modalityChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (M58.QtWindowModality -> HoppyP.IO ())
+modalityChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerWindowModality_new fn'
+    listenerWindowModality_connectListener listener' object' "2modalityChanged(Qt::WindowModality)"
+  , 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 fn'
+    listenerQreal_connectListener listener' object' "2opacityChanged(double)"
+  , QtahSignal.internalName = "QWindow::opacityChanged (ListenerQreal)"
+  }
+
+visibilityChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (M150.QWindowVisibility -> HoppyP.IO ())
+visibilityChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQWindowVisibility_new fn'
+    listenerQWindowVisibility_connectListener listener' object' "2visibilityChanged(QWindow::Visibility)"
+  , 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 fn'
+    listenerBool_connectListener listener' object' "2visibleChanged(bool)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2widthChanged(int)"
+  , QtahSignal.internalName = "QWindow::widthChanged (ListenerInt)"
+  }
+
+windowStateChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (M58.QtWindowState -> HoppyP.IO ())
+windowStateChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerWindowState_new fn'
+    listenerWindowState_connectListener listener' object' "2windowStateChanged(Qt::WindowState)"
+  , 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 fn'
+    listenerQString_connectListener listener' object' "2windowTitleChanged(QString)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2xChanged(int)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2yChanged(int)"
+  , QtahSignal.internalName = "QWindow::yChanged (ListenerInt)"
+  }
diff --git a/src/Graphics/UI/Qtah/Gui/QtahOpenGLWindow.hs b/src/Graphics/UI/Qtah/Gui/QtahOpenGLWindow.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QtahOpenGLWindow.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QtahRasterWindow.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,488 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Internal.Callback (
+  callbackBoolVoid_newFunPtr,
+  callbackBoolVoid_new,
+  callbackDoubleVoid_newFunPtr,
+  callbackDoubleVoid_new,
+  callbackIntBoolVoid_newFunPtr,
+  callbackIntBoolVoid_new,
+  callbackIntIntVoid_newFunPtr,
+  callbackIntIntVoid_new,
+  callbackIntVoid_newFunPtr,
+  callbackIntVoid_new,
+  callbackPtrQAbstractButtonBoolVoid_newFunPtr,
+  callbackPtrQAbstractButtonBoolVoid_new,
+  callbackPtrQAbstractButtonVoid_newFunPtr,
+  callbackPtrQAbstractButtonVoid_new,
+  callbackPtrQAbstractItemModelVoid_newFunPtr,
+  callbackPtrQAbstractItemModelVoid_new,
+  callbackPtrQActionVoid_newFunPtr,
+  callbackPtrQActionVoid_new,
+  callbackPtrQGraphicsItemPtrQEventBool_newFunPtr,
+  callbackPtrQGraphicsItemPtrQEventBool_new,
+  callbackPtrQObjectPtrQEventBool_newFunPtr,
+  callbackPtrQObjectPtrQEventBool_new,
+  callbackPtrQObjectVoid_newFunPtr,
+  callbackPtrQObjectVoid_new,
+  callbackPtrQPaintEventVoid_newFunPtr,
+  callbackPtrQPaintEventVoid_new,
+  callbackPtrQWidgetPtrQWidgetVoid_newFunPtr,
+  callbackPtrQWidgetPtrQWidgetVoid_new,
+  callbackQAbstractSliderActionVoid_newFunPtr,
+  callbackQAbstractSliderActionVoid_new,
+  callbackQClipboardModeVoid_newFunPtr,
+  callbackQClipboardModeVoid_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,
+  callbackQWindowVisibilityVoid_newFunPtr,
+  callbackQWindowVisibilityVoid_new,
+  callbackQrealVoid_newFunPtr,
+  callbackQrealVoid_new,
+  callbackRefConstQItemSelectionRefConstQItemSelectionVoid_newFunPtr,
+  callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new,
+  callbackScreenOrientationVoid_newFunPtr,
+  callbackScreenOrientationVoid_new,
+  callbackVoid_newFunPtr,
+  callbackVoid_new,
+  callbackWindowModalityVoid_newFunPtr,
+  callbackWindowModalityVoid_new,
+  callbackWindowStateVoid_newFunPtr,
+  callbackWindowStateVoid_new,
+  ) 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.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M2
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M16
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelection as M18
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M28
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M42
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.Int as M76
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QClipboard as M88
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintEvent as M124
+import qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M150
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M162
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider as M170
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M174
+import qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M202
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Prelude (($), (/=), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "wrapper" callbackBoolVoid_new'newFunPtr :: (HoppyFHR.CBool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFHR.CBool -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackBoolVoid" callbackBoolVoid_new'newCallback :: HoppyF.FunPtr (HoppyFHR.CBool -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFHR.CBool -> 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 -> HoppyFHR.CBool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFHR.CBool -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackIntBoolVoid" callbackIntBoolVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyFHR.CBool -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFHR.CBool -> 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" 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" callbackPtrQAbstractButtonBoolVoid_new'newFunPtr :: (HoppyF.Ptr M162.QAbstractButton -> HoppyFHR.CBool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M162.QAbstractButton -> HoppyFHR.CBool -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQAbstractButtonBoolVoid" callbackPtrQAbstractButtonBoolVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M162.QAbstractButton -> HoppyFHR.CBool -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M162.QAbstractButton -> HoppyFHR.CBool -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackPtrQAbstractButtonVoid_new'newFunPtr :: (HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQAbstractButtonVoid" callbackPtrQAbstractButtonVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackPtrQAbstractItemModelVoid_new'newFunPtr :: (HoppyF.Ptr M2.QAbstractItemModel -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M2.QAbstractItemModel -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQAbstractItemModelVoid" callbackPtrQAbstractItemModelVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M2.QAbstractItemModel -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M2.QAbstractItemModel -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackPtrQActionVoid_new'newFunPtr :: (HoppyF.Ptr M174.QAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M174.QAction -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQActionVoid" callbackPtrQActionVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M174.QAction -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M174.QAction -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackPtrQGraphicsItemPtrQEventBool_new'newFunPtr :: (HoppyF.Ptr M202.QGraphicsItem -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.CBool) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M202.QGraphicsItem -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.CBool))
+foreign import ccall "genpop__CallbackPtrQGraphicsItemPtrQEventBool" callbackPtrQGraphicsItemPtrQEventBool_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M202.QGraphicsItem -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.CBool) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M202.QGraphicsItem -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.CBool))
+foreign import ccall "wrapper" callbackPtrQObjectPtrQEventBool_new'newFunPtr :: (HoppyF.Ptr M30.QObject -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.CBool) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M30.QObject -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.CBool))
+foreign import ccall "genpop__CallbackPtrQObjectPtrQEventBool" callbackPtrQObjectPtrQEventBool_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M30.QObject -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.CBool) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M30.QObject -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.CBool))
+foreign import ccall "wrapper" callbackPtrQObjectVoid_new'newFunPtr :: (HoppyF.Ptr M30.QObject -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M30.QObject -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQObjectVoid" callbackPtrQObjectVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M30.QObject -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M30.QObject -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackPtrQPaintEventVoid_new'newFunPtr :: (HoppyF.Ptr M124.QPaintEvent -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M124.QPaintEvent -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQPaintEventVoid" callbackPtrQPaintEventVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M124.QPaintEvent -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M124.QPaintEvent -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackPtrQWidgetPtrQWidgetVoid_new'newFunPtr :: (HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQWidgetPtrQWidgetVoid" callbackPtrQWidgetPtrQWidgetVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M280.QWidget -> 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" callbackQModelIndexIntIntQModelIndexIntVoid_new'newFunPtr :: (HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQModelIndexIntIntQModelIndexIntVoid" callbackQModelIndexIntIntQModelIndexIntVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQModelIndexIntIntVoid_new'newFunPtr :: (HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQModelIndexIntIntVoid" callbackQModelIndexIntIntVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQModelIndexQModelIndexQVectorIntVoid_new'newFunPtr :: (HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M76.QVectorInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M76.QVectorInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQModelIndexQModelIndexQVectorIntVoid" callbackQModelIndexQModelIndexQVectorIntVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M76.QVectorInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M76.QVectorInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQModelIndexQModelIndexVoid_new'newFunPtr :: (HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQModelIndexQModelIndexVoid" callbackQModelIndexQModelIndexVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQModelIndexVoid_new'newFunPtr :: (HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQModelIndexVoid" callbackQModelIndexVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQPointVoid_new'newFunPtr :: (HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQPointVoid" callbackQPointVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQSizeVoid_new'newFunPtr :: (HoppyF.Ptr M42.QSizeConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M42.QSizeConst -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQSizeVoid" callbackQSizeVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M42.QSizeConst -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M42.QSizeConst -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQStringVoid_new'newFunPtr :: (HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQStringVoid" callbackQStringVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M46.QStringConst -> 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" 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" callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new'newFunPtr :: (HoppyF.Ptr M18.QItemSelectionConst -> HoppyF.Ptr M18.QItemSelectionConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M18.QItemSelectionConst -> HoppyF.Ptr M18.QItemSelectionConst -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackRefConstQItemSelectionRefConstQItemSelectionVoid" callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M18.QItemSelectionConst -> HoppyF.Ptr M18.QItemSelectionConst -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M18.QItemSelectionConst -> HoppyF.Ptr M18.QItemSelectionConst -> 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" 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 ()))
+
+callbackBoolVoid_newFunPtr :: (HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFHR.CBool -> HoppyP.IO ()))
+callbackBoolVoid_newFunPtr f'hs = callbackBoolVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = arg'1 /= 0 in
+  (f'hs arg'1')
+
+callbackBoolVoid_new :: (HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFHR.CBool -> HoppyP.IO ()))
+callbackBoolVoid_new f'hs = do
+  f'p <- callbackBoolVoid_newFunPtr f'hs
+  callbackBoolVoid_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 ->
+  let arg'1' = HoppyP.realToFrac arg'1 in
+  (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 -> HoppyFHR.CBool -> HoppyP.IO ()))
+callbackIntBoolVoid_newFunPtr f'hs = callbackIntBoolVoid_new'newFunPtr $ \arg'1 arg'2 ->
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = arg'2 /= 0 in
+  (f'hs arg'1' arg'2')
+
+callbackIntBoolVoid_new :: (HoppyP.Int -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFHR.CBool -> HoppyP.IO ()))
+callbackIntBoolVoid_new f'hs = do
+  f'p <- callbackIntBoolVoid_newFunPtr f'hs
+  callbackIntBoolVoid_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 ->
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (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
+
+callbackIntVoid_newFunPtr :: (HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackIntVoid_newFunPtr f'hs = callbackIntVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
+  (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
+
+callbackPtrQAbstractButtonBoolVoid_newFunPtr :: (M162.QAbstractButton -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M162.QAbstractButton -> HoppyFHR.CBool -> HoppyP.IO ()))
+callbackPtrQAbstractButtonBoolVoid_newFunPtr f'hs = callbackPtrQAbstractButtonBoolVoid_new'newFunPtr $ \arg'1 arg'2 ->
+  let arg'1' = M162.QAbstractButton arg'1 in
+  let arg'2' = arg'2 /= 0 in
+  (f'hs arg'1' arg'2')
+
+callbackPtrQAbstractButtonBoolVoid_new :: (M162.QAbstractButton -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M162.QAbstractButton -> HoppyFHR.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 :: (M162.QAbstractButton -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO ()))
+callbackPtrQAbstractButtonVoid_newFunPtr f'hs = callbackPtrQAbstractButtonVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = M162.QAbstractButton arg'1 in
+  (f'hs arg'1')
+
+callbackPtrQAbstractButtonVoid_new :: (M162.QAbstractButton -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M162.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 :: (M2.QAbstractItemModel -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M2.QAbstractItemModel -> HoppyP.IO ()))
+callbackPtrQAbstractItemModelVoid_newFunPtr f'hs = callbackPtrQAbstractItemModelVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = M2.QAbstractItemModel arg'1 in
+  (f'hs arg'1')
+
+callbackPtrQAbstractItemModelVoid_new :: (M2.QAbstractItemModel -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M2.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 :: (M174.QAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M174.QAction -> HoppyP.IO ()))
+callbackPtrQActionVoid_newFunPtr f'hs = callbackPtrQActionVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = M174.QAction arg'1 in
+  (f'hs arg'1')
+
+callbackPtrQActionVoid_new :: (M174.QAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M174.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 :: (M202.QGraphicsItem -> M16.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M202.QGraphicsItem -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.CBool))
+callbackPtrQGraphicsItemPtrQEventBool_newFunPtr f'hs = callbackPtrQGraphicsItemPtrQEventBool_new'newFunPtr $ \arg'1 arg'2 ->
+  let arg'1' = M202.QGraphicsItem arg'1 in
+  let arg'2' = M16.QEvent arg'2 in
+  HoppyP.fmap (\x -> if x then 1 else 0)
+  (f'hs arg'1' arg'2')
+
+callbackPtrQGraphicsItemPtrQEventBool_new :: (M202.QGraphicsItem -> M16.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M202.QGraphicsItem -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.CBool))
+callbackPtrQGraphicsItemPtrQEventBool_new f'hs = do
+  f'p <- callbackPtrQGraphicsItemPtrQEventBool_newFunPtr f'hs
+  callbackPtrQGraphicsItemPtrQEventBool_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackPtrQObjectPtrQEventBool_newFunPtr :: (M30.QObject -> M16.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M30.QObject -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.CBool))
+callbackPtrQObjectPtrQEventBool_newFunPtr f'hs = callbackPtrQObjectPtrQEventBool_new'newFunPtr $ \arg'1 arg'2 ->
+  let arg'1' = M30.QObject arg'1 in
+  let arg'2' = M16.QEvent arg'2 in
+  HoppyP.fmap (\x -> if x then 1 else 0)
+  (f'hs arg'1' arg'2')
+
+callbackPtrQObjectPtrQEventBool_new :: (M30.QObject -> M16.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M30.QObject -> HoppyF.Ptr M16.QEvent -> HoppyP.IO HoppyFHR.CBool))
+callbackPtrQObjectPtrQEventBool_new f'hs = do
+  f'p <- callbackPtrQObjectPtrQEventBool_newFunPtr f'hs
+  callbackPtrQObjectPtrQEventBool_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackPtrQObjectVoid_newFunPtr :: (M30.QObject -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M30.QObject -> HoppyP.IO ()))
+callbackPtrQObjectVoid_newFunPtr f'hs = callbackPtrQObjectVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = M30.QObject arg'1 in
+  (f'hs arg'1')
+
+callbackPtrQObjectVoid_new :: (M30.QObject -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M30.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 :: (M124.QPaintEvent -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M124.QPaintEvent -> HoppyP.IO ()))
+callbackPtrQPaintEventVoid_newFunPtr f'hs = callbackPtrQPaintEventVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = M124.QPaintEvent arg'1 in
+  (f'hs arg'1')
+
+callbackPtrQPaintEventVoid_new :: (M124.QPaintEvent -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M124.QPaintEvent -> HoppyP.IO ()))
+callbackPtrQPaintEventVoid_new f'hs = do
+  f'p <- callbackPtrQPaintEventVoid_newFunPtr f'hs
+  callbackPtrQPaintEventVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackPtrQWidgetPtrQWidgetVoid_newFunPtr :: (M280.QWidget -> M280.QWidget -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()))
+callbackPtrQWidgetPtrQWidgetVoid_newFunPtr f'hs = callbackPtrQWidgetPtrQWidgetVoid_new'newFunPtr $ \arg'1 arg'2 ->
+  let arg'1' = M280.QWidget arg'1 in
+  let arg'2' = M280.QWidget arg'2 in
+  (f'hs arg'1' arg'2')
+
+callbackPtrQWidgetPtrQWidgetVoid_new :: (M280.QWidget -> M280.QWidget -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()))
+callbackPtrQWidgetPtrQWidgetVoid_new f'hs = do
+  f'p <- callbackPtrQWidgetPtrQWidgetVoid_newFunPtr f'hs
+  callbackPtrQWidgetPtrQWidgetVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQAbstractSliderActionVoid_newFunPtr :: (M170.QAbstractSliderAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQAbstractSliderActionVoid_newFunPtr f'hs = callbackQAbstractSliderActionVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = HoppyP.toEnum $ HoppyFHR.coerceIntegral arg'1 in
+  (f'hs arg'1')
+
+callbackQAbstractSliderActionVoid_new :: (M170.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 :: (M88.QClipboardMode -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQClipboardModeVoid_newFunPtr f'hs = callbackQClipboardModeVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = HoppyP.toEnum $ HoppyFHR.coerceIntegral arg'1 in
+  (f'hs arg'1')
+
+callbackQClipboardModeVoid_new :: (M88.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
+
+callbackQModelIndexIntIntQModelIndexIntVoid_newFunPtr :: (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M28.QModelIndex -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackQModelIndexIntIntQModelIndexIntVoid_newFunPtr f'hs = callbackQModelIndexIntIntQModelIndexIntVoid_new'newFunPtr $ \arg'1 arg'2 arg'3 arg'4 arg'5 ->
+  HoppyFHR.decode (M28.QModelIndexConst arg'1) >>= \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  HoppyFHR.decode (M28.QModelIndexConst arg'4) >>= \arg'4' ->
+  let arg'5' = HoppyFHR.coerceIntegral arg'5 in
+  (f'hs arg'1' arg'2' arg'3' arg'4' arg'5')
+
+callbackQModelIndexIntIntQModelIndexIntVoid_new :: (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M28.QModelIndex -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.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 :: (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackQModelIndexIntIntVoid_newFunPtr f'hs = callbackQModelIndexIntIntVoid_new'newFunPtr $ \arg'1 arg'2 arg'3 ->
+  HoppyFHR.decode (M28.QModelIndexConst arg'1) >>= \arg'1' ->
+  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
+  (f'hs arg'1' arg'2' arg'3')
+
+callbackQModelIndexIntIntVoid_new :: (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M28.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 :: (M28.QModelIndex -> M28.QModelIndex -> M76.QVectorInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M76.QVectorInt -> HoppyP.IO ()))
+callbackQModelIndexQModelIndexQVectorIntVoid_newFunPtr f'hs = callbackQModelIndexQModelIndexQVectorIntVoid_new'newFunPtr $ \arg'1 arg'2 arg'3 ->
+  HoppyFHR.decode (M28.QModelIndexConst arg'1) >>= \arg'1' ->
+  HoppyFHR.decode (M28.QModelIndexConst arg'2) >>= \arg'2' ->
+  HoppyFHR.toGc (M76.QVectorInt arg'3) >>= \arg'3' ->
+  (f'hs arg'1' arg'2' arg'3')
+
+callbackQModelIndexQModelIndexQVectorIntVoid_new :: (M28.QModelIndex -> M28.QModelIndex -> M76.QVectorInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M76.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 :: (M28.QModelIndex -> M28.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()))
+callbackQModelIndexQModelIndexVoid_newFunPtr f'hs = callbackQModelIndexQModelIndexVoid_new'newFunPtr $ \arg'1 arg'2 ->
+  HoppyFHR.decode (M28.QModelIndexConst arg'1) >>= \arg'1' ->
+  HoppyFHR.decode (M28.QModelIndexConst arg'2) >>= \arg'2' ->
+  (f'hs arg'1' arg'2')
+
+callbackQModelIndexQModelIndexVoid_new :: (M28.QModelIndex -> M28.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.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 :: (M28.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()))
+callbackQModelIndexVoid_newFunPtr f'hs = callbackQModelIndexVoid_new'newFunPtr $ \arg'1 ->
+  HoppyFHR.decode (M28.QModelIndexConst arg'1) >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackQModelIndexVoid_new :: (M28.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M28.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 M34.QPointConst -> HoppyP.IO ()))
+callbackQPointVoid_newFunPtr f'hs = callbackQPointVoid_new'newFunPtr $ \arg'1 ->
+  HoppyFHR.decode (M34.QPointConst arg'1) >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackQPointVoid_new :: (HPoint.HPoint -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M34.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 M42.QSizeConst -> HoppyP.IO ()))
+callbackQSizeVoid_newFunPtr f'hs = callbackQSizeVoid_new'newFunPtr $ \arg'1 ->
+  HoppyFHR.decode (M42.QSizeConst arg'1) >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackQSizeVoid_new :: (HSize.HSize -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M42.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 M46.QStringConst -> HoppyP.IO ()))
+callbackQStringVoid_newFunPtr f'hs = callbackQStringVoid_new'newFunPtr $ \arg'1 ->
+  HoppyFHR.decode (M46.QStringConst arg'1) >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackQStringVoid_new :: (QtahP.String -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()))
+callbackQStringVoid_new f'hs = do
+  f'p <- callbackQStringVoid_newFunPtr f'hs
+  callbackQStringVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQWindowVisibilityVoid_newFunPtr :: (M150.QWindowVisibility -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQWindowVisibilityVoid_newFunPtr f'hs = callbackQWindowVisibilityVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = HoppyP.toEnum $ HoppyFHR.coerceIntegral arg'1 in
+  (f'hs arg'1')
+
+callbackQWindowVisibilityVoid_new :: (M150.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
+
+callbackQrealVoid_newFunPtr :: (HoppyP.Double -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CDouble -> HoppyP.IO ()))
+callbackQrealVoid_newFunPtr f'hs = callbackQrealVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = HoppyP.realToFrac arg'1 in
+  (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
+
+callbackRefConstQItemSelectionRefConstQItemSelectionVoid_newFunPtr :: (M18.QItemSelectionConst -> M18.QItemSelectionConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M18.QItemSelectionConst -> HoppyF.Ptr M18.QItemSelectionConst -> HoppyP.IO ()))
+callbackRefConstQItemSelectionRefConstQItemSelectionVoid_newFunPtr f'hs = callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new'newFunPtr $ \arg'1 arg'2 ->
+  let arg'1' = M18.QItemSelectionConst arg'1 in
+  let arg'2' = M18.QItemSelectionConst arg'2 in
+  (f'hs arg'1' arg'2')
+
+callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new :: (M18.QItemSelectionConst -> M18.QItemSelectionConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M18.QItemSelectionConst -> HoppyF.Ptr M18.QItemSelectionConst -> HoppyP.IO ()))
+callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new f'hs = do
+  f'p <- callbackRefConstQItemSelectionRefConstQItemSelectionVoid_newFunPtr f'hs
+  callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackScreenOrientationVoid_newFunPtr :: (M58.QtScreenOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackScreenOrientationVoid_newFunPtr f'hs = callbackScreenOrientationVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = HoppyP.toEnum $ HoppyFHR.coerceIntegral arg'1 in
+  (f'hs arg'1')
+
+callbackScreenOrientationVoid_new :: (M58.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
+
+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 :: (M58.QtWindowModality -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackWindowModalityVoid_newFunPtr f'hs = callbackWindowModalityVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = HoppyP.toEnum $ HoppyFHR.coerceIntegral arg'1 in
+  (f'hs arg'1')
+
+callbackWindowModalityVoid_new :: (M58.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 :: (M58.QtWindowState -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackWindowStateVoid_newFunPtr f'hs = callbackWindowStateVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = HoppyP.toEnum $ HoppyFHR.coerceIntegral arg'1 in
+  (f'hs arg'1')
+
+callbackWindowStateVoid_new :: (M58.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
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,31 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,4852 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Internal.Listener (
+  castListenerToQObject,
+  castQObjectToListener,
+  castListenerBoolToQObject,
+  castQObjectToListenerBool,
+  castListenerDoubleToQObject,
+  castQObjectToListenerDouble,
+  castListenerIntToQObject,
+  castQObjectToListenerInt,
+  castListenerIntBoolToQObject,
+  castQObjectToListenerIntBool,
+  castListenerIntIntToQObject,
+  castQObjectToListenerIntInt,
+  castListenerPtrQAbstractButtonToQObject,
+  castQObjectToListenerPtrQAbstractButton,
+  castListenerPtrQAbstractButtonBoolToQObject,
+  castQObjectToListenerPtrQAbstractButtonBool,
+  castListenerPtrQAbstractItemModelToQObject,
+  castQObjectToListenerPtrQAbstractItemModel,
+  castListenerPtrQActionToQObject,
+  castQObjectToListenerPtrQAction,
+  castListenerPtrQObjectToQObject,
+  castQObjectToListenerPtrQObject,
+  castListenerPtrQWidgetPtrQWidgetToQObject,
+  castQObjectToListenerPtrQWidgetPtrQWidget,
+  castListenerQAbstractSliderActionToQObject,
+  castQObjectToListenerQAbstractSliderAction,
+  castListenerQClipboardModeToQObject,
+  castQObjectToListenerQClipboardMode,
+  castListenerQModelIndexToQObject,
+  castQObjectToListenerQModelIndex,
+  castListenerQModelIndexIntIntToQObject,
+  castQObjectToListenerQModelIndexIntInt,
+  castListenerQModelIndexIntIntQModelIndexIntToQObject,
+  castQObjectToListenerQModelIndexIntIntQModelIndexInt,
+  castListenerQModelIndexQModelIndexToQObject,
+  castQObjectToListenerQModelIndexQModelIndex,
+  castListenerQModelIndexQModelIndexQVectorIntToQObject,
+  castQObjectToListenerQModelIndexQModelIndexQVectorInt,
+  castListenerQPointToQObject,
+  castQObjectToListenerQPoint,
+  castListenerQSizeToQObject,
+  castQObjectToListenerQSize,
+  castListenerQStringToQObject,
+  castQObjectToListenerQString,
+  castListenerQWindowVisibilityToQObject,
+  castQObjectToListenerQWindowVisibility,
+  castListenerQrealToQObject,
+  castQObjectToListenerQreal,
+  castListenerRefConstQItemSelectionRefConstQItemSelectionToQObject,
+  castQObjectToListenerRefConstQItemSelectionRefConstQItemSelection,
+  castListenerScreenOrientationToQObject,
+  castQObjectToListenerScreenOrientation,
+  castListenerWindowModalityToQObject,
+  castQObjectToListenerWindowModality,
+  castListenerWindowStateToQObject,
+  castQObjectToListenerWindowState,
+  ListenerValue (..),
+  ListenerConstPtr (..),
+  ListenerPtr (..),
+  listener_connectListener,
+  ListenerConst (..),
+  castListenerToConst,
+  Listener (..),
+  castListenerToNonconst,
+  listener_new,
+  listener_newWithParent,
+  ListenerSuper (..),
+  ListenerSuperConst (..),
+  ListenerBoolValue (..),
+  ListenerBoolConstPtr (..),
+  ListenerBoolPtr (..),
+  listenerBool_connectListener,
+  ListenerBoolConst (..),
+  castListenerBoolToConst,
+  ListenerBool (..),
+  castListenerBoolToNonconst,
+  listenerBool_new,
+  listenerBool_newWithParent,
+  ListenerBoolSuper (..),
+  ListenerBoolSuperConst (..),
+  ListenerDoubleValue (..),
+  ListenerDoubleConstPtr (..),
+  ListenerDoublePtr (..),
+  listenerDouble_connectListener,
+  ListenerDoubleConst (..),
+  castListenerDoubleToConst,
+  ListenerDouble (..),
+  castListenerDoubleToNonconst,
+  listenerDouble_new,
+  listenerDouble_newWithParent,
+  ListenerDoubleSuper (..),
+  ListenerDoubleSuperConst (..),
+  ListenerIntValue (..),
+  ListenerIntConstPtr (..),
+  ListenerIntPtr (..),
+  listenerInt_connectListener,
+  ListenerIntConst (..),
+  castListenerIntToConst,
+  ListenerInt (..),
+  castListenerIntToNonconst,
+  listenerInt_new,
+  listenerInt_newWithParent,
+  ListenerIntSuper (..),
+  ListenerIntSuperConst (..),
+  ListenerIntBoolValue (..),
+  ListenerIntBoolConstPtr (..),
+  ListenerIntBoolPtr (..),
+  listenerIntBool_connectListener,
+  ListenerIntBoolConst (..),
+  castListenerIntBoolToConst,
+  ListenerIntBool (..),
+  castListenerIntBoolToNonconst,
+  listenerIntBool_new,
+  listenerIntBool_newWithParent,
+  ListenerIntBoolSuper (..),
+  ListenerIntBoolSuperConst (..),
+  ListenerIntIntValue (..),
+  ListenerIntIntConstPtr (..),
+  ListenerIntIntPtr (..),
+  listenerIntInt_connectListener,
+  ListenerIntIntConst (..),
+  castListenerIntIntToConst,
+  ListenerIntInt (..),
+  castListenerIntIntToNonconst,
+  listenerIntInt_new,
+  listenerIntInt_newWithParent,
+  ListenerIntIntSuper (..),
+  ListenerIntIntSuperConst (..),
+  ListenerPtrQAbstractButtonValue (..),
+  ListenerPtrQAbstractButtonConstPtr (..),
+  ListenerPtrQAbstractButtonPtr (..),
+  listenerPtrQAbstractButton_connectListener,
+  ListenerPtrQAbstractButtonConst (..),
+  castListenerPtrQAbstractButtonToConst,
+  ListenerPtrQAbstractButton (..),
+  castListenerPtrQAbstractButtonToNonconst,
+  listenerPtrQAbstractButton_new,
+  listenerPtrQAbstractButton_newWithParent,
+  ListenerPtrQAbstractButtonSuper (..),
+  ListenerPtrQAbstractButtonSuperConst (..),
+  ListenerPtrQAbstractButtonBoolValue (..),
+  ListenerPtrQAbstractButtonBoolConstPtr (..),
+  ListenerPtrQAbstractButtonBoolPtr (..),
+  listenerPtrQAbstractButtonBool_connectListener,
+  ListenerPtrQAbstractButtonBoolConst (..),
+  castListenerPtrQAbstractButtonBoolToConst,
+  ListenerPtrQAbstractButtonBool (..),
+  castListenerPtrQAbstractButtonBoolToNonconst,
+  listenerPtrQAbstractButtonBool_new,
+  listenerPtrQAbstractButtonBool_newWithParent,
+  ListenerPtrQAbstractButtonBoolSuper (..),
+  ListenerPtrQAbstractButtonBoolSuperConst (..),
+  ListenerPtrQAbstractItemModelValue (..),
+  ListenerPtrQAbstractItemModelConstPtr (..),
+  ListenerPtrQAbstractItemModelPtr (..),
+  listenerPtrQAbstractItemModel_connectListener,
+  ListenerPtrQAbstractItemModelConst (..),
+  castListenerPtrQAbstractItemModelToConst,
+  ListenerPtrQAbstractItemModel (..),
+  castListenerPtrQAbstractItemModelToNonconst,
+  listenerPtrQAbstractItemModel_new,
+  listenerPtrQAbstractItemModel_newWithParent,
+  ListenerPtrQAbstractItemModelSuper (..),
+  ListenerPtrQAbstractItemModelSuperConst (..),
+  ListenerPtrQActionValue (..),
+  ListenerPtrQActionConstPtr (..),
+  ListenerPtrQActionPtr (..),
+  listenerPtrQAction_connectListener,
+  ListenerPtrQActionConst (..),
+  castListenerPtrQActionToConst,
+  ListenerPtrQAction (..),
+  castListenerPtrQActionToNonconst,
+  listenerPtrQAction_new,
+  listenerPtrQAction_newWithParent,
+  ListenerPtrQActionSuper (..),
+  ListenerPtrQActionSuperConst (..),
+  ListenerPtrQObjectValue (..),
+  ListenerPtrQObjectConstPtr (..),
+  ListenerPtrQObjectPtr (..),
+  listenerPtrQObject_connectListener,
+  ListenerPtrQObjectConst (..),
+  castListenerPtrQObjectToConst,
+  ListenerPtrQObject (..),
+  castListenerPtrQObjectToNonconst,
+  listenerPtrQObject_new,
+  listenerPtrQObject_newWithParent,
+  ListenerPtrQObjectSuper (..),
+  ListenerPtrQObjectSuperConst (..),
+  ListenerPtrQWidgetPtrQWidgetValue (..),
+  ListenerPtrQWidgetPtrQWidgetConstPtr (..),
+  ListenerPtrQWidgetPtrQWidgetPtr (..),
+  listenerPtrQWidgetPtrQWidget_connectListener,
+  ListenerPtrQWidgetPtrQWidgetConst (..),
+  castListenerPtrQWidgetPtrQWidgetToConst,
+  ListenerPtrQWidgetPtrQWidget (..),
+  castListenerPtrQWidgetPtrQWidgetToNonconst,
+  listenerPtrQWidgetPtrQWidget_new,
+  listenerPtrQWidgetPtrQWidget_newWithParent,
+  ListenerPtrQWidgetPtrQWidgetSuper (..),
+  ListenerPtrQWidgetPtrQWidgetSuperConst (..),
+  ListenerQAbstractSliderActionValue (..),
+  ListenerQAbstractSliderActionConstPtr (..),
+  ListenerQAbstractSliderActionPtr (..),
+  listenerQAbstractSliderAction_connectListener,
+  ListenerQAbstractSliderActionConst (..),
+  castListenerQAbstractSliderActionToConst,
+  ListenerQAbstractSliderAction (..),
+  castListenerQAbstractSliderActionToNonconst,
+  listenerQAbstractSliderAction_new,
+  listenerQAbstractSliderAction_newWithParent,
+  ListenerQAbstractSliderActionSuper (..),
+  ListenerQAbstractSliderActionSuperConst (..),
+  ListenerQClipboardModeValue (..),
+  ListenerQClipboardModeConstPtr (..),
+  ListenerQClipboardModePtr (..),
+  listenerQClipboardMode_connectListener,
+  ListenerQClipboardModeConst (..),
+  castListenerQClipboardModeToConst,
+  ListenerQClipboardMode (..),
+  castListenerQClipboardModeToNonconst,
+  listenerQClipboardMode_new,
+  listenerQClipboardMode_newWithParent,
+  ListenerQClipboardModeSuper (..),
+  ListenerQClipboardModeSuperConst (..),
+  ListenerQModelIndexValue (..),
+  ListenerQModelIndexConstPtr (..),
+  ListenerQModelIndexPtr (..),
+  listenerQModelIndex_connectListener,
+  ListenerQModelIndexConst (..),
+  castListenerQModelIndexToConst,
+  ListenerQModelIndex (..),
+  castListenerQModelIndexToNonconst,
+  listenerQModelIndex_new,
+  listenerQModelIndex_newWithParent,
+  ListenerQModelIndexSuper (..),
+  ListenerQModelIndexSuperConst (..),
+  ListenerQModelIndexIntIntValue (..),
+  ListenerQModelIndexIntIntConstPtr (..),
+  ListenerQModelIndexIntIntPtr (..),
+  listenerQModelIndexIntInt_connectListener,
+  ListenerQModelIndexIntIntConst (..),
+  castListenerQModelIndexIntIntToConst,
+  ListenerQModelIndexIntInt (..),
+  castListenerQModelIndexIntIntToNonconst,
+  listenerQModelIndexIntInt_new,
+  listenerQModelIndexIntInt_newWithParent,
+  ListenerQModelIndexIntIntSuper (..),
+  ListenerQModelIndexIntIntSuperConst (..),
+  ListenerQModelIndexIntIntQModelIndexIntValue (..),
+  ListenerQModelIndexIntIntQModelIndexIntConstPtr (..),
+  ListenerQModelIndexIntIntQModelIndexIntPtr (..),
+  listenerQModelIndexIntIntQModelIndexInt_connectListener,
+  ListenerQModelIndexIntIntQModelIndexIntConst (..),
+  castListenerQModelIndexIntIntQModelIndexIntToConst,
+  ListenerQModelIndexIntIntQModelIndexInt (..),
+  castListenerQModelIndexIntIntQModelIndexIntToNonconst,
+  listenerQModelIndexIntIntQModelIndexInt_new,
+  listenerQModelIndexIntIntQModelIndexInt_newWithParent,
+  ListenerQModelIndexIntIntQModelIndexIntSuper (..),
+  ListenerQModelIndexIntIntQModelIndexIntSuperConst (..),
+  ListenerQModelIndexQModelIndexValue (..),
+  ListenerQModelIndexQModelIndexConstPtr (..),
+  ListenerQModelIndexQModelIndexPtr (..),
+  listenerQModelIndexQModelIndex_connectListener,
+  ListenerQModelIndexQModelIndexConst (..),
+  castListenerQModelIndexQModelIndexToConst,
+  ListenerQModelIndexQModelIndex (..),
+  castListenerQModelIndexQModelIndexToNonconst,
+  listenerQModelIndexQModelIndex_new,
+  listenerQModelIndexQModelIndex_newWithParent,
+  ListenerQModelIndexQModelIndexSuper (..),
+  ListenerQModelIndexQModelIndexSuperConst (..),
+  ListenerQModelIndexQModelIndexQVectorIntValue (..),
+  ListenerQModelIndexQModelIndexQVectorIntConstPtr (..),
+  ListenerQModelIndexQModelIndexQVectorIntPtr (..),
+  listenerQModelIndexQModelIndexQVectorInt_connectListener,
+  ListenerQModelIndexQModelIndexQVectorIntConst (..),
+  castListenerQModelIndexQModelIndexQVectorIntToConst,
+  ListenerQModelIndexQModelIndexQVectorInt (..),
+  castListenerQModelIndexQModelIndexQVectorIntToNonconst,
+  listenerQModelIndexQModelIndexQVectorInt_new,
+  listenerQModelIndexQModelIndexQVectorInt_newWithParent,
+  ListenerQModelIndexQModelIndexQVectorIntSuper (..),
+  ListenerQModelIndexQModelIndexQVectorIntSuperConst (..),
+  ListenerQPointValue (..),
+  ListenerQPointConstPtr (..),
+  ListenerQPointPtr (..),
+  listenerQPoint_connectListener,
+  ListenerQPointConst (..),
+  castListenerQPointToConst,
+  ListenerQPoint (..),
+  castListenerQPointToNonconst,
+  listenerQPoint_new,
+  listenerQPoint_newWithParent,
+  ListenerQPointSuper (..),
+  ListenerQPointSuperConst (..),
+  ListenerQSizeValue (..),
+  ListenerQSizeConstPtr (..),
+  ListenerQSizePtr (..),
+  listenerQSize_connectListener,
+  ListenerQSizeConst (..),
+  castListenerQSizeToConst,
+  ListenerQSize (..),
+  castListenerQSizeToNonconst,
+  listenerQSize_new,
+  listenerQSize_newWithParent,
+  ListenerQSizeSuper (..),
+  ListenerQSizeSuperConst (..),
+  ListenerQStringValue (..),
+  ListenerQStringConstPtr (..),
+  ListenerQStringPtr (..),
+  listenerQString_connectListener,
+  ListenerQStringConst (..),
+  castListenerQStringToConst,
+  ListenerQString (..),
+  castListenerQStringToNonconst,
+  listenerQString_new,
+  listenerQString_newWithParent,
+  ListenerQStringSuper (..),
+  ListenerQStringSuperConst (..),
+  ListenerQWindowVisibilityValue (..),
+  ListenerQWindowVisibilityConstPtr (..),
+  ListenerQWindowVisibilityPtr (..),
+  listenerQWindowVisibility_connectListener,
+  ListenerQWindowVisibilityConst (..),
+  castListenerQWindowVisibilityToConst,
+  ListenerQWindowVisibility (..),
+  castListenerQWindowVisibilityToNonconst,
+  listenerQWindowVisibility_new,
+  listenerQWindowVisibility_newWithParent,
+  ListenerQWindowVisibilitySuper (..),
+  ListenerQWindowVisibilitySuperConst (..),
+  ListenerQrealValue (..),
+  ListenerQrealConstPtr (..),
+  ListenerQrealPtr (..),
+  listenerQreal_connectListener,
+  ListenerQrealConst (..),
+  castListenerQrealToConst,
+  ListenerQreal (..),
+  castListenerQrealToNonconst,
+  listenerQreal_new,
+  listenerQreal_newWithParent,
+  ListenerQrealSuper (..),
+  ListenerQrealSuperConst (..),
+  ListenerRefConstQItemSelectionRefConstQItemSelectionValue (..),
+  ListenerRefConstQItemSelectionRefConstQItemSelectionConstPtr (..),
+  ListenerRefConstQItemSelectionRefConstQItemSelectionPtr (..),
+  listenerRefConstQItemSelectionRefConstQItemSelection_connectListener,
+  ListenerRefConstQItemSelectionRefConstQItemSelectionConst (..),
+  castListenerRefConstQItemSelectionRefConstQItemSelectionToConst,
+  ListenerRefConstQItemSelectionRefConstQItemSelection (..),
+  castListenerRefConstQItemSelectionRefConstQItemSelectionToNonconst,
+  listenerRefConstQItemSelectionRefConstQItemSelection_new,
+  listenerRefConstQItemSelectionRefConstQItemSelection_newWithParent,
+  ListenerRefConstQItemSelectionRefConstQItemSelectionSuper (..),
+  ListenerRefConstQItemSelectionRefConstQItemSelectionSuperConst (..),
+  ListenerScreenOrientationValue (..),
+  ListenerScreenOrientationConstPtr (..),
+  ListenerScreenOrientationPtr (..),
+  listenerScreenOrientation_connectListener,
+  ListenerScreenOrientationConst (..),
+  castListenerScreenOrientationToConst,
+  ListenerScreenOrientation (..),
+  castListenerScreenOrientationToNonconst,
+  listenerScreenOrientation_new,
+  listenerScreenOrientation_newWithParent,
+  ListenerScreenOrientationSuper (..),
+  ListenerScreenOrientationSuperConst (..),
+  ListenerWindowModalityValue (..),
+  ListenerWindowModalityConstPtr (..),
+  ListenerWindowModalityPtr (..),
+  listenerWindowModality_connectListener,
+  ListenerWindowModalityConst (..),
+  castListenerWindowModalityToConst,
+  ListenerWindowModality (..),
+  castListenerWindowModalityToNonconst,
+  listenerWindowModality_new,
+  listenerWindowModality_newWithParent,
+  ListenerWindowModalitySuper (..),
+  ListenerWindowModalitySuperConst (..),
+  ListenerWindowStateValue (..),
+  ListenerWindowStateConstPtr (..),
+  ListenerWindowStatePtr (..),
+  listenerWindowState_connectListener,
+  ListenerWindowStateConst (..),
+  castListenerWindowStateToConst,
+  ListenerWindowState (..),
+  castListenerWindowStateToNonconst,
+  listenerWindowState_new,
+  listenerWindowState_newWithParent,
+  ListenerWindowStateSuper (..),
+  ListenerWindowStateSuperConst (..),
+  ) 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.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M2
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelection as M18
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M28
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M42
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.Int as M76
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
+import qualified Graphics.UI.Qtah.Generated.Gui.QClipboard as M88
+import qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M150
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M162
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider as M170
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M174
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import qualified Graphics.UI.Qtah.Internal.Callback as M156
+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' ::  HoppyFHR.CCallback (HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr Listener)
+foreign import ccall "genpop__Listener_newWithParent" listener_newWithParent' ::  HoppyFHR.CCallback (HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr Listener)
+foreign import ccall "genpop__Listener_connectListener" listener_connectListener' ::  HoppyF.Ptr Listener -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__Listener__QObject" castListenerToQObject :: HoppyF.Ptr ListenerConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__Listener" castQObjectToListener :: HoppyF.Ptr M30.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' ::  HoppyFHR.CCallback (HoppyFHR.CBool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerBool)
+foreign import ccall "genpop__ListenerBool_newWithParent" listenerBool_newWithParent' ::  HoppyFHR.CCallback (HoppyFHR.CBool -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerBool)
+foreign import ccall "genpop__ListenerBool_connectListener" listenerBool_connectListener' ::  HoppyF.Ptr ListenerBool -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerBool__QObject" castListenerBoolToQObject :: HoppyF.Ptr ListenerBoolConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerBool" castQObjectToListenerBool :: HoppyF.Ptr M30.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__ListenerDouble_new" listenerDouble_new' ::  HoppyFHR.CCallback (HoppyFC.CDouble -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerDouble)
+foreign import ccall "genpop__ListenerDouble_newWithParent" listenerDouble_newWithParent' ::  HoppyFHR.CCallback (HoppyFC.CDouble -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerDouble)
+foreign import ccall "genpop__ListenerDouble_connectListener" listenerDouble_connectListener' ::  HoppyF.Ptr ListenerDouble -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerDouble__QObject" castListenerDoubleToQObject :: HoppyF.Ptr ListenerDoubleConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerDouble" castQObjectToListenerDouble :: HoppyF.Ptr M30.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' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerInt)
+foreign import ccall "genpop__ListenerInt_newWithParent" listenerInt_newWithParent' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerInt)
+foreign import ccall "genpop__ListenerInt_connectListener" listenerInt_connectListener' ::  HoppyF.Ptr ListenerInt -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerInt__QObject" castListenerIntToQObject :: HoppyF.Ptr ListenerIntConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerInt" castQObjectToListenerInt :: HoppyF.Ptr M30.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' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFHR.CBool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerIntBool)
+foreign import ccall "genpop__ListenerIntBool_newWithParent" listenerIntBool_newWithParent' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFHR.CBool -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerIntBool)
+foreign import ccall "genpop__ListenerIntBool_connectListener" listenerIntBool_connectListener' ::  HoppyF.Ptr ListenerIntBool -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerIntBool__QObject" castListenerIntBoolToQObject :: HoppyF.Ptr ListenerIntBoolConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerIntBool" castQObjectToListenerIntBool :: HoppyF.Ptr M30.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__ListenerIntInt_new" listenerIntInt_new' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerIntInt)
+foreign import ccall "genpop__ListenerIntInt_newWithParent" listenerIntInt_newWithParent' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerIntInt)
+foreign import ccall "genpop__ListenerIntInt_connectListener" listenerIntInt_connectListener' ::  HoppyF.Ptr ListenerIntInt -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerIntInt__QObject" castListenerIntIntToQObject :: HoppyF.Ptr ListenerIntIntConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerIntInt" castQObjectToListenerIntInt :: HoppyF.Ptr M30.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__ListenerPtrQAbstractButton_new" listenerPtrQAbstractButton_new' ::  HoppyFHR.CCallback (HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerPtrQAbstractButton)
+foreign import ccall "genpop__ListenerPtrQAbstractButton_newWithParent" listenerPtrQAbstractButton_newWithParent' ::  HoppyFHR.CCallback (HoppyF.Ptr M162.QAbstractButton -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerPtrQAbstractButton)
+foreign import ccall "genpop__ListenerPtrQAbstractButton_connectListener" listenerPtrQAbstractButton_connectListener' ::  HoppyF.Ptr ListenerPtrQAbstractButton -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerPtrQAbstractButton__QObject" castListenerPtrQAbstractButtonToQObject :: HoppyF.Ptr ListenerPtrQAbstractButtonConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerPtrQAbstractButton" castQObjectToListenerPtrQAbstractButton :: HoppyF.Ptr M30.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' ::  HoppyFHR.CCallback (HoppyF.Ptr M162.QAbstractButton -> HoppyFHR.CBool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerPtrQAbstractButtonBool)
+foreign import ccall "genpop__ListenerPtrQAbstractButtonBool_newWithParent" listenerPtrQAbstractButtonBool_newWithParent' ::  HoppyFHR.CCallback (HoppyF.Ptr M162.QAbstractButton -> HoppyFHR.CBool -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerPtrQAbstractButtonBool)
+foreign import ccall "genpop__ListenerPtrQAbstractButtonBool_connectListener" listenerPtrQAbstractButtonBool_connectListener' ::  HoppyF.Ptr ListenerPtrQAbstractButtonBool -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerPtrQAbstractButtonBool__QObject" castListenerPtrQAbstractButtonBoolToQObject :: HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerPtrQAbstractButtonBool" castQObjectToListenerPtrQAbstractButtonBool :: HoppyF.Ptr M30.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' ::  HoppyFHR.CCallback (HoppyF.Ptr M2.QAbstractItemModel -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerPtrQAbstractItemModel)
+foreign import ccall "genpop__ListenerPtrQAbstractItemModel_newWithParent" listenerPtrQAbstractItemModel_newWithParent' ::  HoppyFHR.CCallback (HoppyF.Ptr M2.QAbstractItemModel -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerPtrQAbstractItemModel)
+foreign import ccall "genpop__ListenerPtrQAbstractItemModel_connectListener" listenerPtrQAbstractItemModel_connectListener' ::  HoppyF.Ptr ListenerPtrQAbstractItemModel -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerPtrQAbstractItemModel__QObject" castListenerPtrQAbstractItemModelToQObject :: HoppyF.Ptr ListenerPtrQAbstractItemModelConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerPtrQAbstractItemModel" castQObjectToListenerPtrQAbstractItemModel :: HoppyF.Ptr M30.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' ::  HoppyFHR.CCallback (HoppyF.Ptr M174.QAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerPtrQAction)
+foreign import ccall "genpop__ListenerPtrQAction_newWithParent" listenerPtrQAction_newWithParent' ::  HoppyFHR.CCallback (HoppyF.Ptr M174.QAction -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerPtrQAction)
+foreign import ccall "genpop__ListenerPtrQAction_connectListener" listenerPtrQAction_connectListener' ::  HoppyF.Ptr ListenerPtrQAction -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerPtrQAction__QObject" castListenerPtrQActionToQObject :: HoppyF.Ptr ListenerPtrQActionConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerPtrQAction" castQObjectToListenerPtrQAction :: HoppyF.Ptr M30.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__ListenerPtrQObject_new" listenerPtrQObject_new' ::  HoppyFHR.CCallback (HoppyF.Ptr M30.QObject -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerPtrQObject)
+foreign import ccall "genpop__ListenerPtrQObject_newWithParent" listenerPtrQObject_newWithParent' ::  HoppyFHR.CCallback (HoppyF.Ptr M30.QObject -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerPtrQObject)
+foreign import ccall "genpop__ListenerPtrQObject_connectListener" listenerPtrQObject_connectListener' ::  HoppyF.Ptr ListenerPtrQObject -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerPtrQObject__QObject" castListenerPtrQObjectToQObject :: HoppyF.Ptr ListenerPtrQObjectConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerPtrQObject" castQObjectToListenerPtrQObject :: HoppyF.Ptr M30.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__ListenerPtrQWidgetPtrQWidget_new" listenerPtrQWidgetPtrQWidget_new' ::  HoppyFHR.CCallback (HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerPtrQWidgetPtrQWidget)
+foreign import ccall "genpop__ListenerPtrQWidgetPtrQWidget_newWithParent" listenerPtrQWidgetPtrQWidget_newWithParent' ::  HoppyFHR.CCallback (HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M280.QWidget -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerPtrQWidgetPtrQWidget)
+foreign import ccall "genpop__ListenerPtrQWidgetPtrQWidget_connectListener" listenerPtrQWidgetPtrQWidget_connectListener' ::  HoppyF.Ptr ListenerPtrQWidgetPtrQWidget -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerPtrQWidgetPtrQWidget__QObject" castListenerPtrQWidgetPtrQWidgetToQObject :: HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerPtrQWidgetPtrQWidget" castQObjectToListenerPtrQWidgetPtrQWidget :: HoppyF.Ptr M30.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__ListenerQAbstractSliderAction_new" listenerQAbstractSliderAction_new' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQAbstractSliderAction)
+foreign import ccall "genpop__ListenerQAbstractSliderAction_newWithParent" listenerQAbstractSliderAction_newWithParent' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerQAbstractSliderAction)
+foreign import ccall "genpop__ListenerQAbstractSliderAction_connectListener" listenerQAbstractSliderAction_connectListener' ::  HoppyF.Ptr ListenerQAbstractSliderAction -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerQAbstractSliderAction__QObject" castListenerQAbstractSliderActionToQObject :: HoppyF.Ptr ListenerQAbstractSliderActionConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQAbstractSliderAction" castQObjectToListenerQAbstractSliderAction :: HoppyF.Ptr M30.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' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQClipboardMode)
+foreign import ccall "genpop__ListenerQClipboardMode_newWithParent" listenerQClipboardMode_newWithParent' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerQClipboardMode)
+foreign import ccall "genpop__ListenerQClipboardMode_connectListener" listenerQClipboardMode_connectListener' ::  HoppyF.Ptr ListenerQClipboardMode -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerQClipboardMode__QObject" castListenerQClipboardModeToQObject :: HoppyF.Ptr ListenerQClipboardModeConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQClipboardMode" castQObjectToListenerQClipboardMode :: HoppyF.Ptr M30.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__ListenerQModelIndex_new" listenerQModelIndex_new' ::  HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQModelIndex)
+foreign import ccall "genpop__ListenerQModelIndex_newWithParent" listenerQModelIndex_newWithParent' ::  HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerQModelIndex)
+foreign import ccall "genpop__ListenerQModelIndex_connectListener" listenerQModelIndex_connectListener' ::  HoppyF.Ptr ListenerQModelIndex -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerQModelIndex__QObject" castListenerQModelIndexToQObject :: HoppyF.Ptr ListenerQModelIndexConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQModelIndex" castQObjectToListenerQModelIndex :: HoppyF.Ptr M30.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' ::  HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQModelIndexIntInt)
+foreign import ccall "genpop__ListenerQModelIndexIntInt_newWithParent" listenerQModelIndexIntInt_newWithParent' ::  HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerQModelIndexIntInt)
+foreign import ccall "genpop__ListenerQModelIndexIntInt_connectListener" listenerQModelIndexIntInt_connectListener' ::  HoppyF.Ptr ListenerQModelIndexIntInt -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerQModelIndexIntInt__QObject" castListenerQModelIndexIntIntToQObject :: HoppyF.Ptr ListenerQModelIndexIntIntConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQModelIndexIntInt" castQObjectToListenerQModelIndexIntInt :: HoppyF.Ptr M30.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' ::  HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt)
+foreign import ccall "genpop__ListenerQModelIndexIntIntQModelIndexInt_newWithParent" listenerQModelIndexIntIntQModelIndexInt_newWithParent' ::  HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M28.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt)
+foreign import ccall "genpop__ListenerQModelIndexIntIntQModelIndexInt_connectListener" listenerQModelIndexIntIntQModelIndexInt_connectListener' ::  HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerQModelIndexIntIntQModelIndexInt__QObject" castListenerQModelIndexIntIntQModelIndexIntToQObject :: HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQModelIndexIntIntQModelIndexInt" castQObjectToListenerQModelIndexIntIntQModelIndexInt :: HoppyF.Ptr M30.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' ::  HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQModelIndexQModelIndex)
+foreign import ccall "genpop__ListenerQModelIndexQModelIndex_newWithParent" listenerQModelIndexQModelIndex_newWithParent' ::  HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerQModelIndexQModelIndex)
+foreign import ccall "genpop__ListenerQModelIndexQModelIndex_connectListener" listenerQModelIndexQModelIndex_connectListener' ::  HoppyF.Ptr ListenerQModelIndexQModelIndex -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerQModelIndexQModelIndex__QObject" castListenerQModelIndexQModelIndexToQObject :: HoppyF.Ptr ListenerQModelIndexQModelIndexConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQModelIndexQModelIndex" castQObjectToListenerQModelIndexQModelIndex :: HoppyF.Ptr M30.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' ::  HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M76.QVectorInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt)
+foreign import ccall "genpop__ListenerQModelIndexQModelIndexQVectorInt_newWithParent" listenerQModelIndexQModelIndexQVectorInt_newWithParent' ::  HoppyFHR.CCallback (HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M28.QModelIndexConst -> HoppyF.Ptr M76.QVectorInt -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt)
+foreign import ccall "genpop__ListenerQModelIndexQModelIndexQVectorInt_connectListener" listenerQModelIndexQModelIndexQVectorInt_connectListener' ::  HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerQModelIndexQModelIndexQVectorInt__QObject" castListenerQModelIndexQModelIndexQVectorIntToQObject :: HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQModelIndexQModelIndexQVectorInt" castQObjectToListenerQModelIndexQModelIndexQVectorInt :: HoppyF.Ptr M30.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' ::  HoppyFHR.CCallback (HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQPoint)
+foreign import ccall "genpop__ListenerQPoint_newWithParent" listenerQPoint_newWithParent' ::  HoppyFHR.CCallback (HoppyF.Ptr M34.QPointConst -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerQPoint)
+foreign import ccall "genpop__ListenerQPoint_connectListener" listenerQPoint_connectListener' ::  HoppyF.Ptr ListenerQPoint -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerQPoint__QObject" castListenerQPointToQObject :: HoppyF.Ptr ListenerQPointConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQPoint" castQObjectToListenerQPoint :: HoppyF.Ptr M30.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' ::  HoppyFHR.CCallback (HoppyF.Ptr M42.QSizeConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQSize)
+foreign import ccall "genpop__ListenerQSize_newWithParent" listenerQSize_newWithParent' ::  HoppyFHR.CCallback (HoppyF.Ptr M42.QSizeConst -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerQSize)
+foreign import ccall "genpop__ListenerQSize_connectListener" listenerQSize_connectListener' ::  HoppyF.Ptr ListenerQSize -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerQSize__QObject" castListenerQSizeToQObject :: HoppyF.Ptr ListenerQSizeConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQSize" castQObjectToListenerQSize :: HoppyF.Ptr M30.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' ::  HoppyFHR.CCallback (HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQString)
+foreign import ccall "genpop__ListenerQString_newWithParent" listenerQString_newWithParent' ::  HoppyFHR.CCallback (HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerQString)
+foreign import ccall "genpop__ListenerQString_connectListener" listenerQString_connectListener' ::  HoppyF.Ptr ListenerQString -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerQString__QObject" castListenerQStringToQObject :: HoppyF.Ptr ListenerQStringConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQString" castQObjectToListenerQString :: HoppyF.Ptr M30.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__ListenerQWindowVisibility_new" listenerQWindowVisibility_new' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQWindowVisibility)
+foreign import ccall "genpop__ListenerQWindowVisibility_newWithParent" listenerQWindowVisibility_newWithParent' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerQWindowVisibility)
+foreign import ccall "genpop__ListenerQWindowVisibility_connectListener" listenerQWindowVisibility_connectListener' ::  HoppyF.Ptr ListenerQWindowVisibility -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerQWindowVisibility__QObject" castListenerQWindowVisibilityToQObject :: HoppyF.Ptr ListenerQWindowVisibilityConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQWindowVisibility" castQObjectToListenerQWindowVisibility :: HoppyF.Ptr M30.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__ListenerQreal_new" listenerQreal_new' ::  HoppyFHR.CCallback (HoppyFC.CDouble -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQreal)
+foreign import ccall "genpop__ListenerQreal_newWithParent" listenerQreal_newWithParent' ::  HoppyFHR.CCallback (HoppyFC.CDouble -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerQreal)
+foreign import ccall "genpop__ListenerQreal_connectListener" listenerQreal_connectListener' ::  HoppyF.Ptr ListenerQreal -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerQreal__QObject" castListenerQrealToQObject :: HoppyF.Ptr ListenerQrealConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQreal" castQObjectToListenerQreal :: HoppyF.Ptr M30.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__ListenerRefConstQItemSelectionRefConstQItemSelection_new" listenerRefConstQItemSelectionRefConstQItemSelection_new' ::  HoppyFHR.CCallback (HoppyF.Ptr M18.QItemSelectionConst -> HoppyF.Ptr M18.QItemSelectionConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection)
+foreign import ccall "genpop__ListenerRefConstQItemSelectionRefConstQItemSelection_newWithParent" listenerRefConstQItemSelectionRefConstQItemSelection_newWithParent' ::  HoppyFHR.CCallback (HoppyF.Ptr M18.QItemSelectionConst -> HoppyF.Ptr M18.QItemSelectionConst -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection)
+foreign import ccall "genpop__ListenerRefConstQItemSelectionRefConstQItemSelection_connectListener" listenerRefConstQItemSelectionRefConstQItemSelection_connectListener' ::  HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerRefConstQItemSelectionRefConstQItemSelection__QObject" castListenerRefConstQItemSelectionRefConstQItemSelectionToQObject :: HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerRefConstQItemSelectionRefConstQItemSelection" castQObjectToListenerRefConstQItemSelectionRefConstQItemSelection :: HoppyF.Ptr M30.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__ListenerScreenOrientation_new" listenerScreenOrientation_new' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerScreenOrientation)
+foreign import ccall "genpop__ListenerScreenOrientation_newWithParent" listenerScreenOrientation_newWithParent' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerScreenOrientation)
+foreign import ccall "genpop__ListenerScreenOrientation_connectListener" listenerScreenOrientation_connectListener' ::  HoppyF.Ptr ListenerScreenOrientation -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerScreenOrientation__QObject" castListenerScreenOrientationToQObject :: HoppyF.Ptr ListenerScreenOrientationConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerScreenOrientation" castQObjectToListenerScreenOrientation :: HoppyF.Ptr M30.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__ListenerWindowModality_new" listenerWindowModality_new' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerWindowModality)
+foreign import ccall "genpop__ListenerWindowModality_newWithParent" listenerWindowModality_newWithParent' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerWindowModality)
+foreign import ccall "genpop__ListenerWindowModality_connectListener" listenerWindowModality_connectListener' ::  HoppyF.Ptr ListenerWindowModality -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerWindowModality__QObject" castListenerWindowModalityToQObject :: HoppyF.Ptr ListenerWindowModalityConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerWindowModality" castQObjectToListenerWindowModality :: HoppyF.Ptr M30.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' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerWindowState)
+foreign import ccall "genpop__ListenerWindowState_newWithParent" listenerWindowState_newWithParent' ::  HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.Ptr M30.QObject -> HoppyP.IO (HoppyF.Ptr ListenerWindowState)
+foreign import ccall "genpop__ListenerWindowState_connectListener" listenerWindowState_connectListener' ::  HoppyF.Ptr ListenerWindowState -> HoppyF.Ptr M30.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "gencast__ListenerWindowState__QObject" castListenerWindowStateToQObject :: HoppyF.Ptr ListenerWindowStateConst -> HoppyF.Ptr M30.QObjectConst
+foreign import ccall "gencast__QObject__ListenerWindowState" castQObjectToListenerWindowState :: HoppyF.Ptr M30.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 ())
+
+class ListenerValue a where
+  withListenerPtr :: a -> (ListenerConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerConstPtr a => ListenerValue a where
+#else
+instance ListenerConstPtr a => ListenerValue a where
+#endif
+  withListenerPtr = HoppyP.flip ($) . toListenerConst
+
+class (M30.QObjectConstPtr this) => ListenerConstPtr this where
+  toListenerConst :: this -> ListenerConst
+
+class (ListenerConstPtr this, M30.QObjectPtr this) => ListenerPtr this where
+  toListener :: this -> Listener
+
+listener_connectListener :: (ListenerPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listener_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListener arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listener_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerConst where
+  toQObjectConst (ListenerConst ptr') = M30.QObjectConst $ castListenerToQObject ptr'
+  toQObjectConst (ListenerConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr Listener where
+  toQObjectConst (Listener ptr') = M30.QObjectConst $ castListenerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr Listener -> HoppyF.Ptr ListenerConst) ptr'
+  toQObjectConst (ListenerGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr Listener -> HoppyF.Ptr ListenerConst) ptr'
+
+instance M30.QObjectPtr Listener where
+  toQObject (Listener ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr Listener -> HoppyF.Ptr ListenerConst) ptr'
+  toQObject (ListenerGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr Listener -> HoppyF.Ptr ListenerConst) ptr'
+
+listener_new ::  HoppyP.IO () -> HoppyP.IO Listener
+listener_new arg'1 =
+  M156.callbackVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap Listener
+  (listener_new' arg'1')
+
+listener_newWithParent :: (M30.QObjectPtr arg'2) => HoppyP.IO () -> arg'2 -> HoppyP.IO Listener
+listener_newWithParent arg'1 arg'2 =
+  M156.callbackVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap Listener
+  (listener_newWithParent' arg'1' arg'2')
+
+class ListenerSuper a where
+  downToListener :: a -> Listener
+
+instance ListenerSuper M30.QObject where
+  downToListener = castListenerToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerConst $ castQObjectToListener ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerConstGc fptr' $ castQObjectToListener ptr'
+
+class ListenerSuperConst a where
+  downToListenerConst :: a -> ListenerConst
+
+instance ListenerSuperConst M30.QObjectConst where
+  downToListenerConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerConst $ castQObjectToListener ptr'
+      cast' (M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerBoolConstPtr a => ListenerBoolValue a where
+#else
+instance ListenerBoolConstPtr a => ListenerBoolValue a where
+#endif
+  withListenerBoolPtr = HoppyP.flip ($) . toListenerBoolConst
+
+class (M30.QObjectConstPtr this) => ListenerBoolConstPtr this where
+  toListenerBoolConst :: this -> ListenerBoolConst
+
+class (ListenerBoolConstPtr this, M30.QObjectPtr this) => ListenerBoolPtr this where
+  toListenerBool :: this -> ListenerBool
+
+listenerBool_connectListener :: (ListenerBoolPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerBool_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerBool arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerBool_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerBoolConst where
+  toQObjectConst (ListenerBoolConst ptr') = M30.QObjectConst $ castListenerBoolToQObject ptr'
+  toQObjectConst (ListenerBoolConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerBool where
+  toQObjectConst (ListenerBool ptr') = M30.QObjectConst $ castListenerBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerBool -> HoppyF.Ptr ListenerBoolConst) ptr'
+  toQObjectConst (ListenerBoolGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerBool -> HoppyF.Ptr ListenerBoolConst) ptr'
+
+instance M30.QObjectPtr ListenerBool where
+  toQObject (ListenerBool ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerBool -> HoppyF.Ptr ListenerBoolConst) ptr'
+  toQObject (ListenerBoolGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerBool -> HoppyF.Ptr ListenerBoolConst) ptr'
+
+listenerBool_new ::  (HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO ListenerBool
+listenerBool_new arg'1 =
+  M156.callbackBoolVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerBool
+  (listenerBool_new' arg'1')
+
+listenerBool_newWithParent :: (M30.QObjectPtr arg'2) => (HoppyP.Bool -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerBool
+listenerBool_newWithParent arg'1 arg'2 =
+  M156.callbackBoolVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerBool
+  (listenerBool_newWithParent' arg'1' arg'2')
+
+class ListenerBoolSuper a where
+  downToListenerBool :: a -> ListenerBool
+
+instance ListenerBoolSuper M30.QObject where
+  downToListenerBool = castListenerBoolToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerBoolConst $ castQObjectToListenerBool ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerBoolConstGc fptr' $ castQObjectToListenerBool ptr'
+
+class ListenerBoolSuperConst a where
+  downToListenerBoolConst :: a -> ListenerBoolConst
+
+instance ListenerBoolSuperConst M30.QObjectConst where
+  downToListenerBoolConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerBoolConst $ castQObjectToListenerBool ptr'
+      cast' (M30.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 ListenerDoubleValue a where
+  withListenerDoublePtr :: a -> (ListenerDoubleConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerDoubleConstPtr a => ListenerDoubleValue a where
+#else
+instance ListenerDoubleConstPtr a => ListenerDoubleValue a where
+#endif
+  withListenerDoublePtr = HoppyP.flip ($) . toListenerDoubleConst
+
+class (M30.QObjectConstPtr this) => ListenerDoubleConstPtr this where
+  toListenerDoubleConst :: this -> ListenerDoubleConst
+
+class (ListenerDoubleConstPtr this, M30.QObjectPtr this) => ListenerDoublePtr this where
+  toListenerDouble :: this -> ListenerDouble
+
+listenerDouble_connectListener :: (ListenerDoublePtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerDouble_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerDouble arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerDouble_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerDoubleConst where
+  toQObjectConst (ListenerDoubleConst ptr') = M30.QObjectConst $ castListenerDoubleToQObject ptr'
+  toQObjectConst (ListenerDoubleConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerDouble where
+  toQObjectConst (ListenerDouble ptr') = M30.QObjectConst $ castListenerDoubleToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDouble -> HoppyF.Ptr ListenerDoubleConst) ptr'
+  toQObjectConst (ListenerDoubleGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerDoubleToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDouble -> HoppyF.Ptr ListenerDoubleConst) ptr'
+
+instance M30.QObjectPtr ListenerDouble where
+  toQObject (ListenerDouble ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerDoubleToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDouble -> HoppyF.Ptr ListenerDoubleConst) ptr'
+  toQObject (ListenerDoubleGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerDoubleToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDouble -> HoppyF.Ptr ListenerDoubleConst) ptr'
+
+listenerDouble_new ::  (HoppyP.Double -> HoppyP.IO ()) -> HoppyP.IO ListenerDouble
+listenerDouble_new arg'1 =
+  M156.callbackDoubleVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerDouble
+  (listenerDouble_new' arg'1')
+
+listenerDouble_newWithParent :: (M30.QObjectPtr arg'2) => (HoppyP.Double -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerDouble
+listenerDouble_newWithParent arg'1 arg'2 =
+  M156.callbackDoubleVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerDouble
+  (listenerDouble_newWithParent' arg'1' arg'2')
+
+class ListenerDoubleSuper a where
+  downToListenerDouble :: a -> ListenerDouble
+
+instance ListenerDoubleSuper M30.QObject where
+  downToListenerDouble = castListenerDoubleToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerDoubleConst $ castQObjectToListenerDouble ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerDoubleConstGc fptr' $ castQObjectToListenerDouble ptr'
+
+class ListenerDoubleSuperConst a where
+  downToListenerDoubleConst :: a -> ListenerDoubleConst
+
+instance ListenerDoubleSuperConst M30.QObjectConst where
+  downToListenerDoubleConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerDoubleConst $ castQObjectToListenerDouble ptr'
+      cast' (M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerIntConstPtr a => ListenerIntValue a where
+#else
+instance ListenerIntConstPtr a => ListenerIntValue a where
+#endif
+  withListenerIntPtr = HoppyP.flip ($) . toListenerIntConst
+
+class (M30.QObjectConstPtr this) => ListenerIntConstPtr this where
+  toListenerIntConst :: this -> ListenerIntConst
+
+class (ListenerIntConstPtr this, M30.QObjectPtr this) => ListenerIntPtr this where
+  toListenerInt :: this -> ListenerInt
+
+listenerInt_connectListener :: (ListenerIntPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerInt_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerInt arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerInt_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerIntConst where
+  toQObjectConst (ListenerIntConst ptr') = M30.QObjectConst $ castListenerIntToQObject ptr'
+  toQObjectConst (ListenerIntConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerInt where
+  toQObjectConst (ListenerInt ptr') = M30.QObjectConst $ castListenerIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerInt -> HoppyF.Ptr ListenerIntConst) ptr'
+  toQObjectConst (ListenerIntGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerInt -> HoppyF.Ptr ListenerIntConst) ptr'
+
+instance M30.QObjectPtr ListenerInt where
+  toQObject (ListenerInt ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerInt -> HoppyF.Ptr ListenerIntConst) ptr'
+  toQObject (ListenerIntGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerInt -> HoppyF.Ptr ListenerIntConst) ptr'
+
+listenerInt_new ::  (HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO ListenerInt
+listenerInt_new arg'1 =
+  M156.callbackIntVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerInt
+  (listenerInt_new' arg'1')
+
+listenerInt_newWithParent :: (M30.QObjectPtr arg'2) => (HoppyP.Int -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerInt
+listenerInt_newWithParent arg'1 arg'2 =
+  M156.callbackIntVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerInt
+  (listenerInt_newWithParent' arg'1' arg'2')
+
+class ListenerIntSuper a where
+  downToListenerInt :: a -> ListenerInt
+
+instance ListenerIntSuper M30.QObject where
+  downToListenerInt = castListenerIntToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerIntConst $ castQObjectToListenerInt ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerIntConstGc fptr' $ castQObjectToListenerInt ptr'
+
+class ListenerIntSuperConst a where
+  downToListenerIntConst :: a -> ListenerIntConst
+
+instance ListenerIntSuperConst M30.QObjectConst where
+  downToListenerIntConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerIntConst $ castQObjectToListenerInt ptr'
+      cast' (M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerIntBoolConstPtr a => ListenerIntBoolValue a where
+#else
+instance ListenerIntBoolConstPtr a => ListenerIntBoolValue a where
+#endif
+  withListenerIntBoolPtr = HoppyP.flip ($) . toListenerIntBoolConst
+
+class (M30.QObjectConstPtr this) => ListenerIntBoolConstPtr this where
+  toListenerIntBoolConst :: this -> ListenerIntBoolConst
+
+class (ListenerIntBoolConstPtr this, M30.QObjectPtr this) => ListenerIntBoolPtr this where
+  toListenerIntBool :: this -> ListenerIntBool
+
+listenerIntBool_connectListener :: (ListenerIntBoolPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerIntBool_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerIntBool arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerIntBool_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerIntBoolConst where
+  toQObjectConst (ListenerIntBoolConst ptr') = M30.QObjectConst $ castListenerIntBoolToQObject ptr'
+  toQObjectConst (ListenerIntBoolConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerIntBool where
+  toQObjectConst (ListenerIntBool ptr') = M30.QObjectConst $ castListenerIntBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntBool -> HoppyF.Ptr ListenerIntBoolConst) ptr'
+  toQObjectConst (ListenerIntBoolGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerIntBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntBool -> HoppyF.Ptr ListenerIntBoolConst) ptr'
+
+instance M30.QObjectPtr ListenerIntBool where
+  toQObject (ListenerIntBool ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerIntBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntBool -> HoppyF.Ptr ListenerIntBoolConst) ptr'
+  toQObject (ListenerIntBoolGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerIntBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntBool -> HoppyF.Ptr ListenerIntBoolConst) ptr'
+
+listenerIntBool_new ::  (HoppyP.Int -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO ListenerIntBool
+listenerIntBool_new arg'1 =
+  M156.callbackIntBoolVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerIntBool
+  (listenerIntBool_new' arg'1')
+
+listenerIntBool_newWithParent :: (M30.QObjectPtr arg'2) => (HoppyP.Int -> HoppyP.Bool -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerIntBool
+listenerIntBool_newWithParent arg'1 arg'2 =
+  M156.callbackIntBoolVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerIntBool
+  (listenerIntBool_newWithParent' arg'1' arg'2')
+
+class ListenerIntBoolSuper a where
+  downToListenerIntBool :: a -> ListenerIntBool
+
+instance ListenerIntBoolSuper M30.QObject where
+  downToListenerIntBool = castListenerIntBoolToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerIntBoolConst $ castQObjectToListenerIntBool ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerIntBoolConstGc fptr' $ castQObjectToListenerIntBool ptr'
+
+class ListenerIntBoolSuperConst a where
+  downToListenerIntBoolConst :: a -> ListenerIntBoolConst
+
+instance ListenerIntBoolSuperConst M30.QObjectConst where
+  downToListenerIntBoolConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerIntBoolConst $ castQObjectToListenerIntBool ptr'
+      cast' (M30.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 ListenerIntIntValue a where
+  withListenerIntIntPtr :: a -> (ListenerIntIntConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerIntIntConstPtr a => ListenerIntIntValue a where
+#else
+instance ListenerIntIntConstPtr a => ListenerIntIntValue a where
+#endif
+  withListenerIntIntPtr = HoppyP.flip ($) . toListenerIntIntConst
+
+class (M30.QObjectConstPtr this) => ListenerIntIntConstPtr this where
+  toListenerIntIntConst :: this -> ListenerIntIntConst
+
+class (ListenerIntIntConstPtr this, M30.QObjectPtr this) => ListenerIntIntPtr this where
+  toListenerIntInt :: this -> ListenerIntInt
+
+listenerIntInt_connectListener :: (ListenerIntIntPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerIntInt_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerIntInt arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerIntInt_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerIntIntConst where
+  toQObjectConst (ListenerIntIntConst ptr') = M30.QObjectConst $ castListenerIntIntToQObject ptr'
+  toQObjectConst (ListenerIntIntConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerIntInt where
+  toQObjectConst (ListenerIntInt ptr') = M30.QObjectConst $ castListenerIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntInt -> HoppyF.Ptr ListenerIntIntConst) ptr'
+  toQObjectConst (ListenerIntIntGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntInt -> HoppyF.Ptr ListenerIntIntConst) ptr'
+
+instance M30.QObjectPtr ListenerIntInt where
+  toQObject (ListenerIntInt ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntInt -> HoppyF.Ptr ListenerIntIntConst) ptr'
+  toQObject (ListenerIntIntGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntInt -> HoppyF.Ptr ListenerIntIntConst) ptr'
+
+listenerIntInt_new ::  (HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO ListenerIntInt
+listenerIntInt_new arg'1 =
+  M156.callbackIntIntVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerIntInt
+  (listenerIntInt_new' arg'1')
+
+listenerIntInt_newWithParent :: (M30.QObjectPtr arg'2) => (HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerIntInt
+listenerIntInt_newWithParent arg'1 arg'2 =
+  M156.callbackIntIntVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerIntInt
+  (listenerIntInt_newWithParent' arg'1' arg'2')
+
+class ListenerIntIntSuper a where
+  downToListenerIntInt :: a -> ListenerIntInt
+
+instance ListenerIntIntSuper M30.QObject where
+  downToListenerIntInt = castListenerIntIntToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerIntIntConst $ castQObjectToListenerIntInt ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerIntIntConstGc fptr' $ castQObjectToListenerIntInt ptr'
+
+class ListenerIntIntSuperConst a where
+  downToListenerIntIntConst :: a -> ListenerIntIntConst
+
+instance ListenerIntIntSuperConst M30.QObjectConst where
+  downToListenerIntIntConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerIntIntConst $ castQObjectToListenerIntInt ptr'
+      cast' (M30.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 ListenerPtrQAbstractButtonValue a where
+  withListenerPtrQAbstractButtonPtr :: a -> (ListenerPtrQAbstractButtonConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerPtrQAbstractButtonConstPtr a => ListenerPtrQAbstractButtonValue a where
+#else
+instance ListenerPtrQAbstractButtonConstPtr a => ListenerPtrQAbstractButtonValue a where
+#endif
+  withListenerPtrQAbstractButtonPtr = HoppyP.flip ($) . toListenerPtrQAbstractButtonConst
+
+class (M30.QObjectConstPtr this) => ListenerPtrQAbstractButtonConstPtr this where
+  toListenerPtrQAbstractButtonConst :: this -> ListenerPtrQAbstractButtonConst
+
+class (ListenerPtrQAbstractButtonConstPtr this, M30.QObjectPtr this) => ListenerPtrQAbstractButtonPtr this where
+  toListenerPtrQAbstractButton :: this -> ListenerPtrQAbstractButton
+
+listenerPtrQAbstractButton_connectListener :: (ListenerPtrQAbstractButtonPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerPtrQAbstractButton_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerPtrQAbstractButton arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerPtrQAbstractButton_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerPtrQAbstractButtonConst where
+  toQObjectConst (ListenerPtrQAbstractButtonConst ptr') = M30.QObjectConst $ castListenerPtrQAbstractButtonToQObject ptr'
+  toQObjectConst (ListenerPtrQAbstractButtonConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerPtrQAbstractButton where
+  toQObjectConst (ListenerPtrQAbstractButton ptr') = M30.QObjectConst $ castListenerPtrQAbstractButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButton -> HoppyF.Ptr ListenerPtrQAbstractButtonConst) ptr'
+  toQObjectConst (ListenerPtrQAbstractButtonGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerPtrQAbstractButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButton -> HoppyF.Ptr ListenerPtrQAbstractButtonConst) ptr'
+
+instance M30.QObjectPtr ListenerPtrQAbstractButton where
+  toQObject (ListenerPtrQAbstractButton ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerPtrQAbstractButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButton -> HoppyF.Ptr ListenerPtrQAbstractButtonConst) ptr'
+  toQObject (ListenerPtrQAbstractButtonGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerPtrQAbstractButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButton -> HoppyF.Ptr ListenerPtrQAbstractButtonConst) ptr'
+
+listenerPtrQAbstractButton_new ::  (M162.QAbstractButton -> HoppyP.IO ()) -> HoppyP.IO ListenerPtrQAbstractButton
+listenerPtrQAbstractButton_new arg'1 =
+  M156.callbackPtrQAbstractButtonVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerPtrQAbstractButton
+  (listenerPtrQAbstractButton_new' arg'1')
+
+listenerPtrQAbstractButton_newWithParent :: (M30.QObjectPtr arg'2) => (M162.QAbstractButton -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerPtrQAbstractButton
+listenerPtrQAbstractButton_newWithParent arg'1 arg'2 =
+  M156.callbackPtrQAbstractButtonVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerPtrQAbstractButton
+  (listenerPtrQAbstractButton_newWithParent' arg'1' arg'2')
+
+class ListenerPtrQAbstractButtonSuper a where
+  downToListenerPtrQAbstractButton :: a -> ListenerPtrQAbstractButton
+
+instance ListenerPtrQAbstractButtonSuper M30.QObject where
+  downToListenerPtrQAbstractButton = castListenerPtrQAbstractButtonToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerPtrQAbstractButtonConst $ castQObjectToListenerPtrQAbstractButton ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerPtrQAbstractButtonConstGc fptr' $ castQObjectToListenerPtrQAbstractButton ptr'
+
+class ListenerPtrQAbstractButtonSuperConst a where
+  downToListenerPtrQAbstractButtonConst :: a -> ListenerPtrQAbstractButtonConst
+
+instance ListenerPtrQAbstractButtonSuperConst M30.QObjectConst where
+  downToListenerPtrQAbstractButtonConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerPtrQAbstractButtonConst $ castQObjectToListenerPtrQAbstractButton ptr'
+      cast' (M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerPtrQAbstractButtonBoolConstPtr a => ListenerPtrQAbstractButtonBoolValue a where
+#else
+instance ListenerPtrQAbstractButtonBoolConstPtr a => ListenerPtrQAbstractButtonBoolValue a where
+#endif
+  withListenerPtrQAbstractButtonBoolPtr = HoppyP.flip ($) . toListenerPtrQAbstractButtonBoolConst
+
+class (M30.QObjectConstPtr this) => ListenerPtrQAbstractButtonBoolConstPtr this where
+  toListenerPtrQAbstractButtonBoolConst :: this -> ListenerPtrQAbstractButtonBoolConst
+
+class (ListenerPtrQAbstractButtonBoolConstPtr this, M30.QObjectPtr this) => ListenerPtrQAbstractButtonBoolPtr this where
+  toListenerPtrQAbstractButtonBool :: this -> ListenerPtrQAbstractButtonBool
+
+listenerPtrQAbstractButtonBool_connectListener :: (ListenerPtrQAbstractButtonBoolPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerPtrQAbstractButtonBool_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerPtrQAbstractButtonBool arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerPtrQAbstractButtonBool_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerPtrQAbstractButtonBoolConst where
+  toQObjectConst (ListenerPtrQAbstractButtonBoolConst ptr') = M30.QObjectConst $ castListenerPtrQAbstractButtonBoolToQObject ptr'
+  toQObjectConst (ListenerPtrQAbstractButtonBoolConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerPtrQAbstractButtonBool where
+  toQObjectConst (ListenerPtrQAbstractButtonBool ptr') = M30.QObjectConst $ castListenerPtrQAbstractButtonBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButtonBool -> HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst) ptr'
+  toQObjectConst (ListenerPtrQAbstractButtonBoolGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerPtrQAbstractButtonBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButtonBool -> HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst) ptr'
+
+instance M30.QObjectPtr ListenerPtrQAbstractButtonBool where
+  toQObject (ListenerPtrQAbstractButtonBool ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerPtrQAbstractButtonBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButtonBool -> HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst) ptr'
+  toQObject (ListenerPtrQAbstractButtonBoolGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerPtrQAbstractButtonBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButtonBool -> HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst) ptr'
+
+listenerPtrQAbstractButtonBool_new ::  (M162.QAbstractButton -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO ListenerPtrQAbstractButtonBool
+listenerPtrQAbstractButtonBool_new arg'1 =
+  M156.callbackPtrQAbstractButtonBoolVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerPtrQAbstractButtonBool
+  (listenerPtrQAbstractButtonBool_new' arg'1')
+
+listenerPtrQAbstractButtonBool_newWithParent :: (M30.QObjectPtr arg'2) => (M162.QAbstractButton -> HoppyP.Bool -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerPtrQAbstractButtonBool
+listenerPtrQAbstractButtonBool_newWithParent arg'1 arg'2 =
+  M156.callbackPtrQAbstractButtonBoolVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerPtrQAbstractButtonBool
+  (listenerPtrQAbstractButtonBool_newWithParent' arg'1' arg'2')
+
+class ListenerPtrQAbstractButtonBoolSuper a where
+  downToListenerPtrQAbstractButtonBool :: a -> ListenerPtrQAbstractButtonBool
+
+instance ListenerPtrQAbstractButtonBoolSuper M30.QObject where
+  downToListenerPtrQAbstractButtonBool = castListenerPtrQAbstractButtonBoolToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerPtrQAbstractButtonBoolConst $ castQObjectToListenerPtrQAbstractButtonBool ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerPtrQAbstractButtonBoolConstGc fptr' $ castQObjectToListenerPtrQAbstractButtonBool ptr'
+
+class ListenerPtrQAbstractButtonBoolSuperConst a where
+  downToListenerPtrQAbstractButtonBoolConst :: a -> ListenerPtrQAbstractButtonBoolConst
+
+instance ListenerPtrQAbstractButtonBoolSuperConst M30.QObjectConst where
+  downToListenerPtrQAbstractButtonBoolConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerPtrQAbstractButtonBoolConst $ castQObjectToListenerPtrQAbstractButtonBool ptr'
+      cast' (M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerPtrQAbstractItemModelConstPtr a => ListenerPtrQAbstractItemModelValue a where
+#else
+instance ListenerPtrQAbstractItemModelConstPtr a => ListenerPtrQAbstractItemModelValue a where
+#endif
+  withListenerPtrQAbstractItemModelPtr = HoppyP.flip ($) . toListenerPtrQAbstractItemModelConst
+
+class (M30.QObjectConstPtr this) => ListenerPtrQAbstractItemModelConstPtr this where
+  toListenerPtrQAbstractItemModelConst :: this -> ListenerPtrQAbstractItemModelConst
+
+class (ListenerPtrQAbstractItemModelConstPtr this, M30.QObjectPtr this) => ListenerPtrQAbstractItemModelPtr this where
+  toListenerPtrQAbstractItemModel :: this -> ListenerPtrQAbstractItemModel
+
+listenerPtrQAbstractItemModel_connectListener :: (ListenerPtrQAbstractItemModelPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerPtrQAbstractItemModel_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerPtrQAbstractItemModel arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerPtrQAbstractItemModel_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerPtrQAbstractItemModelConst where
+  toQObjectConst (ListenerPtrQAbstractItemModelConst ptr') = M30.QObjectConst $ castListenerPtrQAbstractItemModelToQObject ptr'
+  toQObjectConst (ListenerPtrQAbstractItemModelConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerPtrQAbstractItemModel where
+  toQObjectConst (ListenerPtrQAbstractItemModel ptr') = M30.QObjectConst $ castListenerPtrQAbstractItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractItemModel -> HoppyF.Ptr ListenerPtrQAbstractItemModelConst) ptr'
+  toQObjectConst (ListenerPtrQAbstractItemModelGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerPtrQAbstractItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractItemModel -> HoppyF.Ptr ListenerPtrQAbstractItemModelConst) ptr'
+
+instance M30.QObjectPtr ListenerPtrQAbstractItemModel where
+  toQObject (ListenerPtrQAbstractItemModel ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerPtrQAbstractItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractItemModel -> HoppyF.Ptr ListenerPtrQAbstractItemModelConst) ptr'
+  toQObject (ListenerPtrQAbstractItemModelGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerPtrQAbstractItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractItemModel -> HoppyF.Ptr ListenerPtrQAbstractItemModelConst) ptr'
+
+listenerPtrQAbstractItemModel_new ::  (M2.QAbstractItemModel -> HoppyP.IO ()) -> HoppyP.IO ListenerPtrQAbstractItemModel
+listenerPtrQAbstractItemModel_new arg'1 =
+  M156.callbackPtrQAbstractItemModelVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerPtrQAbstractItemModel
+  (listenerPtrQAbstractItemModel_new' arg'1')
+
+listenerPtrQAbstractItemModel_newWithParent :: (M30.QObjectPtr arg'2) => (M2.QAbstractItemModel -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerPtrQAbstractItemModel
+listenerPtrQAbstractItemModel_newWithParent arg'1 arg'2 =
+  M156.callbackPtrQAbstractItemModelVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerPtrQAbstractItemModel
+  (listenerPtrQAbstractItemModel_newWithParent' arg'1' arg'2')
+
+class ListenerPtrQAbstractItemModelSuper a where
+  downToListenerPtrQAbstractItemModel :: a -> ListenerPtrQAbstractItemModel
+
+instance ListenerPtrQAbstractItemModelSuper M30.QObject where
+  downToListenerPtrQAbstractItemModel = castListenerPtrQAbstractItemModelToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerPtrQAbstractItemModelConst $ castQObjectToListenerPtrQAbstractItemModel ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerPtrQAbstractItemModelConstGc fptr' $ castQObjectToListenerPtrQAbstractItemModel ptr'
+
+class ListenerPtrQAbstractItemModelSuperConst a where
+  downToListenerPtrQAbstractItemModelConst :: a -> ListenerPtrQAbstractItemModelConst
+
+instance ListenerPtrQAbstractItemModelSuperConst M30.QObjectConst where
+  downToListenerPtrQAbstractItemModelConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerPtrQAbstractItemModelConst $ castQObjectToListenerPtrQAbstractItemModel ptr'
+      cast' (M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerPtrQActionConstPtr a => ListenerPtrQActionValue a where
+#else
+instance ListenerPtrQActionConstPtr a => ListenerPtrQActionValue a where
+#endif
+  withListenerPtrQActionPtr = HoppyP.flip ($) . toListenerPtrQActionConst
+
+class (M30.QObjectConstPtr this) => ListenerPtrQActionConstPtr this where
+  toListenerPtrQActionConst :: this -> ListenerPtrQActionConst
+
+class (ListenerPtrQActionConstPtr this, M30.QObjectPtr this) => ListenerPtrQActionPtr this where
+  toListenerPtrQAction :: this -> ListenerPtrQAction
+
+listenerPtrQAction_connectListener :: (ListenerPtrQActionPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerPtrQAction_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerPtrQAction arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerPtrQAction_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerPtrQActionConst where
+  toQObjectConst (ListenerPtrQActionConst ptr') = M30.QObjectConst $ castListenerPtrQActionToQObject ptr'
+  toQObjectConst (ListenerPtrQActionConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerPtrQAction where
+  toQObjectConst (ListenerPtrQAction ptr') = M30.QObjectConst $ castListenerPtrQActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAction -> HoppyF.Ptr ListenerPtrQActionConst) ptr'
+  toQObjectConst (ListenerPtrQActionGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerPtrQActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAction -> HoppyF.Ptr ListenerPtrQActionConst) ptr'
+
+instance M30.QObjectPtr ListenerPtrQAction where
+  toQObject (ListenerPtrQAction ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerPtrQActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAction -> HoppyF.Ptr ListenerPtrQActionConst) ptr'
+  toQObject (ListenerPtrQActionGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerPtrQActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAction -> HoppyF.Ptr ListenerPtrQActionConst) ptr'
+
+listenerPtrQAction_new ::  (M174.QAction -> HoppyP.IO ()) -> HoppyP.IO ListenerPtrQAction
+listenerPtrQAction_new arg'1 =
+  M156.callbackPtrQActionVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerPtrQAction
+  (listenerPtrQAction_new' arg'1')
+
+listenerPtrQAction_newWithParent :: (M30.QObjectPtr arg'2) => (M174.QAction -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerPtrQAction
+listenerPtrQAction_newWithParent arg'1 arg'2 =
+  M156.callbackPtrQActionVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerPtrQAction
+  (listenerPtrQAction_newWithParent' arg'1' arg'2')
+
+class ListenerPtrQActionSuper a where
+  downToListenerPtrQAction :: a -> ListenerPtrQAction
+
+instance ListenerPtrQActionSuper M30.QObject where
+  downToListenerPtrQAction = castListenerPtrQActionToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerPtrQActionConst $ castQObjectToListenerPtrQAction ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerPtrQActionConstGc fptr' $ castQObjectToListenerPtrQAction ptr'
+
+class ListenerPtrQActionSuperConst a where
+  downToListenerPtrQActionConst :: a -> ListenerPtrQActionConst
+
+instance ListenerPtrQActionSuperConst M30.QObjectConst where
+  downToListenerPtrQActionConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerPtrQActionConst $ castQObjectToListenerPtrQAction ptr'
+      cast' (M30.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 ListenerPtrQObjectValue a where
+  withListenerPtrQObjectPtr :: a -> (ListenerPtrQObjectConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerPtrQObjectConstPtr a => ListenerPtrQObjectValue a where
+#else
+instance ListenerPtrQObjectConstPtr a => ListenerPtrQObjectValue a where
+#endif
+  withListenerPtrQObjectPtr = HoppyP.flip ($) . toListenerPtrQObjectConst
+
+class (M30.QObjectConstPtr this) => ListenerPtrQObjectConstPtr this where
+  toListenerPtrQObjectConst :: this -> ListenerPtrQObjectConst
+
+class (ListenerPtrQObjectConstPtr this, M30.QObjectPtr this) => ListenerPtrQObjectPtr this where
+  toListenerPtrQObject :: this -> ListenerPtrQObject
+
+listenerPtrQObject_connectListener :: (ListenerPtrQObjectPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerPtrQObject_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerPtrQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerPtrQObject_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerPtrQObjectConst where
+  toQObjectConst (ListenerPtrQObjectConst ptr') = M30.QObjectConst $ castListenerPtrQObjectToQObject ptr'
+  toQObjectConst (ListenerPtrQObjectConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerPtrQObject where
+  toQObjectConst (ListenerPtrQObject ptr') = M30.QObjectConst $ castListenerPtrQObjectToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQObject -> HoppyF.Ptr ListenerPtrQObjectConst) ptr'
+  toQObjectConst (ListenerPtrQObjectGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerPtrQObjectToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQObject -> HoppyF.Ptr ListenerPtrQObjectConst) ptr'
+
+instance M30.QObjectPtr ListenerPtrQObject where
+  toQObject (ListenerPtrQObject ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerPtrQObjectToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQObject -> HoppyF.Ptr ListenerPtrQObjectConst) ptr'
+  toQObject (ListenerPtrQObjectGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerPtrQObjectToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQObject -> HoppyF.Ptr ListenerPtrQObjectConst) ptr'
+
+listenerPtrQObject_new ::  (M30.QObject -> HoppyP.IO ()) -> HoppyP.IO ListenerPtrQObject
+listenerPtrQObject_new arg'1 =
+  M156.callbackPtrQObjectVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerPtrQObject
+  (listenerPtrQObject_new' arg'1')
+
+listenerPtrQObject_newWithParent :: (M30.QObjectPtr arg'2) => (M30.QObject -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerPtrQObject
+listenerPtrQObject_newWithParent arg'1 arg'2 =
+  M156.callbackPtrQObjectVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerPtrQObject
+  (listenerPtrQObject_newWithParent' arg'1' arg'2')
+
+class ListenerPtrQObjectSuper a where
+  downToListenerPtrQObject :: a -> ListenerPtrQObject
+
+instance ListenerPtrQObjectSuper M30.QObject where
+  downToListenerPtrQObject = castListenerPtrQObjectToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerPtrQObjectConst $ castQObjectToListenerPtrQObject ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerPtrQObjectConstGc fptr' $ castQObjectToListenerPtrQObject ptr'
+
+class ListenerPtrQObjectSuperConst a where
+  downToListenerPtrQObjectConst :: a -> ListenerPtrQObjectConst
+
+instance ListenerPtrQObjectSuperConst M30.QObjectConst where
+  downToListenerPtrQObjectConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerPtrQObjectConst $ castQObjectToListenerPtrQObject ptr'
+      cast' (M30.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 ListenerPtrQWidgetPtrQWidgetValue a where
+  withListenerPtrQWidgetPtrQWidgetPtr :: a -> (ListenerPtrQWidgetPtrQWidgetConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerPtrQWidgetPtrQWidgetConstPtr a => ListenerPtrQWidgetPtrQWidgetValue a where
+#else
+instance ListenerPtrQWidgetPtrQWidgetConstPtr a => ListenerPtrQWidgetPtrQWidgetValue a where
+#endif
+  withListenerPtrQWidgetPtrQWidgetPtr = HoppyP.flip ($) . toListenerPtrQWidgetPtrQWidgetConst
+
+class (M30.QObjectConstPtr this) => ListenerPtrQWidgetPtrQWidgetConstPtr this where
+  toListenerPtrQWidgetPtrQWidgetConst :: this -> ListenerPtrQWidgetPtrQWidgetConst
+
+class (ListenerPtrQWidgetPtrQWidgetConstPtr this, M30.QObjectPtr this) => ListenerPtrQWidgetPtrQWidgetPtr this where
+  toListenerPtrQWidgetPtrQWidget :: this -> ListenerPtrQWidgetPtrQWidget
+
+listenerPtrQWidgetPtrQWidget_connectListener :: (ListenerPtrQWidgetPtrQWidgetPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerPtrQWidgetPtrQWidget_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerPtrQWidgetPtrQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerPtrQWidgetPtrQWidget_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerPtrQWidgetPtrQWidgetConst where
+  toQObjectConst (ListenerPtrQWidgetPtrQWidgetConst ptr') = M30.QObjectConst $ castListenerPtrQWidgetPtrQWidgetToQObject ptr'
+  toQObjectConst (ListenerPtrQWidgetPtrQWidgetConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerPtrQWidgetPtrQWidget where
+  toQObjectConst (ListenerPtrQWidgetPtrQWidget ptr') = M30.QObjectConst $ castListenerPtrQWidgetPtrQWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQWidgetPtrQWidget -> HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst) ptr'
+  toQObjectConst (ListenerPtrQWidgetPtrQWidgetGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerPtrQWidgetPtrQWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQWidgetPtrQWidget -> HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst) ptr'
+
+instance M30.QObjectPtr ListenerPtrQWidgetPtrQWidget where
+  toQObject (ListenerPtrQWidgetPtrQWidget ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerPtrQWidgetPtrQWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQWidgetPtrQWidget -> HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst) ptr'
+  toQObject (ListenerPtrQWidgetPtrQWidgetGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerPtrQWidgetPtrQWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQWidgetPtrQWidget -> HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst) ptr'
+
+listenerPtrQWidgetPtrQWidget_new ::  (M280.QWidget -> M280.QWidget -> HoppyP.IO ()) -> HoppyP.IO ListenerPtrQWidgetPtrQWidget
+listenerPtrQWidgetPtrQWidget_new arg'1 =
+  M156.callbackPtrQWidgetPtrQWidgetVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerPtrQWidgetPtrQWidget
+  (listenerPtrQWidgetPtrQWidget_new' arg'1')
+
+listenerPtrQWidgetPtrQWidget_newWithParent :: (M30.QObjectPtr arg'2) => (M280.QWidget -> M280.QWidget -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerPtrQWidgetPtrQWidget
+listenerPtrQWidgetPtrQWidget_newWithParent arg'1 arg'2 =
+  M156.callbackPtrQWidgetPtrQWidgetVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerPtrQWidgetPtrQWidget
+  (listenerPtrQWidgetPtrQWidget_newWithParent' arg'1' arg'2')
+
+class ListenerPtrQWidgetPtrQWidgetSuper a where
+  downToListenerPtrQWidgetPtrQWidget :: a -> ListenerPtrQWidgetPtrQWidget
+
+instance ListenerPtrQWidgetPtrQWidgetSuper M30.QObject where
+  downToListenerPtrQWidgetPtrQWidget = castListenerPtrQWidgetPtrQWidgetToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerPtrQWidgetPtrQWidgetConst $ castQObjectToListenerPtrQWidgetPtrQWidget ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerPtrQWidgetPtrQWidgetConstGc fptr' $ castQObjectToListenerPtrQWidgetPtrQWidget ptr'
+
+class ListenerPtrQWidgetPtrQWidgetSuperConst a where
+  downToListenerPtrQWidgetPtrQWidgetConst :: a -> ListenerPtrQWidgetPtrQWidgetConst
+
+instance ListenerPtrQWidgetPtrQWidgetSuperConst M30.QObjectConst where
+  downToListenerPtrQWidgetPtrQWidgetConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerPtrQWidgetPtrQWidgetConst $ castQObjectToListenerPtrQWidgetPtrQWidget ptr'
+      cast' (M30.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 ListenerQAbstractSliderActionValue a where
+  withListenerQAbstractSliderActionPtr :: a -> (ListenerQAbstractSliderActionConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerQAbstractSliderActionConstPtr a => ListenerQAbstractSliderActionValue a where
+#else
+instance ListenerQAbstractSliderActionConstPtr a => ListenerQAbstractSliderActionValue a where
+#endif
+  withListenerQAbstractSliderActionPtr = HoppyP.flip ($) . toListenerQAbstractSliderActionConst
+
+class (M30.QObjectConstPtr this) => ListenerQAbstractSliderActionConstPtr this where
+  toListenerQAbstractSliderActionConst :: this -> ListenerQAbstractSliderActionConst
+
+class (ListenerQAbstractSliderActionConstPtr this, M30.QObjectPtr this) => ListenerQAbstractSliderActionPtr this where
+  toListenerQAbstractSliderAction :: this -> ListenerQAbstractSliderAction
+
+listenerQAbstractSliderAction_connectListener :: (ListenerQAbstractSliderActionPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerQAbstractSliderAction_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerQAbstractSliderAction arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerQAbstractSliderAction_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerQAbstractSliderActionConst where
+  toQObjectConst (ListenerQAbstractSliderActionConst ptr') = M30.QObjectConst $ castListenerQAbstractSliderActionToQObject ptr'
+  toQObjectConst (ListenerQAbstractSliderActionConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerQAbstractSliderAction where
+  toQObjectConst (ListenerQAbstractSliderAction ptr') = M30.QObjectConst $ castListenerQAbstractSliderActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQAbstractSliderAction -> HoppyF.Ptr ListenerQAbstractSliderActionConst) ptr'
+  toQObjectConst (ListenerQAbstractSliderActionGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerQAbstractSliderActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQAbstractSliderAction -> HoppyF.Ptr ListenerQAbstractSliderActionConst) ptr'
+
+instance M30.QObjectPtr ListenerQAbstractSliderAction where
+  toQObject (ListenerQAbstractSliderAction ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQAbstractSliderActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQAbstractSliderAction -> HoppyF.Ptr ListenerQAbstractSliderActionConst) ptr'
+  toQObject (ListenerQAbstractSliderActionGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQAbstractSliderActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQAbstractSliderAction -> HoppyF.Ptr ListenerQAbstractSliderActionConst) ptr'
+
+listenerQAbstractSliderAction_new ::  (M170.QAbstractSliderAction -> HoppyP.IO ()) -> HoppyP.IO ListenerQAbstractSliderAction
+listenerQAbstractSliderAction_new arg'1 =
+  M156.callbackQAbstractSliderActionVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerQAbstractSliderAction
+  (listenerQAbstractSliderAction_new' arg'1')
+
+listenerQAbstractSliderAction_newWithParent :: (M30.QObjectPtr arg'2) => (M170.QAbstractSliderAction -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerQAbstractSliderAction
+listenerQAbstractSliderAction_newWithParent arg'1 arg'2 =
+  M156.callbackQAbstractSliderActionVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerQAbstractSliderAction
+  (listenerQAbstractSliderAction_newWithParent' arg'1' arg'2')
+
+class ListenerQAbstractSliderActionSuper a where
+  downToListenerQAbstractSliderAction :: a -> ListenerQAbstractSliderAction
+
+instance ListenerQAbstractSliderActionSuper M30.QObject where
+  downToListenerQAbstractSliderAction = castListenerQAbstractSliderActionToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQAbstractSliderActionConst $ castQObjectToListenerQAbstractSliderAction ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerQAbstractSliderActionConstGc fptr' $ castQObjectToListenerQAbstractSliderAction ptr'
+
+class ListenerQAbstractSliderActionSuperConst a where
+  downToListenerQAbstractSliderActionConst :: a -> ListenerQAbstractSliderActionConst
+
+instance ListenerQAbstractSliderActionSuperConst M30.QObjectConst where
+  downToListenerQAbstractSliderActionConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQAbstractSliderActionConst $ castQObjectToListenerQAbstractSliderAction ptr'
+      cast' (M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerQClipboardModeConstPtr a => ListenerQClipboardModeValue a where
+#else
+instance ListenerQClipboardModeConstPtr a => ListenerQClipboardModeValue a where
+#endif
+  withListenerQClipboardModePtr = HoppyP.flip ($) . toListenerQClipboardModeConst
+
+class (M30.QObjectConstPtr this) => ListenerQClipboardModeConstPtr this where
+  toListenerQClipboardModeConst :: this -> ListenerQClipboardModeConst
+
+class (ListenerQClipboardModeConstPtr this, M30.QObjectPtr this) => ListenerQClipboardModePtr this where
+  toListenerQClipboardMode :: this -> ListenerQClipboardMode
+
+listenerQClipboardMode_connectListener :: (ListenerQClipboardModePtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerQClipboardMode_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerQClipboardMode arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerQClipboardMode_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerQClipboardModeConst where
+  toQObjectConst (ListenerQClipboardModeConst ptr') = M30.QObjectConst $ castListenerQClipboardModeToQObject ptr'
+  toQObjectConst (ListenerQClipboardModeConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerQClipboardMode where
+  toQObjectConst (ListenerQClipboardMode ptr') = M30.QObjectConst $ castListenerQClipboardModeToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQClipboardMode -> HoppyF.Ptr ListenerQClipboardModeConst) ptr'
+  toQObjectConst (ListenerQClipboardModeGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerQClipboardModeToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQClipboardMode -> HoppyF.Ptr ListenerQClipboardModeConst) ptr'
+
+instance M30.QObjectPtr ListenerQClipboardMode where
+  toQObject (ListenerQClipboardMode ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQClipboardModeToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQClipboardMode -> HoppyF.Ptr ListenerQClipboardModeConst) ptr'
+  toQObject (ListenerQClipboardModeGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQClipboardModeToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQClipboardMode -> HoppyF.Ptr ListenerQClipboardModeConst) ptr'
+
+listenerQClipboardMode_new ::  (M88.QClipboardMode -> HoppyP.IO ()) -> HoppyP.IO ListenerQClipboardMode
+listenerQClipboardMode_new arg'1 =
+  M156.callbackQClipboardModeVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerQClipboardMode
+  (listenerQClipboardMode_new' arg'1')
+
+listenerQClipboardMode_newWithParent :: (M30.QObjectPtr arg'2) => (M88.QClipboardMode -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerQClipboardMode
+listenerQClipboardMode_newWithParent arg'1 arg'2 =
+  M156.callbackQClipboardModeVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerQClipboardMode
+  (listenerQClipboardMode_newWithParent' arg'1' arg'2')
+
+class ListenerQClipboardModeSuper a where
+  downToListenerQClipboardMode :: a -> ListenerQClipboardMode
+
+instance ListenerQClipboardModeSuper M30.QObject where
+  downToListenerQClipboardMode = castListenerQClipboardModeToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQClipboardModeConst $ castQObjectToListenerQClipboardMode ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerQClipboardModeConstGc fptr' $ castQObjectToListenerQClipboardMode ptr'
+
+class ListenerQClipboardModeSuperConst a where
+  downToListenerQClipboardModeConst :: a -> ListenerQClipboardModeConst
+
+instance ListenerQClipboardModeSuperConst M30.QObjectConst where
+  downToListenerQClipboardModeConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQClipboardModeConst $ castQObjectToListenerQClipboardMode ptr'
+      cast' (M30.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 ListenerQModelIndexValue a where
+  withListenerQModelIndexPtr :: a -> (ListenerQModelIndexConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerQModelIndexConstPtr a => ListenerQModelIndexValue a where
+#else
+instance ListenerQModelIndexConstPtr a => ListenerQModelIndexValue a where
+#endif
+  withListenerQModelIndexPtr = HoppyP.flip ($) . toListenerQModelIndexConst
+
+class (M30.QObjectConstPtr this) => ListenerQModelIndexConstPtr this where
+  toListenerQModelIndexConst :: this -> ListenerQModelIndexConst
+
+class (ListenerQModelIndexConstPtr this, M30.QObjectPtr this) => ListenerQModelIndexPtr this where
+  toListenerQModelIndex :: this -> ListenerQModelIndex
+
+listenerQModelIndex_connectListener :: (ListenerQModelIndexPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerQModelIndex_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerQModelIndex arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerQModelIndex_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerQModelIndexConst where
+  toQObjectConst (ListenerQModelIndexConst ptr') = M30.QObjectConst $ castListenerQModelIndexToQObject ptr'
+  toQObjectConst (ListenerQModelIndexConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerQModelIndex where
+  toQObjectConst (ListenerQModelIndex ptr') = M30.QObjectConst $ castListenerQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndex -> HoppyF.Ptr ListenerQModelIndexConst) ptr'
+  toQObjectConst (ListenerQModelIndexGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndex -> HoppyF.Ptr ListenerQModelIndexConst) ptr'
+
+instance M30.QObjectPtr ListenerQModelIndex where
+  toQObject (ListenerQModelIndex ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndex -> HoppyF.Ptr ListenerQModelIndexConst) ptr'
+  toQObject (ListenerQModelIndexGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndex -> HoppyF.Ptr ListenerQModelIndexConst) ptr'
+
+listenerQModelIndex_new ::  (M28.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO ListenerQModelIndex
+listenerQModelIndex_new arg'1 =
+  M156.callbackQModelIndexVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerQModelIndex
+  (listenerQModelIndex_new' arg'1')
+
+listenerQModelIndex_newWithParent :: (M30.QObjectPtr arg'2) => (M28.QModelIndex -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerQModelIndex
+listenerQModelIndex_newWithParent arg'1 arg'2 =
+  M156.callbackQModelIndexVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerQModelIndex
+  (listenerQModelIndex_newWithParent' arg'1' arg'2')
+
+class ListenerQModelIndexSuper a where
+  downToListenerQModelIndex :: a -> ListenerQModelIndex
+
+instance ListenerQModelIndexSuper M30.QObject where
+  downToListenerQModelIndex = castListenerQModelIndexToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQModelIndexConst $ castQObjectToListenerQModelIndex ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerQModelIndexConstGc fptr' $ castQObjectToListenerQModelIndex ptr'
+
+class ListenerQModelIndexSuperConst a where
+  downToListenerQModelIndexConst :: a -> ListenerQModelIndexConst
+
+instance ListenerQModelIndexSuperConst M30.QObjectConst where
+  downToListenerQModelIndexConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQModelIndexConst $ castQObjectToListenerQModelIndex ptr'
+      cast' (M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerQModelIndexIntIntConstPtr a => ListenerQModelIndexIntIntValue a where
+#else
+instance ListenerQModelIndexIntIntConstPtr a => ListenerQModelIndexIntIntValue a where
+#endif
+  withListenerQModelIndexIntIntPtr = HoppyP.flip ($) . toListenerQModelIndexIntIntConst
+
+class (M30.QObjectConstPtr this) => ListenerQModelIndexIntIntConstPtr this where
+  toListenerQModelIndexIntIntConst :: this -> ListenerQModelIndexIntIntConst
+
+class (ListenerQModelIndexIntIntConstPtr this, M30.QObjectPtr this) => ListenerQModelIndexIntIntPtr this where
+  toListenerQModelIndexIntInt :: this -> ListenerQModelIndexIntInt
+
+listenerQModelIndexIntInt_connectListener :: (ListenerQModelIndexIntIntPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerQModelIndexIntInt_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerQModelIndexIntInt arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerQModelIndexIntInt_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerQModelIndexIntIntConst where
+  toQObjectConst (ListenerQModelIndexIntIntConst ptr') = M30.QObjectConst $ castListenerQModelIndexIntIntToQObject ptr'
+  toQObjectConst (ListenerQModelIndexIntIntConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerQModelIndexIntInt where
+  toQObjectConst (ListenerQModelIndexIntInt ptr') = M30.QObjectConst $ castListenerQModelIndexIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntInt -> HoppyF.Ptr ListenerQModelIndexIntIntConst) ptr'
+  toQObjectConst (ListenerQModelIndexIntIntGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerQModelIndexIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntInt -> HoppyF.Ptr ListenerQModelIndexIntIntConst) ptr'
+
+instance M30.QObjectPtr ListenerQModelIndexIntInt where
+  toQObject (ListenerQModelIndexIntInt ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQModelIndexIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntInt -> HoppyF.Ptr ListenerQModelIndexIntIntConst) ptr'
+  toQObject (ListenerQModelIndexIntIntGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQModelIndexIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntInt -> HoppyF.Ptr ListenerQModelIndexIntIntConst) ptr'
+
+listenerQModelIndexIntInt_new ::  (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO ListenerQModelIndexIntInt
+listenerQModelIndexIntInt_new arg'1 =
+  M156.callbackQModelIndexIntIntVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerQModelIndexIntInt
+  (listenerQModelIndexIntInt_new' arg'1')
+
+listenerQModelIndexIntInt_newWithParent :: (M30.QObjectPtr arg'2) => (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerQModelIndexIntInt
+listenerQModelIndexIntInt_newWithParent arg'1 arg'2 =
+  M156.callbackQModelIndexIntIntVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerQModelIndexIntInt
+  (listenerQModelIndexIntInt_newWithParent' arg'1' arg'2')
+
+class ListenerQModelIndexIntIntSuper a where
+  downToListenerQModelIndexIntInt :: a -> ListenerQModelIndexIntInt
+
+instance ListenerQModelIndexIntIntSuper M30.QObject where
+  downToListenerQModelIndexIntInt = castListenerQModelIndexIntIntToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQModelIndexIntIntConst $ castQObjectToListenerQModelIndexIntInt ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerQModelIndexIntIntConstGc fptr' $ castQObjectToListenerQModelIndexIntInt ptr'
+
+class ListenerQModelIndexIntIntSuperConst a where
+  downToListenerQModelIndexIntIntConst :: a -> ListenerQModelIndexIntIntConst
+
+instance ListenerQModelIndexIntIntSuperConst M30.QObjectConst where
+  downToListenerQModelIndexIntIntConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQModelIndexIntIntConst $ castQObjectToListenerQModelIndexIntInt ptr'
+      cast' (M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerQModelIndexIntIntQModelIndexIntConstPtr a => ListenerQModelIndexIntIntQModelIndexIntValue a where
+#else
+instance ListenerQModelIndexIntIntQModelIndexIntConstPtr a => ListenerQModelIndexIntIntQModelIndexIntValue a where
+#endif
+  withListenerQModelIndexIntIntQModelIndexIntPtr = HoppyP.flip ($) . toListenerQModelIndexIntIntQModelIndexIntConst
+
+class (M30.QObjectConstPtr this) => ListenerQModelIndexIntIntQModelIndexIntConstPtr this where
+  toListenerQModelIndexIntIntQModelIndexIntConst :: this -> ListenerQModelIndexIntIntQModelIndexIntConst
+
+class (ListenerQModelIndexIntIntQModelIndexIntConstPtr this, M30.QObjectPtr this) => ListenerQModelIndexIntIntQModelIndexIntPtr this where
+  toListenerQModelIndexIntIntQModelIndexInt :: this -> ListenerQModelIndexIntIntQModelIndexInt
+
+listenerQModelIndexIntIntQModelIndexInt_connectListener :: (ListenerQModelIndexIntIntQModelIndexIntPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerQModelIndexIntIntQModelIndexInt_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerQModelIndexIntIntQModelIndexInt arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerQModelIndexIntIntQModelIndexInt_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerQModelIndexIntIntQModelIndexIntConst where
+  toQObjectConst (ListenerQModelIndexIntIntQModelIndexIntConst ptr') = M30.QObjectConst $ castListenerQModelIndexIntIntQModelIndexIntToQObject ptr'
+  toQObjectConst (ListenerQModelIndexIntIntQModelIndexIntConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerQModelIndexIntIntQModelIndexInt where
+  toQObjectConst (ListenerQModelIndexIntIntQModelIndexInt ptr') = M30.QObjectConst $ castListenerQModelIndexIntIntQModelIndexIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt -> HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst) ptr'
+  toQObjectConst (ListenerQModelIndexIntIntQModelIndexIntGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerQModelIndexIntIntQModelIndexIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt -> HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst) ptr'
+
+instance M30.QObjectPtr ListenerQModelIndexIntIntQModelIndexInt where
+  toQObject (ListenerQModelIndexIntIntQModelIndexInt ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQModelIndexIntIntQModelIndexIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt -> HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst) ptr'
+  toQObject (ListenerQModelIndexIntIntQModelIndexIntGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQModelIndexIntIntQModelIndexIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt -> HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst) ptr'
+
+listenerQModelIndexIntIntQModelIndexInt_new ::  (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M28.QModelIndex -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO ListenerQModelIndexIntIntQModelIndexInt
+listenerQModelIndexIntIntQModelIndexInt_new arg'1 =
+  M156.callbackQModelIndexIntIntQModelIndexIntVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerQModelIndexIntIntQModelIndexInt
+  (listenerQModelIndexIntIntQModelIndexInt_new' arg'1')
+
+listenerQModelIndexIntIntQModelIndexInt_newWithParent :: (M30.QObjectPtr arg'2) => (M28.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M28.QModelIndex -> HoppyP.Int -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerQModelIndexIntIntQModelIndexInt
+listenerQModelIndexIntIntQModelIndexInt_newWithParent arg'1 arg'2 =
+  M156.callbackQModelIndexIntIntQModelIndexIntVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerQModelIndexIntIntQModelIndexInt
+  (listenerQModelIndexIntIntQModelIndexInt_newWithParent' arg'1' arg'2')
+
+class ListenerQModelIndexIntIntQModelIndexIntSuper a where
+  downToListenerQModelIndexIntIntQModelIndexInt :: a -> ListenerQModelIndexIntIntQModelIndexInt
+
+instance ListenerQModelIndexIntIntQModelIndexIntSuper M30.QObject where
+  downToListenerQModelIndexIntIntQModelIndexInt = castListenerQModelIndexIntIntQModelIndexIntToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQModelIndexIntIntQModelIndexIntConst $ castQObjectToListenerQModelIndexIntIntQModelIndexInt ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerQModelIndexIntIntQModelIndexIntConstGc fptr' $ castQObjectToListenerQModelIndexIntIntQModelIndexInt ptr'
+
+class ListenerQModelIndexIntIntQModelIndexIntSuperConst a where
+  downToListenerQModelIndexIntIntQModelIndexIntConst :: a -> ListenerQModelIndexIntIntQModelIndexIntConst
+
+instance ListenerQModelIndexIntIntQModelIndexIntSuperConst M30.QObjectConst where
+  downToListenerQModelIndexIntIntQModelIndexIntConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQModelIndexIntIntQModelIndexIntConst $ castQObjectToListenerQModelIndexIntIntQModelIndexInt ptr'
+      cast' (M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerQModelIndexQModelIndexConstPtr a => ListenerQModelIndexQModelIndexValue a where
+#else
+instance ListenerQModelIndexQModelIndexConstPtr a => ListenerQModelIndexQModelIndexValue a where
+#endif
+  withListenerQModelIndexQModelIndexPtr = HoppyP.flip ($) . toListenerQModelIndexQModelIndexConst
+
+class (M30.QObjectConstPtr this) => ListenerQModelIndexQModelIndexConstPtr this where
+  toListenerQModelIndexQModelIndexConst :: this -> ListenerQModelIndexQModelIndexConst
+
+class (ListenerQModelIndexQModelIndexConstPtr this, M30.QObjectPtr this) => ListenerQModelIndexQModelIndexPtr this where
+  toListenerQModelIndexQModelIndex :: this -> ListenerQModelIndexQModelIndex
+
+listenerQModelIndexQModelIndex_connectListener :: (ListenerQModelIndexQModelIndexPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerQModelIndexQModelIndex_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerQModelIndexQModelIndex arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerQModelIndexQModelIndex_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerQModelIndexQModelIndexConst where
+  toQObjectConst (ListenerQModelIndexQModelIndexConst ptr') = M30.QObjectConst $ castListenerQModelIndexQModelIndexToQObject ptr'
+  toQObjectConst (ListenerQModelIndexQModelIndexConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerQModelIndexQModelIndex where
+  toQObjectConst (ListenerQModelIndexQModelIndex ptr') = M30.QObjectConst $ castListenerQModelIndexQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndex -> HoppyF.Ptr ListenerQModelIndexQModelIndexConst) ptr'
+  toQObjectConst (ListenerQModelIndexQModelIndexGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerQModelIndexQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndex -> HoppyF.Ptr ListenerQModelIndexQModelIndexConst) ptr'
+
+instance M30.QObjectPtr ListenerQModelIndexQModelIndex where
+  toQObject (ListenerQModelIndexQModelIndex ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQModelIndexQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndex -> HoppyF.Ptr ListenerQModelIndexQModelIndexConst) ptr'
+  toQObject (ListenerQModelIndexQModelIndexGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQModelIndexQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndex -> HoppyF.Ptr ListenerQModelIndexQModelIndexConst) ptr'
+
+listenerQModelIndexQModelIndex_new ::  (M28.QModelIndex -> M28.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO ListenerQModelIndexQModelIndex
+listenerQModelIndexQModelIndex_new arg'1 =
+  M156.callbackQModelIndexQModelIndexVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerQModelIndexQModelIndex
+  (listenerQModelIndexQModelIndex_new' arg'1')
+
+listenerQModelIndexQModelIndex_newWithParent :: (M30.QObjectPtr arg'2) => (M28.QModelIndex -> M28.QModelIndex -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerQModelIndexQModelIndex
+listenerQModelIndexQModelIndex_newWithParent arg'1 arg'2 =
+  M156.callbackQModelIndexQModelIndexVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerQModelIndexQModelIndex
+  (listenerQModelIndexQModelIndex_newWithParent' arg'1' arg'2')
+
+class ListenerQModelIndexQModelIndexSuper a where
+  downToListenerQModelIndexQModelIndex :: a -> ListenerQModelIndexQModelIndex
+
+instance ListenerQModelIndexQModelIndexSuper M30.QObject where
+  downToListenerQModelIndexQModelIndex = castListenerQModelIndexQModelIndexToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQModelIndexQModelIndexConst $ castQObjectToListenerQModelIndexQModelIndex ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerQModelIndexQModelIndexConstGc fptr' $ castQObjectToListenerQModelIndexQModelIndex ptr'
+
+class ListenerQModelIndexQModelIndexSuperConst a where
+  downToListenerQModelIndexQModelIndexConst :: a -> ListenerQModelIndexQModelIndexConst
+
+instance ListenerQModelIndexQModelIndexSuperConst M30.QObjectConst where
+  downToListenerQModelIndexQModelIndexConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQModelIndexQModelIndexConst $ castQObjectToListenerQModelIndexQModelIndex ptr'
+      cast' (M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerQModelIndexQModelIndexQVectorIntConstPtr a => ListenerQModelIndexQModelIndexQVectorIntValue a where
+#else
+instance ListenerQModelIndexQModelIndexQVectorIntConstPtr a => ListenerQModelIndexQModelIndexQVectorIntValue a where
+#endif
+  withListenerQModelIndexQModelIndexQVectorIntPtr = HoppyP.flip ($) . toListenerQModelIndexQModelIndexQVectorIntConst
+
+class (M30.QObjectConstPtr this) => ListenerQModelIndexQModelIndexQVectorIntConstPtr this where
+  toListenerQModelIndexQModelIndexQVectorIntConst :: this -> ListenerQModelIndexQModelIndexQVectorIntConst
+
+class (ListenerQModelIndexQModelIndexQVectorIntConstPtr this, M30.QObjectPtr this) => ListenerQModelIndexQModelIndexQVectorIntPtr this where
+  toListenerQModelIndexQModelIndexQVectorInt :: this -> ListenerQModelIndexQModelIndexQVectorInt
+
+listenerQModelIndexQModelIndexQVectorInt_connectListener :: (ListenerQModelIndexQModelIndexQVectorIntPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerQModelIndexQModelIndexQVectorInt_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerQModelIndexQModelIndexQVectorInt arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerQModelIndexQModelIndexQVectorInt_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerQModelIndexQModelIndexQVectorIntConst where
+  toQObjectConst (ListenerQModelIndexQModelIndexQVectorIntConst ptr') = M30.QObjectConst $ castListenerQModelIndexQModelIndexQVectorIntToQObject ptr'
+  toQObjectConst (ListenerQModelIndexQModelIndexQVectorIntConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerQModelIndexQModelIndexQVectorInt where
+  toQObjectConst (ListenerQModelIndexQModelIndexQVectorInt ptr') = M30.QObjectConst $ castListenerQModelIndexQModelIndexQVectorIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt -> HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst) ptr'
+  toQObjectConst (ListenerQModelIndexQModelIndexQVectorIntGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerQModelIndexQModelIndexQVectorIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt -> HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst) ptr'
+
+instance M30.QObjectPtr ListenerQModelIndexQModelIndexQVectorInt where
+  toQObject (ListenerQModelIndexQModelIndexQVectorInt ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQModelIndexQModelIndexQVectorIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt -> HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst) ptr'
+  toQObject (ListenerQModelIndexQModelIndexQVectorIntGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQModelIndexQModelIndexQVectorIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt -> HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst) ptr'
+
+listenerQModelIndexQModelIndexQVectorInt_new ::  (M28.QModelIndex -> M28.QModelIndex -> M76.QVectorInt -> HoppyP.IO ()) -> HoppyP.IO ListenerQModelIndexQModelIndexQVectorInt
+listenerQModelIndexQModelIndexQVectorInt_new arg'1 =
+  M156.callbackQModelIndexQModelIndexQVectorIntVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerQModelIndexQModelIndexQVectorInt
+  (listenerQModelIndexQModelIndexQVectorInt_new' arg'1')
+
+listenerQModelIndexQModelIndexQVectorInt_newWithParent :: (M30.QObjectPtr arg'2) => (M28.QModelIndex -> M28.QModelIndex -> M76.QVectorInt -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerQModelIndexQModelIndexQVectorInt
+listenerQModelIndexQModelIndexQVectorInt_newWithParent arg'1 arg'2 =
+  M156.callbackQModelIndexQModelIndexQVectorIntVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerQModelIndexQModelIndexQVectorInt
+  (listenerQModelIndexQModelIndexQVectorInt_newWithParent' arg'1' arg'2')
+
+class ListenerQModelIndexQModelIndexQVectorIntSuper a where
+  downToListenerQModelIndexQModelIndexQVectorInt :: a -> ListenerQModelIndexQModelIndexQVectorInt
+
+instance ListenerQModelIndexQModelIndexQVectorIntSuper M30.QObject where
+  downToListenerQModelIndexQModelIndexQVectorInt = castListenerQModelIndexQModelIndexQVectorIntToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQModelIndexQModelIndexQVectorIntConst $ castQObjectToListenerQModelIndexQModelIndexQVectorInt ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerQModelIndexQModelIndexQVectorIntConstGc fptr' $ castQObjectToListenerQModelIndexQModelIndexQVectorInt ptr'
+
+class ListenerQModelIndexQModelIndexQVectorIntSuperConst a where
+  downToListenerQModelIndexQModelIndexQVectorIntConst :: a -> ListenerQModelIndexQModelIndexQVectorIntConst
+
+instance ListenerQModelIndexQModelIndexQVectorIntSuperConst M30.QObjectConst where
+  downToListenerQModelIndexQModelIndexQVectorIntConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQModelIndexQModelIndexQVectorIntConst $ castQObjectToListenerQModelIndexQModelIndexQVectorInt ptr'
+      cast' (M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerQPointConstPtr a => ListenerQPointValue a where
+#else
+instance ListenerQPointConstPtr a => ListenerQPointValue a where
+#endif
+  withListenerQPointPtr = HoppyP.flip ($) . toListenerQPointConst
+
+class (M30.QObjectConstPtr this) => ListenerQPointConstPtr this where
+  toListenerQPointConst :: this -> ListenerQPointConst
+
+class (ListenerQPointConstPtr this, M30.QObjectPtr this) => ListenerQPointPtr this where
+  toListenerQPoint :: this -> ListenerQPoint
+
+listenerQPoint_connectListener :: (ListenerQPointPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerQPoint_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerQPoint arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerQPoint_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerQPointConst where
+  toQObjectConst (ListenerQPointConst ptr') = M30.QObjectConst $ castListenerQPointToQObject ptr'
+  toQObjectConst (ListenerQPointConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerQPoint where
+  toQObjectConst (ListenerQPoint ptr') = M30.QObjectConst $ castListenerQPointToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQPoint -> HoppyF.Ptr ListenerQPointConst) ptr'
+  toQObjectConst (ListenerQPointGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerQPointToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQPoint -> HoppyF.Ptr ListenerQPointConst) ptr'
+
+instance M30.QObjectPtr ListenerQPoint where
+  toQObject (ListenerQPoint ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQPointToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQPoint -> HoppyF.Ptr ListenerQPointConst) ptr'
+  toQObject (ListenerQPointGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQPointToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQPoint -> HoppyF.Ptr ListenerQPointConst) ptr'
+
+listenerQPoint_new ::  (HPoint.HPoint -> HoppyP.IO ()) -> HoppyP.IO ListenerQPoint
+listenerQPoint_new arg'1 =
+  M156.callbackQPointVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerQPoint
+  (listenerQPoint_new' arg'1')
+
+listenerQPoint_newWithParent :: (M30.QObjectPtr arg'2) => (HPoint.HPoint -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerQPoint
+listenerQPoint_newWithParent arg'1 arg'2 =
+  M156.callbackQPointVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerQPoint
+  (listenerQPoint_newWithParent' arg'1' arg'2')
+
+class ListenerQPointSuper a where
+  downToListenerQPoint :: a -> ListenerQPoint
+
+instance ListenerQPointSuper M30.QObject where
+  downToListenerQPoint = castListenerQPointToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQPointConst $ castQObjectToListenerQPoint ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerQPointConstGc fptr' $ castQObjectToListenerQPoint ptr'
+
+class ListenerQPointSuperConst a where
+  downToListenerQPointConst :: a -> ListenerQPointConst
+
+instance ListenerQPointSuperConst M30.QObjectConst where
+  downToListenerQPointConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQPointConst $ castQObjectToListenerQPoint ptr'
+      cast' (M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerQSizeConstPtr a => ListenerQSizeValue a where
+#else
+instance ListenerQSizeConstPtr a => ListenerQSizeValue a where
+#endif
+  withListenerQSizePtr = HoppyP.flip ($) . toListenerQSizeConst
+
+class (M30.QObjectConstPtr this) => ListenerQSizeConstPtr this where
+  toListenerQSizeConst :: this -> ListenerQSizeConst
+
+class (ListenerQSizeConstPtr this, M30.QObjectPtr this) => ListenerQSizePtr this where
+  toListenerQSize :: this -> ListenerQSize
+
+listenerQSize_connectListener :: (ListenerQSizePtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerQSize_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerQSize arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerQSize_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerQSizeConst where
+  toQObjectConst (ListenerQSizeConst ptr') = M30.QObjectConst $ castListenerQSizeToQObject ptr'
+  toQObjectConst (ListenerQSizeConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerQSize where
+  toQObjectConst (ListenerQSize ptr') = M30.QObjectConst $ castListenerQSizeToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQSize -> HoppyF.Ptr ListenerQSizeConst) ptr'
+  toQObjectConst (ListenerQSizeGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerQSizeToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQSize -> HoppyF.Ptr ListenerQSizeConst) ptr'
+
+instance M30.QObjectPtr ListenerQSize where
+  toQObject (ListenerQSize ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQSizeToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQSize -> HoppyF.Ptr ListenerQSizeConst) ptr'
+  toQObject (ListenerQSizeGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQSizeToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQSize -> HoppyF.Ptr ListenerQSizeConst) ptr'
+
+listenerQSize_new ::  (HSize.HSize -> HoppyP.IO ()) -> HoppyP.IO ListenerQSize
+listenerQSize_new arg'1 =
+  M156.callbackQSizeVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerQSize
+  (listenerQSize_new' arg'1')
+
+listenerQSize_newWithParent :: (M30.QObjectPtr arg'2) => (HSize.HSize -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerQSize
+listenerQSize_newWithParent arg'1 arg'2 =
+  M156.callbackQSizeVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerQSize
+  (listenerQSize_newWithParent' arg'1' arg'2')
+
+class ListenerQSizeSuper a where
+  downToListenerQSize :: a -> ListenerQSize
+
+instance ListenerQSizeSuper M30.QObject where
+  downToListenerQSize = castListenerQSizeToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQSizeConst $ castQObjectToListenerQSize ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerQSizeConstGc fptr' $ castQObjectToListenerQSize ptr'
+
+class ListenerQSizeSuperConst a where
+  downToListenerQSizeConst :: a -> ListenerQSizeConst
+
+instance ListenerQSizeSuperConst M30.QObjectConst where
+  downToListenerQSizeConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQSizeConst $ castQObjectToListenerQSize ptr'
+      cast' (M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerQStringConstPtr a => ListenerQStringValue a where
+#else
+instance ListenerQStringConstPtr a => ListenerQStringValue a where
+#endif
+  withListenerQStringPtr = HoppyP.flip ($) . toListenerQStringConst
+
+class (M30.QObjectConstPtr this) => ListenerQStringConstPtr this where
+  toListenerQStringConst :: this -> ListenerQStringConst
+
+class (ListenerQStringConstPtr this, M30.QObjectPtr this) => ListenerQStringPtr this where
+  toListenerQString :: this -> ListenerQString
+
+listenerQString_connectListener :: (ListenerQStringPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerQString_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerQString arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerQString_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerQStringConst where
+  toQObjectConst (ListenerQStringConst ptr') = M30.QObjectConst $ castListenerQStringToQObject ptr'
+  toQObjectConst (ListenerQStringConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerQString where
+  toQObjectConst (ListenerQString ptr') = M30.QObjectConst $ castListenerQStringToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQString -> HoppyF.Ptr ListenerQStringConst) ptr'
+  toQObjectConst (ListenerQStringGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerQStringToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQString -> HoppyF.Ptr ListenerQStringConst) ptr'
+
+instance M30.QObjectPtr ListenerQString where
+  toQObject (ListenerQString ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQStringToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQString -> HoppyF.Ptr ListenerQStringConst) ptr'
+  toQObject (ListenerQStringGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQStringToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQString -> HoppyF.Ptr ListenerQStringConst) ptr'
+
+listenerQString_new ::  (QtahP.String -> HoppyP.IO ()) -> HoppyP.IO ListenerQString
+listenerQString_new arg'1 =
+  M156.callbackQStringVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerQString
+  (listenerQString_new' arg'1')
+
+listenerQString_newWithParent :: (M30.QObjectPtr arg'2) => (QtahP.String -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerQString
+listenerQString_newWithParent arg'1 arg'2 =
+  M156.callbackQStringVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerQString
+  (listenerQString_newWithParent' arg'1' arg'2')
+
+class ListenerQStringSuper a where
+  downToListenerQString :: a -> ListenerQString
+
+instance ListenerQStringSuper M30.QObject where
+  downToListenerQString = castListenerQStringToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQStringConst $ castQObjectToListenerQString ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerQStringConstGc fptr' $ castQObjectToListenerQString ptr'
+
+class ListenerQStringSuperConst a where
+  downToListenerQStringConst :: a -> ListenerQStringConst
+
+instance ListenerQStringSuperConst M30.QObjectConst where
+  downToListenerQStringConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQStringConst $ castQObjectToListenerQString ptr'
+      cast' (M30.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 ListenerQWindowVisibilityValue a where
+  withListenerQWindowVisibilityPtr :: a -> (ListenerQWindowVisibilityConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerQWindowVisibilityConstPtr a => ListenerQWindowVisibilityValue a where
+#else
+instance ListenerQWindowVisibilityConstPtr a => ListenerQWindowVisibilityValue a where
+#endif
+  withListenerQWindowVisibilityPtr = HoppyP.flip ($) . toListenerQWindowVisibilityConst
+
+class (M30.QObjectConstPtr this) => ListenerQWindowVisibilityConstPtr this where
+  toListenerQWindowVisibilityConst :: this -> ListenerQWindowVisibilityConst
+
+class (ListenerQWindowVisibilityConstPtr this, M30.QObjectPtr this) => ListenerQWindowVisibilityPtr this where
+  toListenerQWindowVisibility :: this -> ListenerQWindowVisibility
+
+listenerQWindowVisibility_connectListener :: (ListenerQWindowVisibilityPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerQWindowVisibility_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerQWindowVisibility arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerQWindowVisibility_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerQWindowVisibilityConst where
+  toQObjectConst (ListenerQWindowVisibilityConst ptr') = M30.QObjectConst $ castListenerQWindowVisibilityToQObject ptr'
+  toQObjectConst (ListenerQWindowVisibilityConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerQWindowVisibility where
+  toQObjectConst (ListenerQWindowVisibility ptr') = M30.QObjectConst $ castListenerQWindowVisibilityToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQWindowVisibility -> HoppyF.Ptr ListenerQWindowVisibilityConst) ptr'
+  toQObjectConst (ListenerQWindowVisibilityGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerQWindowVisibilityToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQWindowVisibility -> HoppyF.Ptr ListenerQWindowVisibilityConst) ptr'
+
+instance M30.QObjectPtr ListenerQWindowVisibility where
+  toQObject (ListenerQWindowVisibility ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQWindowVisibilityToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQWindowVisibility -> HoppyF.Ptr ListenerQWindowVisibilityConst) ptr'
+  toQObject (ListenerQWindowVisibilityGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQWindowVisibilityToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQWindowVisibility -> HoppyF.Ptr ListenerQWindowVisibilityConst) ptr'
+
+listenerQWindowVisibility_new ::  (M150.QWindowVisibility -> HoppyP.IO ()) -> HoppyP.IO ListenerQWindowVisibility
+listenerQWindowVisibility_new arg'1 =
+  M156.callbackQWindowVisibilityVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerQWindowVisibility
+  (listenerQWindowVisibility_new' arg'1')
+
+listenerQWindowVisibility_newWithParent :: (M30.QObjectPtr arg'2) => (M150.QWindowVisibility -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerQWindowVisibility
+listenerQWindowVisibility_newWithParent arg'1 arg'2 =
+  M156.callbackQWindowVisibilityVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerQWindowVisibility
+  (listenerQWindowVisibility_newWithParent' arg'1' arg'2')
+
+class ListenerQWindowVisibilitySuper a where
+  downToListenerQWindowVisibility :: a -> ListenerQWindowVisibility
+
+instance ListenerQWindowVisibilitySuper M30.QObject where
+  downToListenerQWindowVisibility = castListenerQWindowVisibilityToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQWindowVisibilityConst $ castQObjectToListenerQWindowVisibility ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerQWindowVisibilityConstGc fptr' $ castQObjectToListenerQWindowVisibility ptr'
+
+class ListenerQWindowVisibilitySuperConst a where
+  downToListenerQWindowVisibilityConst :: a -> ListenerQWindowVisibilityConst
+
+instance ListenerQWindowVisibilitySuperConst M30.QObjectConst where
+  downToListenerQWindowVisibilityConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQWindowVisibilityConst $ castQObjectToListenerQWindowVisibility ptr'
+      cast' (M30.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 ListenerQrealValue a where
+  withListenerQrealPtr :: a -> (ListenerQrealConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerQrealConstPtr a => ListenerQrealValue a where
+#else
+instance ListenerQrealConstPtr a => ListenerQrealValue a where
+#endif
+  withListenerQrealPtr = HoppyP.flip ($) . toListenerQrealConst
+
+class (M30.QObjectConstPtr this) => ListenerQrealConstPtr this where
+  toListenerQrealConst :: this -> ListenerQrealConst
+
+class (ListenerQrealConstPtr this, M30.QObjectPtr this) => ListenerQrealPtr this where
+  toListenerQreal :: this -> ListenerQreal
+
+listenerQreal_connectListener :: (ListenerQrealPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerQreal_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerQreal arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerQreal_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerQrealConst where
+  toQObjectConst (ListenerQrealConst ptr') = M30.QObjectConst $ castListenerQrealToQObject ptr'
+  toQObjectConst (ListenerQrealConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerQreal where
+  toQObjectConst (ListenerQreal ptr') = M30.QObjectConst $ castListenerQrealToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQreal -> HoppyF.Ptr ListenerQrealConst) ptr'
+  toQObjectConst (ListenerQrealGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerQrealToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQreal -> HoppyF.Ptr ListenerQrealConst) ptr'
+
+instance M30.QObjectPtr ListenerQreal where
+  toQObject (ListenerQreal ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQrealToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQreal -> HoppyF.Ptr ListenerQrealConst) ptr'
+  toQObject (ListenerQrealGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerQrealToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQreal -> HoppyF.Ptr ListenerQrealConst) ptr'
+
+listenerQreal_new ::  (HoppyP.Double -> HoppyP.IO ()) -> HoppyP.IO ListenerQreal
+listenerQreal_new arg'1 =
+  M156.callbackQrealVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerQreal
+  (listenerQreal_new' arg'1')
+
+listenerQreal_newWithParent :: (M30.QObjectPtr arg'2) => (HoppyP.Double -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerQreal
+listenerQreal_newWithParent arg'1 arg'2 =
+  M156.callbackQrealVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerQreal
+  (listenerQreal_newWithParent' arg'1' arg'2')
+
+class ListenerQrealSuper a where
+  downToListenerQreal :: a -> ListenerQreal
+
+instance ListenerQrealSuper M30.QObject where
+  downToListenerQreal = castListenerQrealToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQrealConst $ castQObjectToListenerQreal ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerQrealConstGc fptr' $ castQObjectToListenerQreal ptr'
+
+class ListenerQrealSuperConst a where
+  downToListenerQrealConst :: a -> ListenerQrealConst
+
+instance ListenerQrealSuperConst M30.QObjectConst where
+  downToListenerQrealConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerQrealConst $ castQObjectToListenerQreal ptr'
+      cast' (M30.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 ListenerRefConstQItemSelectionRefConstQItemSelectionValue a where
+  withListenerRefConstQItemSelectionRefConstQItemSelectionPtr :: a -> (ListenerRefConstQItemSelectionRefConstQItemSelectionConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerRefConstQItemSelectionRefConstQItemSelectionConstPtr a => ListenerRefConstQItemSelectionRefConstQItemSelectionValue a where
+#else
+instance ListenerRefConstQItemSelectionRefConstQItemSelectionConstPtr a => ListenerRefConstQItemSelectionRefConstQItemSelectionValue a where
+#endif
+  withListenerRefConstQItemSelectionRefConstQItemSelectionPtr = HoppyP.flip ($) . toListenerRefConstQItemSelectionRefConstQItemSelectionConst
+
+class (M30.QObjectConstPtr this) => ListenerRefConstQItemSelectionRefConstQItemSelectionConstPtr this where
+  toListenerRefConstQItemSelectionRefConstQItemSelectionConst :: this -> ListenerRefConstQItemSelectionRefConstQItemSelectionConst
+
+class (ListenerRefConstQItemSelectionRefConstQItemSelectionConstPtr this, M30.QObjectPtr this) => ListenerRefConstQItemSelectionRefConstQItemSelectionPtr this where
+  toListenerRefConstQItemSelectionRefConstQItemSelection :: this -> ListenerRefConstQItemSelectionRefConstQItemSelection
+
+listenerRefConstQItemSelectionRefConstQItemSelection_connectListener :: (ListenerRefConstQItemSelectionRefConstQItemSelectionPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerRefConstQItemSelectionRefConstQItemSelection_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerRefConstQItemSelectionRefConstQItemSelection arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerRefConstQItemSelectionRefConstQItemSelection_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerRefConstQItemSelectionRefConstQItemSelectionConst where
+  toQObjectConst (ListenerRefConstQItemSelectionRefConstQItemSelectionConst ptr') = M30.QObjectConst $ castListenerRefConstQItemSelectionRefConstQItemSelectionToQObject ptr'
+  toQObjectConst (ListenerRefConstQItemSelectionRefConstQItemSelectionConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerRefConstQItemSelectionRefConstQItemSelection where
+  toQObjectConst (ListenerRefConstQItemSelectionRefConstQItemSelection ptr') = M30.QObjectConst $ castListenerRefConstQItemSelectionRefConstQItemSelectionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection -> HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst) ptr'
+  toQObjectConst (ListenerRefConstQItemSelectionRefConstQItemSelectionGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerRefConstQItemSelectionRefConstQItemSelectionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection -> HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst) ptr'
+
+instance M30.QObjectPtr ListenerRefConstQItemSelectionRefConstQItemSelection where
+  toQObject (ListenerRefConstQItemSelectionRefConstQItemSelection ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerRefConstQItemSelectionRefConstQItemSelectionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection -> HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst) ptr'
+  toQObject (ListenerRefConstQItemSelectionRefConstQItemSelectionGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerRefConstQItemSelectionRefConstQItemSelectionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection -> HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst) ptr'
+
+listenerRefConstQItemSelectionRefConstQItemSelection_new ::  (M18.QItemSelectionConst -> M18.QItemSelectionConst -> HoppyP.IO ()) -> HoppyP.IO ListenerRefConstQItemSelectionRefConstQItemSelection
+listenerRefConstQItemSelectionRefConstQItemSelection_new arg'1 =
+  M156.callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerRefConstQItemSelectionRefConstQItemSelection
+  (listenerRefConstQItemSelectionRefConstQItemSelection_new' arg'1')
+
+listenerRefConstQItemSelectionRefConstQItemSelection_newWithParent :: (M30.QObjectPtr arg'2) => (M18.QItemSelectionConst -> M18.QItemSelectionConst -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerRefConstQItemSelectionRefConstQItemSelection
+listenerRefConstQItemSelectionRefConstQItemSelection_newWithParent arg'1 arg'2 =
+  M156.callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerRefConstQItemSelectionRefConstQItemSelection
+  (listenerRefConstQItemSelectionRefConstQItemSelection_newWithParent' arg'1' arg'2')
+
+class ListenerRefConstQItemSelectionRefConstQItemSelectionSuper a where
+  downToListenerRefConstQItemSelectionRefConstQItemSelection :: a -> ListenerRefConstQItemSelectionRefConstQItemSelection
+
+instance ListenerRefConstQItemSelectionRefConstQItemSelectionSuper M30.QObject where
+  downToListenerRefConstQItemSelectionRefConstQItemSelection = castListenerRefConstQItemSelectionRefConstQItemSelectionToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerRefConstQItemSelectionRefConstQItemSelectionConst $ castQObjectToListenerRefConstQItemSelectionRefConstQItemSelection ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerRefConstQItemSelectionRefConstQItemSelectionConstGc fptr' $ castQObjectToListenerRefConstQItemSelectionRefConstQItemSelection ptr'
+
+class ListenerRefConstQItemSelectionRefConstQItemSelectionSuperConst a where
+  downToListenerRefConstQItemSelectionRefConstQItemSelectionConst :: a -> ListenerRefConstQItemSelectionRefConstQItemSelectionConst
+
+instance ListenerRefConstQItemSelectionRefConstQItemSelectionSuperConst M30.QObjectConst where
+  downToListenerRefConstQItemSelectionRefConstQItemSelectionConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerRefConstQItemSelectionRefConstQItemSelectionConst $ castQObjectToListenerRefConstQItemSelectionRefConstQItemSelection ptr'
+      cast' (M30.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 ListenerScreenOrientationValue a where
+  withListenerScreenOrientationPtr :: a -> (ListenerScreenOrientationConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerScreenOrientationConstPtr a => ListenerScreenOrientationValue a where
+#else
+instance ListenerScreenOrientationConstPtr a => ListenerScreenOrientationValue a where
+#endif
+  withListenerScreenOrientationPtr = HoppyP.flip ($) . toListenerScreenOrientationConst
+
+class (M30.QObjectConstPtr this) => ListenerScreenOrientationConstPtr this where
+  toListenerScreenOrientationConst :: this -> ListenerScreenOrientationConst
+
+class (ListenerScreenOrientationConstPtr this, M30.QObjectPtr this) => ListenerScreenOrientationPtr this where
+  toListenerScreenOrientation :: this -> ListenerScreenOrientation
+
+listenerScreenOrientation_connectListener :: (ListenerScreenOrientationPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerScreenOrientation_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerScreenOrientation arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerScreenOrientation_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerScreenOrientationConst where
+  toQObjectConst (ListenerScreenOrientationConst ptr') = M30.QObjectConst $ castListenerScreenOrientationToQObject ptr'
+  toQObjectConst (ListenerScreenOrientationConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerScreenOrientation where
+  toQObjectConst (ListenerScreenOrientation ptr') = M30.QObjectConst $ castListenerScreenOrientationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerScreenOrientation -> HoppyF.Ptr ListenerScreenOrientationConst) ptr'
+  toQObjectConst (ListenerScreenOrientationGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerScreenOrientationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerScreenOrientation -> HoppyF.Ptr ListenerScreenOrientationConst) ptr'
+
+instance M30.QObjectPtr ListenerScreenOrientation where
+  toQObject (ListenerScreenOrientation ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerScreenOrientationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerScreenOrientation -> HoppyF.Ptr ListenerScreenOrientationConst) ptr'
+  toQObject (ListenerScreenOrientationGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerScreenOrientationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerScreenOrientation -> HoppyF.Ptr ListenerScreenOrientationConst) ptr'
+
+listenerScreenOrientation_new ::  (M58.QtScreenOrientation -> HoppyP.IO ()) -> HoppyP.IO ListenerScreenOrientation
+listenerScreenOrientation_new arg'1 =
+  M156.callbackScreenOrientationVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerScreenOrientation
+  (listenerScreenOrientation_new' arg'1')
+
+listenerScreenOrientation_newWithParent :: (M30.QObjectPtr arg'2) => (M58.QtScreenOrientation -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerScreenOrientation
+listenerScreenOrientation_newWithParent arg'1 arg'2 =
+  M156.callbackScreenOrientationVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerScreenOrientation
+  (listenerScreenOrientation_newWithParent' arg'1' arg'2')
+
+class ListenerScreenOrientationSuper a where
+  downToListenerScreenOrientation :: a -> ListenerScreenOrientation
+
+instance ListenerScreenOrientationSuper M30.QObject where
+  downToListenerScreenOrientation = castListenerScreenOrientationToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerScreenOrientationConst $ castQObjectToListenerScreenOrientation ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerScreenOrientationConstGc fptr' $ castQObjectToListenerScreenOrientation ptr'
+
+class ListenerScreenOrientationSuperConst a where
+  downToListenerScreenOrientationConst :: a -> ListenerScreenOrientationConst
+
+instance ListenerScreenOrientationSuperConst M30.QObjectConst where
+  downToListenerScreenOrientationConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerScreenOrientationConst $ castQObjectToListenerScreenOrientation ptr'
+      cast' (M30.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 ListenerWindowModalityValue a where
+  withListenerWindowModalityPtr :: a -> (ListenerWindowModalityConst -> HoppyP.IO b) -> HoppyP.IO b
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerWindowModalityConstPtr a => ListenerWindowModalityValue a where
+#else
+instance ListenerWindowModalityConstPtr a => ListenerWindowModalityValue a where
+#endif
+  withListenerWindowModalityPtr = HoppyP.flip ($) . toListenerWindowModalityConst
+
+class (M30.QObjectConstPtr this) => ListenerWindowModalityConstPtr this where
+  toListenerWindowModalityConst :: this -> ListenerWindowModalityConst
+
+class (ListenerWindowModalityConstPtr this, M30.QObjectPtr this) => ListenerWindowModalityPtr this where
+  toListenerWindowModality :: this -> ListenerWindowModality
+
+listenerWindowModality_connectListener :: (ListenerWindowModalityPtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerWindowModality_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerWindowModality arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerWindowModality_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerWindowModalityConst where
+  toQObjectConst (ListenerWindowModalityConst ptr') = M30.QObjectConst $ castListenerWindowModalityToQObject ptr'
+  toQObjectConst (ListenerWindowModalityConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerWindowModality where
+  toQObjectConst (ListenerWindowModality ptr') = M30.QObjectConst $ castListenerWindowModalityToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowModality -> HoppyF.Ptr ListenerWindowModalityConst) ptr'
+  toQObjectConst (ListenerWindowModalityGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerWindowModalityToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowModality -> HoppyF.Ptr ListenerWindowModalityConst) ptr'
+
+instance M30.QObjectPtr ListenerWindowModality where
+  toQObject (ListenerWindowModality ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerWindowModalityToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowModality -> HoppyF.Ptr ListenerWindowModalityConst) ptr'
+  toQObject (ListenerWindowModalityGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerWindowModalityToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowModality -> HoppyF.Ptr ListenerWindowModalityConst) ptr'
+
+listenerWindowModality_new ::  (M58.QtWindowModality -> HoppyP.IO ()) -> HoppyP.IO ListenerWindowModality
+listenerWindowModality_new arg'1 =
+  M156.callbackWindowModalityVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerWindowModality
+  (listenerWindowModality_new' arg'1')
+
+listenerWindowModality_newWithParent :: (M30.QObjectPtr arg'2) => (M58.QtWindowModality -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerWindowModality
+listenerWindowModality_newWithParent arg'1 arg'2 =
+  M156.callbackWindowModalityVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerWindowModality
+  (listenerWindowModality_newWithParent' arg'1' arg'2')
+
+class ListenerWindowModalitySuper a where
+  downToListenerWindowModality :: a -> ListenerWindowModality
+
+instance ListenerWindowModalitySuper M30.QObject where
+  downToListenerWindowModality = castListenerWindowModalityToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerWindowModalityConst $ castQObjectToListenerWindowModality ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerWindowModalityConstGc fptr' $ castQObjectToListenerWindowModality ptr'
+
+class ListenerWindowModalitySuperConst a where
+  downToListenerWindowModalityConst :: a -> ListenerWindowModalityConst
+
+instance ListenerWindowModalitySuperConst M30.QObjectConst where
+  downToListenerWindowModalityConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerWindowModalityConst $ castQObjectToListenerWindowModality ptr'
+      cast' (M30.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
+
+#if MIN_VERSION_base(4,8,0)
+instance {-# OVERLAPPABLE #-} ListenerWindowStateConstPtr a => ListenerWindowStateValue a where
+#else
+instance ListenerWindowStateConstPtr a => ListenerWindowStateValue a where
+#endif
+  withListenerWindowStatePtr = HoppyP.flip ($) . toListenerWindowStateConst
+
+class (M30.QObjectConstPtr this) => ListenerWindowStateConstPtr this where
+  toListenerWindowStateConst :: this -> ListenerWindowStateConst
+
+class (ListenerWindowStateConstPtr this, M30.QObjectPtr this) => ListenerWindowStatePtr this where
+  toListenerWindowState :: this -> ListenerWindowState
+
+listenerWindowState_connectListener :: (ListenerWindowStatePtr arg'1, M30.QObjectPtr arg'2, M1.StdStringValue arg'3) => arg'1 -> arg'2 -> arg'3 -> HoppyP.IO HoppyP.Bool
+listenerWindowState_connectListener arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toListenerWindowState arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  M1.withStdStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap (/= 0)
+  (listenerWindowState_connectListener' arg'1' arg'2' arg'3')
+
+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 M30.QObjectConstPtr ListenerWindowStateConst where
+  toQObjectConst (ListenerWindowStateConst ptr') = M30.QObjectConst $ castListenerWindowStateToQObject ptr'
+  toQObjectConst (ListenerWindowStateConstGc fptr' ptr') = M30.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 M30.QObjectConstPtr ListenerWindowState where
+  toQObjectConst (ListenerWindowState ptr') = M30.QObjectConst $ castListenerWindowStateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowState -> HoppyF.Ptr ListenerWindowStateConst) ptr'
+  toQObjectConst (ListenerWindowStateGc fptr' ptr') = M30.QObjectConstGc fptr' $ castListenerWindowStateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowState -> HoppyF.Ptr ListenerWindowStateConst) ptr'
+
+instance M30.QObjectPtr ListenerWindowState where
+  toQObject (ListenerWindowState ptr') = M30.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerWindowStateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowState -> HoppyF.Ptr ListenerWindowStateConst) ptr'
+  toQObject (ListenerWindowStateGc fptr' ptr') = M30.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M30.QObjectConst -> HoppyF.Ptr M30.QObject) $ castListenerWindowStateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowState -> HoppyF.Ptr ListenerWindowStateConst) ptr'
+
+listenerWindowState_new ::  (M58.QtWindowState -> HoppyP.IO ()) -> HoppyP.IO ListenerWindowState
+listenerWindowState_new arg'1 =
+  M156.callbackWindowStateVoid_new arg'1 >>= \arg'1' ->
+  HoppyP.fmap ListenerWindowState
+  (listenerWindowState_new' arg'1')
+
+listenerWindowState_newWithParent :: (M30.QObjectPtr arg'2) => (M58.QtWindowState -> HoppyP.IO ()) -> arg'2 -> HoppyP.IO ListenerWindowState
+listenerWindowState_newWithParent arg'1 arg'2 =
+  M156.callbackWindowStateVoid_new arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M30.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap ListenerWindowState
+  (listenerWindowState_newWithParent' arg'1' arg'2')
+
+class ListenerWindowStateSuper a where
+  downToListenerWindowState :: a -> ListenerWindowState
+
+instance ListenerWindowStateSuper M30.QObject where
+  downToListenerWindowState = castListenerWindowStateToNonconst . cast' . M30.castQObjectToConst
+    where
+      cast' (M30.QObjectConst ptr') = ListenerWindowStateConst $ castQObjectToListenerWindowState ptr'
+      cast' (M30.QObjectConstGc fptr' ptr') = ListenerWindowStateConstGc fptr' $ castQObjectToListenerWindowState ptr'
+
+class ListenerWindowStateSuperConst a where
+  downToListenerWindowStateConst :: a -> ListenerWindowStateConst
+
+instance ListenerWindowStateSuperConst M30.QObjectConst where
+  downToListenerWindowStateConst = cast'
+    where
+      cast' (M30.QObjectConst ptr') = ListenerWindowStateConst $ castQObjectToListenerWindowState ptr'
+      cast' (M30.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
diff --git a/src/Graphics/UI/Qtah/Internal/SceneEventListener.hs b/src/Graphics/UI/Qtah/Internal/SceneEventListener.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Internal/SceneEventListener.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/SceneEvent.hs
@@ -0,0 +1,93 @@
+-- This file is part of Qtah.
+--
+-- Copyright 2015-2017 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
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU Lesser General Public License for more details.
+--
+-- You should have received a copy of the GNU Lesser General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+{-# LANGUAGE ExistentialQuantification #-}
+
+-- | General routines for managing events for
+-- "Graphics.UI.Qtah.Widgets.QGraphicsScene"s.
+module Graphics.UI.Qtah.SceneEvent (
+  -- * High-level interface.
+  SceneEvent (..),
+  SceneEventRegistration,
+  unregister,
+  -- * Low-level interface
+  SceneEventFilter,
+  onAnySceneEvent,
+  -- * Internal
+  internalRegistrationIsLive,
+  ) where
+
+import Control.Concurrent.MVar (MVar, modifyMVar_, newMVar, readMVar)
+import Control.Monad (when)
+import Foreign.Hoppy.Runtime (delete)
+import Graphics.UI.Qtah.Widgets.QGraphicsItem (QGraphicsItem, QGraphicsItemPtr)
+-- Note, Generated import, since the non-Generated import imports this module.
+import Graphics.UI.Qtah.Generated.Core.QEvent (QEvent)
+import Graphics.UI.Qtah.Internal.SceneEventListener (SceneEventListener)
+import qualified Graphics.UI.Qtah.Internal.SceneEventListener as SceneEventListener
+
+-- | A typeclass for Qt events within a
+-- 'Graphics.UI.Qtah.Widgets.QGraphicsScene.QGraphicsScene'.
+class SceneEvent e where
+  -- | Registers a callback function to be invoked when an event of type @e@ is
+  -- sent to an object.  This is a wrapper around 'onAnySceneEvent', so for details,
+  -- see that function; all comments about @SceneEventFilter@s apply equally to
+  -- handlers given here.
+  onSceneEvent :: QGraphicsItemPtr this => this -> (e -> IO Bool) -> IO SceneEventRegistration
+
+-- | A record that an event handler was registered with a receiver object.  This
+-- can be given to 'unregister' to destroy the corresponding handler.
+data SceneEventRegistration = SceneEventRegistration
+  { regListener :: SceneEventListener
+  , regLive :: MVar Bool
+  }
+
+-- | An filter that can handle any type of event.
+type SceneEventFilter = QGraphicsItem -> QEvent -> IO Bool
+
+-- | Registers an 'SceneEventFilter' to listen to events that a 'QGraphicsItem' receives.
+-- A filter can return false to allow the event to propagate further, or true to
+-- indicate that the event has been handled, and stop propagation.  When
+-- multiple filters are attached to an object, the last one installed is called
+-- first.  The filter will stay active until the receiver is deleted, or
+-- 'unregister' is called.
+--
+-- This function uses 'QGraphicsItem.installSceneEventFilter' under the hood.
+onAnySceneEvent :: QGraphicsItemPtr target =>
+  target -> SceneEventFilter -> IO SceneEventRegistration
+onAnySceneEvent receiver filter = do
+  liveVar <- newMVar True
+  listener <- SceneEventListener.new receiver filter $ modifyMVar_ liveVar $ const $ return False
+  return $ SceneEventRegistration
+    { regListener = listener
+    , regLive = liveVar
+    }
+
+-- | Disconnects an event handler and frees its resources.  This function is
+-- idempotent.
+unregister :: SceneEventRegistration -> IO ()
+unregister reg = modifyMVar_ (regLive reg) $ \live -> do
+  when live $ do
+    let listener = regListener reg
+    -- The on-delete callback tries to modify regLive too, so skip it to avoid
+    -- deadlock, because we already know the listener is being deleted.
+    SceneEventListener.doNotNotifyOnDelete listener
+    delete listener
+  return False
+
+internalRegistrationIsLive :: SceneEventRegistration -> IO Bool
+internalRegistrationIsLive = readMVar . regLive
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-2016 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2017 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/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,89 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  iconSize,
+  isCheckable,
+  isChecked,
+  isDown,
+  setAutoExclusive,
+  setAutoRepeat,
+  setAutoRepeatDelay,
+  setAutoRepeatInterval,
+  setCheckable,
+  setChecked,
+  setDown,
+  setIconSize,
+  setText,
+  text,
+  toggle,
+  clickedSignal,
+  pressedSignal,
+  releasedSignal,
+  toggledSignal,
+  ) where
+
+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
+
+
+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 fn'
+    listenerBool_connectListener listener' object' "2clicked(bool)"
+  , QtahSignal.internalName = "QAbstractButton::clicked (ListenerBool)"
+  }
+
+pressedSignal :: (QAbstractButtonPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+pressedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2pressed()"
+  , QtahSignal.internalName = "QAbstractButton::pressed (Listener)"
+  }
+
+releasedSignal :: (QAbstractButtonPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+releasedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2released()"
+  , 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 fn'
+    listenerBool_connectListener listener' object' "2toggled(bool)"
+  , QtahSignal.internalName = "QAbstractButton::toggled (ListenerBool)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QAbstractGraphicsShapeItem.hs b/src/Graphics/UI/Qtah/Widgets/QAbstractGraphicsShapeItem.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QAbstractGraphicsShapeItem.hs
@@ -0,0 +1,33 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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/QAbstractItemView.hs b/src/Graphics/UI/Qtah/Widgets/QAbstractItemView.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QAbstractItemView.hs
@@ -0,0 +1,172 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  hasAutoScroll,
+  horizontalScrollMode,
+  iconSize,
+  indexAt,
+  indexWidget,
+  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,
+  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,
+  fromQAbstractItemViewEditTriggers,
+  IsQAbstractItemViewEditTriggers (..),
+  noEditTriggers,
+  currentChanged,
+  doubleClicked,
+  selectedClicked,
+  editKeyPressed,
+  anyKeyPressed,
+  allEditTriggers,
+  QAbstractItemViewScrollHint (..),
+  QAbstractItemViewScrollMode (..),
+  QAbstractItemViewSelectionBehavior (..),
+  QAbstractItemViewSelectionMode (..),
+  ) where
+
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M28
+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
+
+
+castConst = toQAbstractItemViewConst
+cast = toQAbstractItemView
+downCastConst = downToQAbstractItemViewConst
+downCast = downToQAbstractItemView
+
+activatedSignal :: (QAbstractItemViewPtr object) => QtahSignal.Signal object (M28.QModelIndex -> HoppyP.IO ())
+activatedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndex_new fn'
+    listenerQModelIndex_connectListener listener' object' "2activated(QModelIndex)"
+  , QtahSignal.internalName = "QAbstractItemView::activated (ListenerQModelIndex)"
+  }
+
+clickedSignal :: (QAbstractItemViewPtr object) => QtahSignal.Signal object (M28.QModelIndex -> HoppyP.IO ())
+clickedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndex_new fn'
+    listenerQModelIndex_connectListener listener' object' "2clicked(QModelIndex)"
+  , QtahSignal.internalName = "QAbstractItemView::clicked (ListenerQModelIndex)"
+  }
+
+doubleClickedSignal :: (QAbstractItemViewPtr object) => QtahSignal.Signal object (M28.QModelIndex -> HoppyP.IO ())
+doubleClickedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndex_new fn'
+    listenerQModelIndex_connectListener listener' object' "2doubleClicked(QModelIndex)"
+  , QtahSignal.internalName = "QAbstractItemView::doubleClicked (ListenerQModelIndex)"
+  }
+
+enteredSignal :: (QAbstractItemViewPtr object) => QtahSignal.Signal object (M28.QModelIndex -> HoppyP.IO ())
+enteredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndex_new fn'
+    listenerQModelIndex_connectListener listener' object' "2entered(QModelIndex)"
+  , 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 fn'
+    listenerQSize_connectListener listener' object' "2iconSizeChanged(QSize)"
+  , QtahSignal.internalName = "QAbstractItemView::iconSizeChanged (ListenerQSize)"
+  }
+
+pressedSignal :: (QAbstractItemViewPtr object) => QtahSignal.Signal object (M28.QModelIndex -> HoppyP.IO ())
+pressedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndex_new fn'
+    listenerQModelIndex_connectListener listener' object' "2pressed(QModelIndex)"
+  , QtahSignal.internalName = "QAbstractItemView::pressed (ListenerQModelIndex)"
+  }
+
+viewportEnteredSignal :: (QAbstractItemViewPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+viewportEnteredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2viewportEntered()"
+  , 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,45 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,113 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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 Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider as M170
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude ()
+import qualified Prelude as HoppyP
+
+
+castConst = toQAbstractSliderConst
+cast = toQAbstractSlider
+downCastConst = downToQAbstractSliderConst
+downCast = downToQAbstractSlider
+
+actionTriggeredSignal :: (QAbstractSliderPtr object) => QtahSignal.Signal object (M170.QAbstractSliderAction -> HoppyP.IO ())
+actionTriggeredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQAbstractSliderAction_new fn'
+    listenerQAbstractSliderAction_connectListener listener' object' "2actionTriggered(QAbstractSlider::SliderAction)"
+  , 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 fn'
+    listenerIntInt_connectListener listener' object' "2rangeChanged(int,int)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2sliderMoved(int)"
+  , QtahSignal.internalName = "QAbstractSlider::sliderMoved (ListenerInt)"
+  }
+
+sliderPressedSignal :: (QAbstractSliderPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+sliderPressedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2sliderPressed()"
+  , QtahSignal.internalName = "QAbstractSlider::sliderPressed (Listener)"
+  }
+
+sliderReleasedSignal :: (QAbstractSliderPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+sliderReleasedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2sliderReleased()"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2valueChanged(int)"
+  , 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,81 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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,
+  fromQAbstractSpinBoxStepEnabled,
+  IsQAbstractSpinBoxStepEnabled (..),
+  stepNone,
+  stepUpEnabled,
+  stepDownEnabled,
+  ) where
+
+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
+
+
+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 fn'
+    listener_connectListener listener' object' "2editingFinished()"
+  , 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,112 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QAction (
+  QActionValue (..),
+  QActionConstPtr (..),
+  QActionPtr (..),
+  QActionConst,
+  QAction,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithText,
+  actionGroup,
+  activate,
+  autoRepeat,
+  hover,
+  iconText,
+  isCheckable,
+  isChecked,
+  isEnabled,
+  isIconVisibleInMenu,
+  isSeparator,
+  isVisible,
+  menu,
+  menuRole,
+  parentWidget,
+  priority,
+  setActionGroup,
+  setAutoRepeat,
+  setCheckable,
+  setChecked,
+  setDisabled,
+  setEnabled,
+  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 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
+
+
+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 fn'
+    listener_connectListener listener' object' "2changed()"
+  , QtahSignal.internalName = "QAction::changed (Listener)"
+  }
+
+hoveredSignal :: (QActionPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+hoveredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2hovered()"
+  , 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 fn'
+    listenerBool_connectListener listener' object' "2toggled(bool)"
+  , 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 fn'
+    listenerBool_connectListener listener' object' "2triggered(bool)"
+  , 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,63 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  checkedAction,
+  isEnabled,
+  isExclusive,
+  isVisible,
+  removeAction,
+  setDisabled,
+  setEnabled,
+  setExclusive,
+  setVisible,
+  hoveredSignal,
+  triggeredSignal,
+  ) where
+
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M174
+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
+
+
+castConst = toQActionGroupConst
+cast = toQActionGroup
+downCastConst = downToQActionGroupConst
+downCast = downToQActionGroup
+
+hoveredSignal :: (QActionGroupPtr object) => QtahSignal.Signal object (M174.QAction -> HoppyP.IO ())
+hoveredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAction_new fn'
+    listenerPtrQAction_connectListener listener' object' "2hovered(QAction*)"
+  , QtahSignal.internalName = "QActionGroup::hovered (ListenerPtrQAction)"
+  }
+
+triggeredSignal :: (QActionGroupPtr object) => QtahSignal.Signal object (M174.QAction -> HoppyP.IO ())
+triggeredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAction_new fn'
+    listenerPtrQAction_connectListener listener' object' "2triggered(QAction*)"
+  , 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,126 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  focusWidget,
+  globalStrut,
+  isLeftToRight,
+  isRightToLeft,
+  isSessionRestored,
+  keyboardInputInterval,
+  layoutDirection,
+  new,
+  quitOnLastWindowClosed,
+  restoreOverrideCursor,
+  sessionId,
+  sessionKey,
+  setActiveWindow,
+  setAutoSipEnabled,
+  setColorSpec,
+  setCursorFlashTime,
+  setDesktopSettingsAware,
+  setDoubleClickInterval,
+  setGlobalStrut,
+  setKeyboardInputInterval,
+  setLayoutDirection,
+  setQuitOnLastWindowClosed,
+  setStartDragDistance,
+  setStartDragTime,
+  setStyleSheet,
+  setWheelScrollLines,
+  startDragDistance,
+  startDragTime,
+  styleSheet,
+  topLevelAtPoint,
+  topLevelAtRaw,
+  wheelScrollLines,
+  widgetAtPoint,
+  widgetAtRaw,
+  aboutToReleaseGpuResourcesSignal,
+  aboutToUseGpuResourcesSignal,
+  focusChangedSignal,
+  fontDatabaseChangedSignal,
+  lastWindowClosedSignal,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QApplication
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude ()
+import qualified Prelude as HoppyP
+
+
+castConst = toQApplicationConst
+cast = toQApplication
+downCastConst = downToQApplicationConst
+downCast = downToQApplication
+
+aboutToReleaseGpuResourcesSignal :: (QApplicationPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+aboutToReleaseGpuResourcesSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2aboutToReleaseGpuResources()"
+  , QtahSignal.internalName = "QApplication::aboutToReleaseGpuResources (Listener)"
+  }
+
+aboutToUseGpuResourcesSignal :: (QApplicationPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+aboutToUseGpuResourcesSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2aboutToUseGpuResources()"
+  , QtahSignal.internalName = "QApplication::aboutToUseGpuResources (Listener)"
+  }
+
+focusChangedSignal :: (QApplicationPtr object) => QtahSignal.Signal object (M280.QWidget -> M280.QWidget -> HoppyP.IO ())
+focusChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQWidgetPtrQWidget_new fn'
+    listenerPtrQWidgetPtrQWidget_connectListener listener' object' "2focusChanged(QWidget*,QWidget*)"
+  , QtahSignal.internalName = "QApplication::focusChanged (ListenerPtrQWidgetPtrQWidget)"
+  }
+
+fontDatabaseChangedSignal :: (QApplicationPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+fontDatabaseChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2fontDatabaseChanged()"
+  , QtahSignal.internalName = "QApplication::fontDatabaseChanged (Listener)"
+  }
+
+lastWindowClosedSignal :: (QApplicationPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+lastWindowClosedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2lastWindowClosed()"
+  , 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,56 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,118 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  exclusive,
+  id,
+  removeButton,
+  setExclusive,
+  setId,
+  buttonClickedSignal,
+  buttonClickedIdSignal,
+  buttonPressedSignal,
+  buttonPressedIdSignal,
+  buttonReleasedSignal,
+  buttonReleasedIdSignal,
+  buttonToggledSignal,
+  buttonToggledIdSignal,
+  ) where
+
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M162
+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
+
+
+castConst = toQButtonGroupConst
+cast = toQButtonGroup
+downCastConst = downToQButtonGroupConst
+downCast = downToQButtonGroup
+
+buttonClickedSignal :: (QButtonGroupPtr object) => QtahSignal.Signal object (M162.QAbstractButton -> HoppyP.IO ())
+buttonClickedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAbstractButton_new fn'
+    listenerPtrQAbstractButton_connectListener listener' object' "2buttonClicked(QAbstractButton*)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2buttonClickedId(int)"
+  , QtahSignal.internalName = "QButtonGroup::buttonClickedId (ListenerInt)"
+  }
+
+buttonPressedSignal :: (QButtonGroupPtr object) => QtahSignal.Signal object (M162.QAbstractButton -> HoppyP.IO ())
+buttonPressedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAbstractButton_new fn'
+    listenerPtrQAbstractButton_connectListener listener' object' "2buttonPressed(QAbstractButton*)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2buttonPressedId(int)"
+  , QtahSignal.internalName = "QButtonGroup::buttonPressedId (ListenerInt)"
+  }
+
+buttonReleasedSignal :: (QButtonGroupPtr object) => QtahSignal.Signal object (M162.QAbstractButton -> HoppyP.IO ())
+buttonReleasedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAbstractButton_new fn'
+    listenerPtrQAbstractButton_connectListener listener' object' "2buttonReleased(QAbstractButton*)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2buttonReleasedId(int)"
+  , QtahSignal.internalName = "QButtonGroup::buttonReleasedId (ListenerInt)"
+  }
+
+buttonToggledSignal :: (QButtonGroupPtr object) => QtahSignal.Signal object (M162.QAbstractButton -> HoppyP.Bool -> HoppyP.IO ())
+buttonToggledSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAbstractButtonBool_new fn'
+    listenerPtrQAbstractButtonBool_connectListener listener' object' "2buttonToggled(QAbstractButton*,bool)"
+  , 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 fn'
+    listenerIntBool_connectListener listener' object' "2buttonToggledId(int,bool)"
+  , QtahSignal.internalName = "QButtonGroup::buttonToggledId (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,37 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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/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,38 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,74 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  exec,
+  isModal,
+  isSizeGripEnabled,
+  open,
+  reject,
+  result,
+  setModal,
+  setResult,
+  setSizeGripEnabled,
+  acceptedSignal,
+  finishedSignal,
+  rejectedSignal,
+  QDialogDialogCode (..),
+  ) where
+
+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
+
+
+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 fn'
+    listener_connectListener listener' object' "2accepted()"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2finished(int)"
+  , QtahSignal.internalName = "QDialog::finished (ListenerInt)"
+  }
+
+rejectedSignal :: (QDialogPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+rejectedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2rejected()"
+  , 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,111 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  orientation,
+  removeButton,
+  setCenterButtons,
+  setOrientation,
+  setStandardButtons,
+  standardButton,
+  standardButtons,
+  acceptedSignal,
+  clickedSignal,
+  helpRequestedSignal,
+  rejectedSignal,
+  QDialogButtonBoxButtonLayout (..),
+  QDialogButtonBoxButtonRole (..),
+  QDialogButtonBoxStandardButton (..),
+  QDialogButtonBoxStandardButtons,
+  fromQDialogButtonBoxStandardButtons,
+  IsQDialogButtonBoxStandardButtons (..),
+  ok,
+  open,
+  save,
+  cancel,
+  close,
+  discard,
+  apply,
+  reset,
+  restoreDefaults,
+  help,
+  saveAll,
+  yes,
+  yesToAll,
+  no,
+  noToAll,
+  abort,
+  retry,
+  ignore,
+  noButton,
+  ) where
+
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M162
+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
+
+
+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 fn'
+    listener_connectListener listener' object' "2accepted()"
+  , QtahSignal.internalName = "QDialogButtonBox::accepted (Listener)"
+  }
+
+clickedSignal :: (QDialogButtonBoxPtr object) => QtahSignal.Signal object (M162.QAbstractButton -> HoppyP.IO ())
+clickedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAbstractButton_new fn'
+    listenerPtrQAbstractButton_connectListener listener' object' "2clicked(QAbstractButton*)"
+  , QtahSignal.internalName = "QDialogButtonBox::clicked (ListenerPtrQAbstractButton)"
+  }
+
+helpRequestedSignal :: (QDialogButtonBoxPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+helpRequestedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2helpRequested()"
+  , QtahSignal.internalName = "QDialogButtonBox::helpRequested (Listener)"
+  }
+
+rejectedSignal :: (QDialogButtonBoxPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+rejectedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2rejected()"
+  , QtahSignal.internalName = "QDialogButtonBox::rejected (Listener)"
+  }
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,71 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  maximum,
+  minimum,
+  prefix,
+  setDecimals,
+  setMaximum,
+  setMinimum,
+  setPrefix,
+  setRange,
+  setSingleStep,
+  setSuffix,
+  setValue,
+  singleStep,
+  suffix,
+  textFromValue,
+  value,
+  valueFromText,
+  valueChangedDoubleSignal,
+  valueChangedStringSignal,
+  ) where
+
+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 fn'
+    listenerDouble_connectListener listener' object' "2valueChanged(double)"
+  , 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 fn'
+    listenerQString_connectListener listener' object' "2valueChanged(QString)"
+  , 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,128 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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,
+  QFileDialogAcceptMode (..),
+  QFileDialogDialogLabel (..),
+  QFileDialogFileMode (..),
+  QFileDialogOption (..),
+  QFileDialogOptions,
+  fromQFileDialogOptions,
+  IsQFileDialogOptions (..),
+  showDirsOnly,
+  dontResolveSymlinks,
+  dontConfirmOverwrite,
+  dontUseSheet,
+  dontUseNativeDialog,
+  readOnly,
+  hideNameFilterDetails,
+  dontUseCustomDirectoryIcons,
+  QFileDialogViewMode (..),
+  currentChangedSignal,
+  directoryEnteredSignal,
+  fileSelectedSignal,
+  filterSelectedSignal,
+  ) where
+
+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 fn'
+    listenerQString_connectListener listener' object' "2currentChanged(QString)"
+  , 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 fn'
+    listenerQString_connectListener listener' object' "2directoryEntered(QString)"
+  , 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 fn'
+    listenerQString_connectListener listener' object' "2fileSelected(QString)"
+  , 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 fn'
+    listenerQString_connectListener listener' object' "2filterSelected(QString)"
+  , 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,73 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,47 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsEllipseItem.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsItem.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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,
+  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 (..),
+  QGraphicsItemPanelModality (..),
+  QGraphicsItemGraphicsItemFlags,
+  fromQGraphicsItemGraphicsItemFlags,
+  IsQGraphicsItemGraphicsItemFlags (..),
+  itemIsMovable,
+  itemIsSelectable,
+  itemIsFocusable,
+  itemClipsToShape,
+  itemClipsChildrenToShape,
+  itemIgnoresTransformations,
+  itemIgnoresParentOpacity,
+  itemDoesntPropagateOpacityToChildren,
+  itemStacksBehindParent,
+  itemUsesExtendedStyleOption,
+  itemHasNoContents,
+  itemSendsGeometryChanges,
+  itemAcceptsInputMethod,
+  itemNegativeZStacksBehindParent,
+  itemIsPanel,
+  itemSendsScenePositionChanges,
+  itemContainsChildrenInShape,
+  ) 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/QGraphicsPolygonItem.hs b/src/Graphics/UI/Qtah/Widgets/QGraphicsPolygonItem.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsPolygonItem.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsRectItem.hs
@@ -0,0 +1,33 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsScene.hs
@@ -0,0 +1,89 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  foregroundBrush,
+  hasFocus,
+  height,
+  invalidate,
+  isActive,
+  itemAtPointF,
+  itemAtRaw,
+  itemsBoundingRect,
+  minimumRenderSize,
+  mouseGrabberItem,
+  removeItem,
+  sceneRect,
+  selectionArea,
+  sendEvent,
+  setActivePanel,
+  setBackgroundBrush,
+  setBspTreeDepth,
+  setFocus,
+  setFocusAll,
+  setFocusItem,
+  setFocusItemAll,
+  setForegroundBrush,
+  setMinimumRenderSize,
+  setSceneRect,
+  setSceneRectRaw,
+  setSelectionArea,
+  setSelectionAreaTransform,
+  setStickyFocus,
+  stickyFocus,
+  update,
+  width,
+  QGraphicsSceneItemIndexMethod (..),
+  QGraphicsViewSceneLayer (..),
+  QGraphicsViewSceneLayers,
+  fromQGraphicsViewSceneLayers,
+  IsQGraphicsViewSceneLayers (..),
+  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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsSceneEvent.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsSceneMouseEvent.hs
@@ -0,0 +1,57 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsSceneWheelEvent.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsView.hs
@@ -0,0 +1,123 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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 (..),
+  QGraphicsViewDragMode (..),
+  QGraphicsViewOptimizationFlag (..),
+  QGraphicsViewViewportAnchor (..),
+  QGraphicsViewViewportUpdateMode (..),
+  QGraphicsViewCacheMode,
+  fromQGraphicsViewCacheMode,
+  IsQGraphicsViewCacheMode (..),
+  cacheNone,
+  cacheBackground,
+  QGraphicsViewOptimizationFlags,
+  fromQGraphicsViewOptimizationFlags,
+  IsQGraphicsViewOptimizationFlags (..),
+  dontClipPainter,
+  dontSavePainterState,
+  dontAdjustForAntialiasing,
+  indirectPainting,
+  ) 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,63 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,64 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  isCheckable,
+  isChecked,
+  isFlat,
+  setAlignment,
+  setCheckable,
+  setChecked,
+  setFlat,
+  setTitle,
+  title,
+  clickedSignal,
+  toggledSignal,
+  ) where
+
+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
+
+
+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 fn'
+    listenerBool_connectListener listener' object' "2clicked(bool)"
+  , 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 fn'
+    listenerBool_connectListener listener' object' "2toggled(bool)"
+  , 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,31 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,146 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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,
+  fromQInputDialogInputDialogOptions,
+  IsQInputDialogInputDialogOptions (..),
+  noButtons,
+  useListViewForComboBoxItems,
+  usePlainTextEditForTextInput,
+  QInputDialogInputMode (..),
+  ) where
+
+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 fn'
+    listenerDouble_connectListener listener' object' "2doubleValueChanged(double)"
+  , 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 fn'
+    listenerDouble_connectListener listener' object' "2doubleValueSelected(double)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2intValueChanged(int)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2intValueSelected(int)"
+  , 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 fn'
+    listenerQString_connectListener listener' object' "2textValueChanged(QString)"
+  , 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 fn'
+    listenerQString_connectListener listener' object' "2textValueSelected(QString)"
+  , QtahSignal.internalName = "QInputDialog::textValueSelected (ListenerQString)"
+  }
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,80 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  hasScaledContents,
+  hasSelectedText,
+  indent,
+  margin,
+  openExternalLinks,
+  selectedText,
+  selectionStart,
+  setAlignment,
+  setBuddy,
+  setDouble,
+  setIndent,
+  setInt,
+  setMargin,
+  setOpenExternalLinks,
+  setScaledContents,
+  setSelection,
+  setText,
+  setTextFormat,
+  setWordWrap,
+  text,
+  textFormat,
+  wordWrap,
+  linkActivatedSignal,
+  linkHoveredSignal,
+  ) where
+
+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 fn'
+    listenerQString_connectListener listener' object' "2linkActivated(QString)"
+  , 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 fn'
+    listenerQString_connectListener listener' object' "2linkHovered(QString)"
+  , 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,57 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,44 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,148 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  end,
+  hasAcceptableInput,
+  hasFrame,
+  hasSelectedText,
+  home,
+  inputMask,
+  insert,
+  isModified,
+  isReadOnly,
+  isRedoAvailable,
+  isUndoAvailable,
+  maxLength,
+  paste,
+  placeholderText,
+  redo,
+  selectAll,
+  selectedText,
+  selectionStart,
+  setAlignment,
+  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 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 fn'
+    listenerIntInt_connectListener listener' object' "2cursorPositionChanged(int,int)"
+  , QtahSignal.internalName = "QLineEdit::cursorPositionChanged (ListenerIntInt)"
+  }
+
+editingFinishedSignal :: (QLineEditPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+editingFinishedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2editingFinished()"
+  , QtahSignal.internalName = "QLineEdit::editingFinished (Listener)"
+  }
+
+returnPressedSignal :: (QLineEditPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+returnPressedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2returnPressed()"
+  , QtahSignal.internalName = "QLineEdit::returnPressed (Listener)"
+  }
+
+selectionChangedSignal :: (QLineEditPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+selectionChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2selectionChanged()"
+  , 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 fn'
+    listenerQString_connectListener listener' object' "2textEdited(QString)"
+  , 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 fn'
+    listenerQString_connectListener listener' object' "2textChanged(QString)"
+  , QtahSignal.internalName = "QLineEdit::textChanged (ListenerQString)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QListView.hs b/src/Graphics/UI/Qtah/Widgets/QListView.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QListView.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QListView (
+  QListViewValue (..),
+  QListViewConstPtr (..),
+  QListViewPtr (..),
+  QListViewConst,
+  QListView,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QListView
+import Prelude ()
+
+
+castConst = toQListViewConst
+cast = toQListView
+downCastConst = downToQListViewConst
+downCast = downToQListView
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,63 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  centralWidget,
+  createPopupMenu,
+  documentMode,
+  iconSize,
+  isAnimated,
+  isDockNestingEnabled,
+  menuBar,
+  menuWidget,
+  setAnimated,
+  setCentralWidget,
+  setDockNestingEnabled,
+  setDocumentMode,
+  setIconSize,
+  setMenuBar,
+  setMenuWidget,
+  setStatusBar,
+  setUnifiedTitleAndToolBarOnMac,
+  statusBar,
+  unifiedTitleAndToolBarOnMac,
+  iconSizeChangedSignal,
+  ) where
+
+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
+
+
+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 fn'
+    listenerQSize_connectListener listener' object' "2iconSizeChanged(QSize)"
+  , QtahSignal.internalName = "QMainWindow::iconSizeChanged (ListenerQSize)"
+  }
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,101 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  addNewMenu,
+  addSeparator,
+  clear,
+  defaultAction,
+  exec,
+  execAt,
+  hideTearOffMenu,
+  insertMenu,
+  insertSeparator,
+  isEmpty,
+  isTearOffEnabled,
+  isTearOffMenuVisible,
+  menuAction,
+  popup,
+  popupAction,
+  separatorsCollapsible,
+  setActiveAction,
+  setDefaultAction,
+  setSeparatorsCollapsible,
+  setTearOffEnabled,
+  setTitle,
+  title,
+  aboutToHideSignal,
+  aboutToShowSignal,
+  hoveredSignal,
+  triggeredSignal,
+  ) where
+
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M174
+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
+
+
+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 fn'
+    listener_connectListener listener' object' "2aboutToHide()"
+  , QtahSignal.internalName = "QMenu::aboutToHide (Listener)"
+  }
+
+aboutToShowSignal :: (QMenuPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+aboutToShowSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2aboutToShow()"
+  , QtahSignal.internalName = "QMenu::aboutToShow (Listener)"
+  }
+
+hoveredSignal :: (QMenuPtr object) => QtahSignal.Signal object (M174.QAction -> HoppyP.IO ())
+hoveredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAction_new fn'
+    listenerPtrQAction_connectListener listener' object' "2hovered(QAction*)"
+  , QtahSignal.internalName = "QMenu::hovered (ListenerPtrQAction)"
+  }
+
+triggeredSignal :: (QMenuPtr object) => QtahSignal.Signal object (M174.QAction -> HoppyP.IO ())
+triggeredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAction_new fn'
+    listenerPtrQAction_connectListener listener' object' "2triggered(QAction*)"
+  , 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,71 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  addSeparator,
+  clear,
+  cornerWidget,
+  insertMenu,
+  insertSeparator,
+  isDefaultUp,
+  isNativeMenuBar,
+  setActiveAction,
+  setCornerWidget,
+  setDefaultUp,
+  setNativeMenuBar,
+  hoveredSignal,
+  triggeredSignal,
+  ) where
+
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M174
+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
+
+
+castConst = toQMenuBarConst
+cast = toQMenuBar
+downCastConst = downToQMenuBarConst
+downCast = downToQMenuBar
+
+hoveredSignal :: (QMenuBarPtr object) => QtahSignal.Signal object (M174.QAction -> HoppyP.IO ())
+hoveredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAction_new fn'
+    listenerPtrQAction_connectListener listener' object' "2hovered(QAction*)"
+  , QtahSignal.internalName = "QMenuBar::hovered (ListenerPtrQAction)"
+  }
+
+triggeredSignal :: (QMenuBarPtr object) => QtahSignal.Signal object (M174.QAction -> HoppyP.IO ())
+triggeredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAction_new fn'
+    listenerPtrQAction_connectListener listener' object' "2triggered(QAction*)"
+  , 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,112 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  escapeButton,
+  icon,
+  information,
+  informationWithButtons,
+  informativeText,
+  question,
+  questionWithButtons,
+  removeButton,
+  setCheckBox,
+  setDefaultButton,
+  setDefaultButtonStandard,
+  setDetailedText,
+  setEscapeButton,
+  setEscapeButtonStandard,
+  setIcon,
+  setInformativeText,
+  setStandardButtons,
+  setText,
+  setTextFormat,
+  setTextInteractionFlags,
+  setWindowModality,
+  setWindowTitle,
+  standardButton,
+  standardButtons,
+  text,
+  textFormat,
+  textInteractionFlags,
+  warning,
+  warningWithButtons,
+  buttonClickedSignal,
+  QMessageBoxButtonRole (..),
+  QMessageBoxIcon (..),
+  QMessageBoxStandardButton (..),
+  QMessageBoxStandardButtons,
+  fromQMessageBoxStandardButtons,
+  IsQMessageBoxStandardButtons (..),
+  ok,
+  open,
+  save,
+  cancel,
+  close,
+  discard,
+  apply,
+  reset,
+  restoreDefaults,
+  help,
+  saveAll,
+  yes,
+  yesToAll,
+  no,
+  noToAll,
+  abort,
+  retry,
+  ignore,
+  noButton,
+  ) where
+
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M162
+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
+
+
+castConst = toQMessageBoxConst
+cast = toQMessageBox
+downCastConst = downToQMessageBoxConst
+downCast = downToQMessageBox
+
+buttonClickedSignal :: (QMessageBoxPtr object) => QtahSignal.Signal object (M162.QAbstractButton -> HoppyP.IO ())
+buttonClickedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAbstractButton_new fn'
+    listenerPtrQAbstractButton_connectListener listener' object' "2buttonClicked(QAbstractButton*)"
+  , QtahSignal.internalName = "QMessageBox::buttonClicked (ListenerPtrQAbstractButton)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QOpenGLWidget.hs b/src/Graphics/UI/Qtah/Widgets/QOpenGLWidget.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QOpenGLWidget.hs
@@ -0,0 +1,79 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  grabFramebuffer,
+  isValid,
+  makeCurrent,
+  setUpdateBehavior,
+  updateBehavior,
+  aboutToComposeSignal,
+  aboutToResizeSignal,
+  frameSwappedSignal,
+  resizedSignal,
+  QOpenGLWidgetUpdateBehavior (..),
+  ) where
+
+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
+
+
+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 fn'
+    listener_connectListener listener' object' "2aboutToCompose()"
+  , QtahSignal.internalName = "QOpenGLWidget::aboutToCompose (Listener)"
+  }
+
+aboutToResizeSignal :: (QOpenGLWidgetPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+aboutToResizeSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2aboutToResize()"
+  , QtahSignal.internalName = "QOpenGLWidget::aboutToResize (Listener)"
+  }
+
+frameSwappedSignal :: (QOpenGLWidgetPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+frameSwappedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2frameSwapped()"
+  , QtahSignal.internalName = "QOpenGLWidget::frameSwapped (Listener)"
+  }
+
+resizedSignal :: (QOpenGLWidgetPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+resizedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2resized()"
+  , 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,66 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  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 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
+
+
+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 fn'
+    listenerInt_connectListener listener' object' "2valueChanged(int)"
+  , 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,42 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QPushButton (
+  QPushButtonValue (..),
+  QPushButtonConstPtr (..),
+  QPushButtonPtr (..),
+  QPushButtonConst,
+  QPushButton,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  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,33 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,36 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,42 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,33 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,80 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  fromQSizePolicyControlTypes,
+  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 M258
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQSizePolicyConst
+cast = toQSizePolicy
+downCastConst = downToQSizePolicyConst
+downCast = downToQSizePolicy
+
+decode :: (QSizePolicyConstPtr this) => this -> QtahP.IO M258.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,38 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,34 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,69 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  maximum,
+  minimum,
+  prefix,
+  setDisplayIntegerBase,
+  setMaximum,
+  setMinimum,
+  setPrefix,
+  setRange,
+  setSingleStep,
+  setSuffix,
+  setValue,
+  singleStep,
+  suffix,
+  value,
+  valueChangedIntSignal,
+  valueChangedStringSignal,
+  ) where
+
+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 fn'
+    listenerInt_connectListener listener' object' "2valueChanged(int)"
+  , 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 fn'
+    listenerQString_connectListener listener' object' "2valueChanged(QString)"
+  , 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,64 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  handleWidth,
+  indexOf,
+  insertWidget,
+  isCollapsible,
+  opaqueResize,
+  orientation,
+  refresh,
+  setChildrenCollapsible,
+  setCollapsible,
+  setHandleWidth,
+  setOpaqueResize,
+  setOrientation,
+  setSizes,
+  setStretchFactor,
+  sizes,
+  widget,
+  splitterMovedSignal,
+  ) where
+
+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
+
+
+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 fn'
+    listenerIntInt_connectListener listener' object' "2splitterMoved(int,int)"
+  , 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,64 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  insertWidget,
+  setCurrentIndex,
+  setCurrentWidget,
+  setStackingMode,
+  stackingMode,
+  widget,
+  currentChangedSignal,
+  widgetRemovedSignal,
+  QStackedLayoutStackingMode (..),
+  ) where
+
+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
+
+
+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 fn'
+    listenerInt_connectListener listener' object' "2currentChanged(int)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2widgetRemoved(int)"
+  , 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,62 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  indexOf,
+  insertWidget,
+  removeWidget,
+  setCurrentIndex,
+  setCurrentWidget,
+  widget,
+  currentChangedSignal,
+  widgetRemovedSignal,
+  ) where
+
+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
+
+
+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 fn'
+    listenerInt_connectListener listener' object' "2currentChanged(int)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2widgetRemoved(int)"
+  , 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,59 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  insertPermanentWidget,
+  insertPermanentWidgetWithStretch,
+  insertWidget,
+  insertWidgetWithStretch,
+  isSizeGripEnabled,
+  removeWidget,
+  setSizeGripEnabled,
+  showMessage,
+  showMessageWithTimeout,
+  messageChangedSignal,
+  ) where
+
+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 fn'
+    listenerQString_connectListener listener' object' "2messageChanged(QString)"
+  , QtahSignal.internalName = "QStatusBar::messageChanged (ListenerQString)"
+  }
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,111 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  clear,
+  cornerWidget,
+  count,
+  currentIndex,
+  currentWidget,
+  documentMode,
+  elideMode,
+  iconSize,
+  indexOf,
+  insertTab,
+  isMovable,
+  isTabEnabled,
+  removeTab,
+  setCornerWidget,
+  setCurrentIndex,
+  setCurrentWidget,
+  setDocumentMode,
+  setElideMode,
+  setIconSize,
+  setMovable,
+  setTabBarAutoHide,
+  setTabEnabled,
+  setTabPosition,
+  setTabShape,
+  setTabText,
+  setTabToolTip,
+  setTabWhatsThis,
+  setTabsClosable,
+  setUsesScrollButtons,
+  tabBarAutoHide,
+  tabPosition,
+  tabShape,
+  tabText,
+  tabToolTip,
+  tabWhatsThis,
+  tabsClosable,
+  usesScrollButtons,
+  widget,
+  currentChangedSignal,
+  tabBarClickedSignal,
+  tabBarDoubleClickedSignal,
+  tabCloseRequestedSignal,
+  QTabWidgetTabPosition (..),
+  QTabWidgetTabShape (..),
+  ) where
+
+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
+
+
+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 fn'
+    listenerInt_connectListener listener' object' "2currentChanged(int)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2tabBarClicked(int)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2tabBarDoubleClicked(int)"
+  , 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 fn'
+    listenerInt_connectListener listener' object' "2tabCloseRequested(int)"
+  , 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,154 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  canPaste,
+  clear,
+  copy,
+  createStandardContextMenu,
+  createStandardContextMenuAt,
+  cursorRect,
+  cursorWidth,
+  cut,
+  documentTitle,
+  ensureCursorVisible,
+  find,
+  fontFamily,
+  fontItalic,
+  fontPointSize,
+  fontUnderline,
+  fontWeight,
+  insertHtml,
+  insertPlainText,
+  isReadOnly,
+  isUndoRedoEnabled,
+  lineWrapColumnOrWidth,
+  lineWrapMode,
+  overwriteMode,
+  paste,
+  redo,
+  scrollToAnchor,
+  selectAll,
+  setAcceptRichText,
+  setAlignment,
+  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 (..),
+  ) where
+
+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
+
+
+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 fn'
+    listenerBool_connectListener listener' object' "2copyAvailable(bool)"
+  , QtahSignal.internalName = "QTextEdit::copyAvailable (ListenerBool)"
+  }
+
+cursorPositionChangedSignal :: (QTextEditPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+cursorPositionChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2cursorPositionChanged()"
+  , 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 fn'
+    listenerBool_connectListener listener' object' "2redoAvailable(bool)"
+  , QtahSignal.internalName = "QTextEdit::redoAvailable (ListenerBool)"
+  }
+
+selectionChangedSignal :: (QTextEditPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+selectionChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2selectionChanged()"
+  , QtahSignal.internalName = "QTextEdit::selectionChanged (Listener)"
+  }
+
+textChangedSignal :: (QTextEditPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+textChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new fn'
+    listener_connectListener listener' object' "2textChanged()"
+  , 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 fn'
+    listenerBool_connectListener listener' object' "2undoAvailable(bool)"
+  , QtahSignal.internalName = "QTextEdit::undoAvailable (ListenerBool)"
+  }
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,31 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,209 @@
+{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+#if !MIN_VERSION_base(4,8,0)
+{-# LANGUAGE OverlappingInstances #-}
+#endif
+
+---------- 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,
+  baseSize,
+  childAtPoint,
+  childAtRaw,
+  childrenRect,
+  clearFocus,
+  clearMask,
+  close,
+  contentsMargins,
+  contentsRect,
+  ensurePolished,
+  focusProxy,
+  focusWidget,
+  font,
+  frameGeometry,
+  frameSize,
+  geometry,
+  grabKeyboard,
+  grabMouse,
+  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,
+  parentWidget,
+  pos,
+  previousInFocusChain,
+  raise,
+  rect,
+  releaseKeyboard,
+  releaseMouse,
+  removeAction,
+  repaint,
+  repaintRaw,
+  repaintRect,
+  resize,
+  resizeRaw,
+  scrollRaw,
+  scrollRect,
+  setAcceptDrops,
+  setAccessibleDescription,
+  setAccessibleName,
+  setAutoFillBackground,
+  setBaseSize,
+  setBaseSizeRaw,
+  setContentsMargins,
+  setContentsMarginsRaw,
+  setDisabled,
+  setEnabled,
+  setFixedHeight,
+  setFixedSize,
+  setFixedSizeRaw,
+  setFixedWidth,
+  setFocus,
+  setFocusProxy,
+  setFont,
+  setGeometryRaw,
+  setGeometryRect,
+  setHidden,
+  setLayout,
+  setLayoutDirection,
+  setMaximumHeight,
+  setMaximumSize,
+  setMaximumSizeRaw,
+  setMaximumWidth,
+  setMinimumHeight,
+  setMinimumSize,
+  setMinimumSizeRaw,
+  setMinimumWidth,
+  setMouseTracking,
+  setParent,
+  setParentWithFlags,
+  setSizeIncrement,
+  setSizeIncrementRaw,
+  setStatusTip,
+  setStyleSheet,
+  setTabOrder,
+  setToolTip,
+  setUpdatesEnabled,
+  setVisible,
+  setWhatsThis,
+  setWindowFilePath,
+  setWindowFlags,
+  setWindowIconText,
+  setWindowModality,
+  setWindowModified,
+  setWindowOpacity,
+  setWindowRole,
+  setWindowState,
+  setWindowTitle,
+  show,
+  showFullScreen,
+  showMaximized,
+  showMinimized,
+  showNormal,
+  size,
+  sizeHint,
+  sizeIncrement,
+  stackUnder,
+  statusTip,
+  styleSheet,
+  toolTip,
+  underMouse,
+  unsetCursor,
+  unsetLayoutDirection,
+  unsetLocale,
+  update,
+  updateGeometry,
+  updateRaw,
+  updateRect,
+  updatesEnabled,
+  whatsThis,
+  width,
+  window,
+  windowFilePath,
+  windowFlags,
+  windowIconText,
+  windowModality,
+  windowOpacity,
+  windowRole,
+  windowState,
+  windowTitle,
+  x,
+  y,
+  customContextMenuRequestedSignal,
+  ) where
+
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+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
+
+
+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 fn'
+    listenerQPoint_connectListener listener' object' "2customContextMenuRequested(QPoint)"
+  , QtahSignal.internalName = "QWidget::customContextMenuRequested (ListenerQPoint)"
+  }
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 2016 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2017 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
@@ -20,8 +20,7 @@
 module Graphics.UI.Qtah.EventTest (tests) where
 
 import Control.Concurrent.MVar (modifyMVar_, newMVar, readMVar)
-import Control.Monad (unless, when)
-import Foreign (alloca, peek, poke)
+import Control.Monad (when)
 import Foreign.Hoppy.Runtime (delete, withScopedPtr)
 import qualified Graphics.UI.Qtah.Core.QCoreApplication as QCoreApplication
 import qualified Graphics.UI.Qtah.Core.QEvent as QEvent
@@ -33,13 +32,12 @@
 tests :: QCoreApplication -> Test
 tests _ =
   TestList
-  [ "listener gets deleted when receiver is deleted" ~: alloca $ \deletedPtr -> do
-    poke deletedPtr 0
+  [ "listener gets deleted when receiver is deleted" ~: do
     receiver <- QObject.new
-    _ <- internalOnEvent receiver deletedPtr $ \_ _ -> return False
+    reg <- onAnyEvent receiver $ \_ _ -> return False
     delete receiver
-    deleted <- peek deletedPtr
-    unless (deleted == 1) $ assertFailure "Listener was not deleted."
+    live <- internalRegistrationIsLive reg
+    when live $ assertFailure "Listener was not deleted."
 
   , "unregister works" ~: withScopedPtr QObject.new $ \receiver -> do
     countVar <- newMVar 0
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 2016 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2017 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
