diff --git a/ChangeLog.md b/ChangeLog.md
new file mode 100644
--- /dev/null
+++ b/ChangeLog.md
@@ -0,0 +1,4 @@
+### 4.0.1
+
++ Initial release
+
diff --git a/Gtk.overrides b/Gtk.overrides
new file mode 100644
--- /dev/null
+++ b/Gtk.overrides
@@ -0,0 +1,10 @@
+C-docs-url Gtk https://developer.gnome.org/gtk4/stable
+
+# The introspection annotation marks the parameters as
+# (out caller-allocates), but it is just a pointer to a GValue.
+set-attr Gtk/TreeModelFilterModifyFunc/@parameters/value direction in
+set-attr Gtk/TreeModelFilterModifyFunc/@parameters/value caller-allocates 0
+
+# It is useful to expose these class structs when deriving new types
+set-attr Gtk/WidgetClass haskell-gi-force-visible 1
+set-attr Gtk/ContainerClass haskell-gi-force-visible 1
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,13 +1,13 @@
-The gi-gtk3 library and included works are provided under the terms of the
+The gi-gtk library and included works are provided under the terms of the
 GNU Library General Public License (LGPL) version 2.1 with the following
 exception:
 
-Static linking of applications or any other source to the gi-gtk3 library
+Static linking of applications or any other source to the gi-gtk library
 does not constitute a modified or derivative work and does not require
 the author(s) to provide source code for said work, to link against the
-shared gi-gtk3 libraries, or to link their applications against a
-user-supplied version of gi-gtk3. If you link applications to a modified
-version of gi-gtk3, then the changes to gi-gtk3 must be provided under the
+shared gi-gtk libraries, or to link their applications against a
+user-supplied version of gi-gtk. If you link applications to a modified
+version of gi-gtk, then the changes to gi-gtk must be provided under the
 terms of the LGPL.
 
 ----------------------------------------------------------------------------
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,2 +1,6 @@
-# Information
-This is a compatibility package. For newer projects we recommend that you use [gi-gtk3](/package/gi-gtk3) instead.
+# Documentation
+Autogenerated documentation for this package can be found at
+
+[https://hackage.haskell.org/package/gi-gtk-4.0.1/docs/GI-Gtk.html](https://hackage.haskell.org/package/gi-gtk-4.0.1/docs/GI-Gtk.html)
+
+For general documentation on using [haskell-gi](https://github.com/haskell-gi/haskell-gi) based bindings, see [the project page](https://github.com/haskell-gi/haskell-gi) or [the Wiki](https://github.com/haskell-gi/haskell-gi/wiki).
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,5 +1,24 @@
-import Data.GI.CodeGen.CabalHooks (setupCompatWrapper)
-import qualified GI.Gtk.Config as Cfg
+{-# LANGUAGE OverloadedStrings #-}
 
+import Data.GI.CodeGen.CabalHooks (setupBinding, TaggedOverride(..))
+
+import qualified GI.Atk.Config as Atk
+import qualified GI.GLib.Config as GLib
+import qualified GI.GObject.Config as GObject
+import qualified GI.Gdk.Config as Gdk
+import qualified GI.GdkPixbuf.Config as GdkPixbuf
+import qualified GI.Gio.Config as Gio
+import qualified GI.Graphene.Config as Graphene
+import qualified GI.Gsk.Config as Gsk
+import qualified GI.Pango.Config as Pango
+import qualified GI.Cairo.Config as Cairo
+
+
 main :: IO ()
-main = setupCompatWrapper "gi-gtk3" Cfg.modules
+main = setupBinding name version verbose overridesFile inheritedOverrides outputDir
+  where name = "Gtk"
+        version = "4.0"
+        overridesFile = Just "Gtk.overrides"
+        verbose = False
+        outputDir = Nothing
+        inheritedOverrides = [TaggedOverride "inherited:Atk" Atk.overrides, TaggedOverride "inherited:GLib" GLib.overrides, TaggedOverride "inherited:GObject" GObject.overrides, TaggedOverride "inherited:Gdk" Gdk.overrides, TaggedOverride "inherited:GdkPixbuf" GdkPixbuf.overrides, TaggedOverride "inherited:Gio" Gio.overrides, TaggedOverride "inherited:Graphene" Graphene.overrides, TaggedOverride "inherited:Gsk" Gsk.overrides, TaggedOverride "inherited:Pango" Pango.overrides, TaggedOverride "inherited:Cairo" Cairo.overrides]
diff --git a/gi-gtk.cabal b/gi-gtk.cabal
--- a/gi-gtk.cabal
+++ b/gi-gtk.cabal
@@ -1,29 +1,680 @@
-name:           gi-gtk
-version:        3.0.44
-synopsis:       Gtk 3.x bindings (compatibility layer)
-description:    This package re-exports (for backward compatibility)
-                the haskell-gi generated bindings in the gi-gtk3 package.
-homepage:       https://github.com/haskell-gi/haskell-gi
-license:        LGPL-2.1
-license-file:   LICENSE
-author:         Iñaki García Etxebarria
-maintainer:     Iñaki García Etxebarria
-category:       Bindings
-build-type:     Custom
-cabal-version:  2.0
+name:                 gi-gtk
+version:              4.0.1
+synopsis:             Gtk bindings
+description:          Bindings for Gtk, autogenerated by haskell-gi.
+homepage:             https://github.com/haskell-gi/haskell-gi
+license:              LGPL-2.1
+license-file:         LICENSE
+author:               Will Thompson, Iñaki García Etxebarria and Jonas Platte
+maintainer:           Iñaki García Etxebarria
+category:             Bindings
+build-type:           Custom
+cabal-version:        1.24
 
-extra-source-files: README.md
+extra-source-files: README.md ChangeLog.md stack.yaml Gtk.overrides
 
 custom-setup
- setup-depends:
-   base >= 4.11 && <5,
-   haskell-gi ^>= 0.26.14,
-   gi-gtk3 ^>= 3.0.44
+      setup-depends: base >= 4.9 && < 5,
+                     Cabal >= 1.24,
+                     haskell-gi >= 0.23 && < 0.24,
+                     gi-cairo == 1.0.*,
+                     gi-pango == 1.0.*,
+                     gi-gio == 2.0.*,
+                     gi-gdk == 4.0.*,
+                     gi-gdkpixbuf == 2.0.*,
+                     gi-graphene == 1.0.*,
+                     gi-gsk == 4.0.*,
+                     gi-gobject == 2.0.*,
+                     gi-glib == 2.0.*,
+                     gi-atk == 2.0.*
 
 library
-    ghc-options: -Wall
+      default-language: Haskell2010
+      default-extensions: NoImplicitPrelude, ScopedTypeVariables, CPP, OverloadedStrings, NegativeLiterals, ConstraintKinds, TypeFamilies, MultiParamTypeClasses, KindSignatures, FlexibleInstances, UndecidableInstances, DataKinds, FlexibleContexts, UndecidableSuperClasses
+      other-extensions: PatternSynonyms, ViewPatterns, TypeApplications
+      ghc-options: -fno-warn-unused-imports -fno-warn-warnings-deprecations
 
-    build-depends: base >= 4.11 && <5,
-                   gi-gtk3 ^>= 3.0.44
+      pkgconfig-depends: gtk4
+      build-depends: base >= 4.9 && <5,
+                     haskell-gi-base >= 0.23 && < 0.24,
+                     haskell-gi >= 0.23.0 && < 0.24,
+                     haskell-gi-overloading < 1.1,
+                     gi-cairo == 1.0.*,
+                     gi-pango == 1.0.*,
+                     gi-gio == 2.0.*,
+                     gi-gdk == 4.0.*,
+                     gi-gdkpixbuf == 2.0.*,
+                     gi-graphene == 1.0.*,
+                     gi-gsk == 4.0.*,
+                     gi-gobject == 2.0.*,
+                     gi-glib == 2.0.*,
+                     gi-atk == 2.0.*,
+                     bytestring >= 0.10 && < 1,
+                     containers >= 0.5 && < 1,
+                     text >= 1.0 && < 2,
+                     transformers >= 0.4 && < 1
 
-    default-language: Haskell2010
+      -- Disable overloading when compiling under GHC 8.2.x
+      -- see https://ghc.haskell.org/trac/ghc/ticket/14382
+      if impl(ghc == 8.2.*)
+              build-depends: haskell-gi-overloading == 0.0
+
+      -- Note that the following list of exposed modules and autogen
+      -- modules is for documentation purposes only, so that some
+      -- documentation appears in hackage. The actual list of modules
+      -- to be built will be built at configure time, based on the
+      -- available introspection data.
+
+      exposed-modules: GI.Gtk.Config,
+                       GI.Gtk,
+                       GI.Gtk.Callbacks,
+                       GI.Gtk.Constants,
+                       GI.Gtk.Enums,
+                       GI.Gtk.Flags,
+                       GI.Gtk.Functions,
+                       GI.Gtk.Interfaces,
+                       GI.Gtk.Interfaces.Actionable,
+                       GI.Gtk.Interfaces.AppChooser,
+                       GI.Gtk.Interfaces.Buildable,
+                       GI.Gtk.Interfaces.CellAccessibleParent,
+                       GI.Gtk.Interfaces.CellEditable,
+                       GI.Gtk.Interfaces.CellLayout,
+                       GI.Gtk.Interfaces.ColorChooser,
+                       GI.Gtk.Interfaces.Editable,
+                       GI.Gtk.Interfaces.FileChooser,
+                       GI.Gtk.Interfaces.FontChooser,
+                       GI.Gtk.Interfaces.Orientable,
+                       GI.Gtk.Interfaces.PrintOperationPreview,
+                       GI.Gtk.Interfaces.Root,
+                       GI.Gtk.Interfaces.Scrollable,
+                       GI.Gtk.Interfaces.SelectionModel,
+                       GI.Gtk.Interfaces.StyleProvider,
+                       GI.Gtk.Interfaces.ToolShell,
+                       GI.Gtk.Interfaces.TreeDragDest,
+                       GI.Gtk.Interfaces.TreeDragSource,
+                       GI.Gtk.Interfaces.TreeModel,
+                       GI.Gtk.Interfaces.TreeSortable,
+                       GI.Gtk.Objects,
+                       GI.Gtk.Objects.AboutDialog,
+                       GI.Gtk.Objects.AccelGroup,
+                       GI.Gtk.Objects.AccelLabel,
+                       GI.Gtk.Objects.AccelMap,
+                       GI.Gtk.Objects.Accessible,
+                       GI.Gtk.Objects.ActionBar,
+                       GI.Gtk.Objects.Adjustment,
+                       GI.Gtk.Objects.AppChooserButton,
+                       GI.Gtk.Objects.AppChooserDialog,
+                       GI.Gtk.Objects.AppChooserWidget,
+                       GI.Gtk.Objects.Application,
+                       GI.Gtk.Objects.ApplicationWindow,
+                       GI.Gtk.Objects.AspectFrame,
+                       GI.Gtk.Objects.Assistant,
+                       GI.Gtk.Objects.AssistantPage,
+                       GI.Gtk.Objects.Bin,
+                       GI.Gtk.Objects.BinLayout,
+                       GI.Gtk.Objects.BooleanCellAccessible,
+                       GI.Gtk.Objects.Box,
+                       GI.Gtk.Objects.BoxLayout,
+                       GI.Gtk.Objects.Builder,
+                       GI.Gtk.Objects.Button,
+                       GI.Gtk.Objects.ButtonAccessible,
+                       GI.Gtk.Objects.Calendar,
+                       GI.Gtk.Objects.CellAccessible,
+                       GI.Gtk.Objects.CellArea,
+                       GI.Gtk.Objects.CellAreaBox,
+                       GI.Gtk.Objects.CellAreaContext,
+                       GI.Gtk.Objects.CellRenderer,
+                       GI.Gtk.Objects.CellRendererAccel,
+                       GI.Gtk.Objects.CellRendererCombo,
+                       GI.Gtk.Objects.CellRendererPixbuf,
+                       GI.Gtk.Objects.CellRendererProgress,
+                       GI.Gtk.Objects.CellRendererSpin,
+                       GI.Gtk.Objects.CellRendererSpinner,
+                       GI.Gtk.Objects.CellRendererText,
+                       GI.Gtk.Objects.CellRendererToggle,
+                       GI.Gtk.Objects.CellView,
+                       GI.Gtk.Objects.CenterBox,
+                       GI.Gtk.Objects.CheckButton,
+                       GI.Gtk.Objects.CheckMenuItem,
+                       GI.Gtk.Objects.CheckMenuItemAccessible,
+                       GI.Gtk.Objects.ColorButton,
+                       GI.Gtk.Objects.ColorChooserDialog,
+                       GI.Gtk.Objects.ColorChooserWidget,
+                       GI.Gtk.Objects.ComboBox,
+                       GI.Gtk.Objects.ComboBoxAccessible,
+                       GI.Gtk.Objects.ComboBoxText,
+                       GI.Gtk.Objects.Container,
+                       GI.Gtk.Objects.ContainerAccessible,
+                       GI.Gtk.Objects.ContainerCellAccessible,
+                       GI.Gtk.Objects.CssProvider,
+                       GI.Gtk.Objects.CustomLayout,
+                       GI.Gtk.Objects.Dialog,
+                       GI.Gtk.Objects.DrawingArea,
+                       GI.Gtk.Objects.Entry,
+                       GI.Gtk.Objects.EntryAccessible,
+                       GI.Gtk.Objects.EntryBuffer,
+                       GI.Gtk.Objects.EntryCompletion,
+                       GI.Gtk.Objects.EntryIconAccessible,
+                       GI.Gtk.Objects.EventController,
+                       GI.Gtk.Objects.EventControllerKey,
+                       GI.Gtk.Objects.EventControllerLegacy,
+                       GI.Gtk.Objects.EventControllerMotion,
+                       GI.Gtk.Objects.EventControllerScroll,
+                       GI.Gtk.Objects.Expander,
+                       GI.Gtk.Objects.ExpanderAccessible,
+                       GI.Gtk.Objects.FileChooserButton,
+                       GI.Gtk.Objects.FileChooserDialog,
+                       GI.Gtk.Objects.FileChooserNative,
+                       GI.Gtk.Objects.FileChooserWidget,
+                       GI.Gtk.Objects.FileFilter,
+                       GI.Gtk.Objects.FilterListModel,
+                       GI.Gtk.Objects.Fixed,
+                       GI.Gtk.Objects.FixedLayout,
+                       GI.Gtk.Objects.FixedLayoutChild,
+                       GI.Gtk.Objects.FlattenListModel,
+                       GI.Gtk.Objects.FlowBox,
+                       GI.Gtk.Objects.FlowBoxAccessible,
+                       GI.Gtk.Objects.FlowBoxChild,
+                       GI.Gtk.Objects.FlowBoxChildAccessible,
+                       GI.Gtk.Objects.FontButton,
+                       GI.Gtk.Objects.FontChooserDialog,
+                       GI.Gtk.Objects.FontChooserWidget,
+                       GI.Gtk.Objects.Frame,
+                       GI.Gtk.Objects.FrameAccessible,
+                       GI.Gtk.Objects.GLArea,
+                       GI.Gtk.Objects.Gesture,
+                       GI.Gtk.Objects.GestureDrag,
+                       GI.Gtk.Objects.GestureLongPress,
+                       GI.Gtk.Objects.GestureMultiPress,
+                       GI.Gtk.Objects.GesturePan,
+                       GI.Gtk.Objects.GestureRotate,
+                       GI.Gtk.Objects.GestureSingle,
+                       GI.Gtk.Objects.GestureStylus,
+                       GI.Gtk.Objects.GestureSwipe,
+                       GI.Gtk.Objects.GestureZoom,
+                       GI.Gtk.Objects.Grid,
+                       GI.Gtk.Objects.GridLayout,
+                       GI.Gtk.Objects.GridLayoutChild,
+                       GI.Gtk.Objects.HeaderBar,
+                       GI.Gtk.Objects.IMContext,
+                       GI.Gtk.Objects.IMContextSimple,
+                       GI.Gtk.Objects.IMMulticontext,
+                       GI.Gtk.Objects.IconInfo,
+                       GI.Gtk.Objects.IconTheme,
+                       GI.Gtk.Objects.IconView,
+                       GI.Gtk.Objects.IconViewAccessible,
+                       GI.Gtk.Objects.Image,
+                       GI.Gtk.Objects.ImageAccessible,
+                       GI.Gtk.Objects.ImageCellAccessible,
+                       GI.Gtk.Objects.InfoBar,
+                       GI.Gtk.Objects.Label,
+                       GI.Gtk.Objects.LabelAccessible,
+                       GI.Gtk.Objects.LayoutChild,
+                       GI.Gtk.Objects.LayoutManager,
+                       GI.Gtk.Objects.LevelBar,
+                       GI.Gtk.Objects.LevelBarAccessible,
+                       GI.Gtk.Objects.LinkButton,
+                       GI.Gtk.Objects.LinkButtonAccessible,
+                       GI.Gtk.Objects.ListBox,
+                       GI.Gtk.Objects.ListBoxAccessible,
+                       GI.Gtk.Objects.ListBoxRow,
+                       GI.Gtk.Objects.ListBoxRowAccessible,
+                       GI.Gtk.Objects.ListStore,
+                       GI.Gtk.Objects.LockButton,
+                       GI.Gtk.Objects.LockButtonAccessible,
+                       GI.Gtk.Objects.MapListModel,
+                       GI.Gtk.Objects.MediaControls,
+                       GI.Gtk.Objects.MediaFile,
+                       GI.Gtk.Objects.MediaStream,
+                       GI.Gtk.Objects.Menu,
+                       GI.Gtk.Objects.MenuAccessible,
+                       GI.Gtk.Objects.MenuBar,
+                       GI.Gtk.Objects.MenuButton,
+                       GI.Gtk.Objects.MenuButtonAccessible,
+                       GI.Gtk.Objects.MenuItem,
+                       GI.Gtk.Objects.MenuItemAccessible,
+                       GI.Gtk.Objects.MenuShell,
+                       GI.Gtk.Objects.MenuShellAccessible,
+                       GI.Gtk.Objects.MenuToolButton,
+                       GI.Gtk.Objects.MessageDialog,
+                       GI.Gtk.Objects.ModelButton,
+                       GI.Gtk.Objects.MountOperation,
+                       GI.Gtk.Objects.NativeDialog,
+                       GI.Gtk.Objects.Notebook,
+                       GI.Gtk.Objects.NotebookAccessible,
+                       GI.Gtk.Objects.NotebookPage,
+                       GI.Gtk.Objects.NotebookPageAccessible,
+                       GI.Gtk.Objects.Overlay,
+                       GI.Gtk.Objects.PadController,
+                       GI.Gtk.Objects.PageSetup,
+                       GI.Gtk.Objects.Paned,
+                       GI.Gtk.Objects.PanedAccessible,
+                       GI.Gtk.Objects.PasswordEntry,
+                       GI.Gtk.Objects.Picture,
+                       GI.Gtk.Objects.Popover,
+                       GI.Gtk.Objects.PopoverAccessible,
+                       GI.Gtk.Objects.PopoverMenu,
+                       GI.Gtk.Objects.PrintContext,
+                       GI.Gtk.Objects.PrintOperation,
+                       GI.Gtk.Objects.PrintSettings,
+                       GI.Gtk.Objects.ProgressBar,
+                       GI.Gtk.Objects.ProgressBarAccessible,
+                       GI.Gtk.Objects.RadioButton,
+                       GI.Gtk.Objects.RadioButtonAccessible,
+                       GI.Gtk.Objects.RadioMenuItem,
+                       GI.Gtk.Objects.RadioMenuItemAccessible,
+                       GI.Gtk.Objects.RadioToolButton,
+                       GI.Gtk.Objects.Range,
+                       GI.Gtk.Objects.RangeAccessible,
+                       GI.Gtk.Objects.RecentManager,
+                       GI.Gtk.Objects.RendererCellAccessible,
+                       GI.Gtk.Objects.Revealer,
+                       GI.Gtk.Objects.Scale,
+                       GI.Gtk.Objects.ScaleAccessible,
+                       GI.Gtk.Objects.ScaleButton,
+                       GI.Gtk.Objects.ScaleButtonAccessible,
+                       GI.Gtk.Objects.Scrollbar,
+                       GI.Gtk.Objects.ScrolledWindow,
+                       GI.Gtk.Objects.ScrolledWindowAccessible,
+                       GI.Gtk.Objects.SearchBar,
+                       GI.Gtk.Objects.SearchEntry,
+                       GI.Gtk.Objects.Separator,
+                       GI.Gtk.Objects.SeparatorMenuItem,
+                       GI.Gtk.Objects.SeparatorToolItem,
+                       GI.Gtk.Objects.Settings,
+                       GI.Gtk.Objects.ShortcutLabel,
+                       GI.Gtk.Objects.ShortcutsGroup,
+                       GI.Gtk.Objects.ShortcutsSection,
+                       GI.Gtk.Objects.ShortcutsShortcut,
+                       GI.Gtk.Objects.ShortcutsWindow,
+                       GI.Gtk.Objects.SingleSelection,
+                       GI.Gtk.Objects.SizeGroup,
+                       GI.Gtk.Objects.SliceListModel,
+                       GI.Gtk.Objects.Snapshot,
+                       GI.Gtk.Objects.SortListModel,
+                       GI.Gtk.Objects.SpinButton,
+                       GI.Gtk.Objects.SpinButtonAccessible,
+                       GI.Gtk.Objects.Spinner,
+                       GI.Gtk.Objects.SpinnerAccessible,
+                       GI.Gtk.Objects.Stack,
+                       GI.Gtk.Objects.StackAccessible,
+                       GI.Gtk.Objects.StackPage,
+                       GI.Gtk.Objects.StackSidebar,
+                       GI.Gtk.Objects.StackSwitcher,
+                       GI.Gtk.Objects.Statusbar,
+                       GI.Gtk.Objects.StatusbarAccessible,
+                       GI.Gtk.Objects.StyleContext,
+                       GI.Gtk.Objects.Switch,
+                       GI.Gtk.Objects.SwitchAccessible,
+                       GI.Gtk.Objects.Text,
+                       GI.Gtk.Objects.TextAccessible,
+                       GI.Gtk.Objects.TextBuffer,
+                       GI.Gtk.Objects.TextCellAccessible,
+                       GI.Gtk.Objects.TextChildAnchor,
+                       GI.Gtk.Objects.TextMark,
+                       GI.Gtk.Objects.TextTag,
+                       GI.Gtk.Objects.TextTagTable,
+                       GI.Gtk.Objects.TextView,
+                       GI.Gtk.Objects.TextViewAccessible,
+                       GI.Gtk.Objects.ToggleButton,
+                       GI.Gtk.Objects.ToggleButtonAccessible,
+                       GI.Gtk.Objects.ToggleToolButton,
+                       GI.Gtk.Objects.ToolButton,
+                       GI.Gtk.Objects.ToolItem,
+                       GI.Gtk.Objects.Toolbar,
+                       GI.Gtk.Objects.Tooltip,
+                       GI.Gtk.Objects.ToplevelAccessible,
+                       GI.Gtk.Objects.TreeListModel,
+                       GI.Gtk.Objects.TreeListRow,
+                       GI.Gtk.Objects.TreeModelFilter,
+                       GI.Gtk.Objects.TreeModelSort,
+                       GI.Gtk.Objects.TreeSelection,
+                       GI.Gtk.Objects.TreeStore,
+                       GI.Gtk.Objects.TreeView,
+                       GI.Gtk.Objects.TreeViewAccessible,
+                       GI.Gtk.Objects.TreeViewColumn,
+                       GI.Gtk.Objects.Video,
+                       GI.Gtk.Objects.Viewport,
+                       GI.Gtk.Objects.VolumeButton,
+                       GI.Gtk.Objects.Widget,
+                       GI.Gtk.Objects.WidgetAccessible,
+                       GI.Gtk.Objects.WidgetPaintable,
+                       GI.Gtk.Objects.Window,
+                       GI.Gtk.Objects.WindowAccessible,
+                       GI.Gtk.Objects.WindowGroup,
+                       GI.Gtk.Structs,
+                       GI.Gtk.Structs.AccelGroupEntry,
+                       GI.Gtk.Structs.AccelKey,
+                       GI.Gtk.Structs.BindingArg,
+                       GI.Gtk.Structs.BindingEntry,
+                       GI.Gtk.Structs.BindingSet,
+                       GI.Gtk.Structs.BindingSignal,
+                       GI.Gtk.Structs.Border,
+                       GI.Gtk.Structs.Clipboard,
+                       GI.Gtk.Structs.ContainerClass,
+                       GI.Gtk.Structs.FileFilterInfo,
+                       GI.Gtk.Structs.LabelSelectionInfo,
+                       GI.Gtk.Structs.PadActionEntry,
+                       GI.Gtk.Structs.PageRange,
+                       GI.Gtk.Structs.PaperSize,
+                       GI.Gtk.Structs.RecentData,
+                       GI.Gtk.Structs.RecentInfo,
+                       GI.Gtk.Structs.RequestedSize,
+                       GI.Gtk.Structs.Requisition,
+                       GI.Gtk.Structs.SelectionData,
+                       GI.Gtk.Structs.SettingsValue,
+                       GI.Gtk.Structs.TextBTree,
+                       GI.Gtk.Structs.TextIter,
+                       GI.Gtk.Structs.TreeIter,
+                       GI.Gtk.Structs.TreePath,
+                       GI.Gtk.Structs.TreeRowReference,
+                       GI.Gtk.Structs.WidgetClass,
+                       GI.Gtk.Structs.WidgetPath,
+                       GI.Gtk.Structs.WindowGeometryInfo
+
+      autogen-modules: GI.Gtk.Config,
+                       GI.Gtk,
+                       GI.Gtk.Callbacks,
+                       GI.Gtk.Constants,
+                       GI.Gtk.Enums,
+                       GI.Gtk.Flags,
+                       GI.Gtk.Functions,
+                       GI.Gtk.Interfaces,
+                       GI.Gtk.Interfaces.Actionable,
+                       GI.Gtk.Interfaces.AppChooser,
+                       GI.Gtk.Interfaces.Buildable,
+                       GI.Gtk.Interfaces.CellAccessibleParent,
+                       GI.Gtk.Interfaces.CellEditable,
+                       GI.Gtk.Interfaces.CellLayout,
+                       GI.Gtk.Interfaces.ColorChooser,
+                       GI.Gtk.Interfaces.Editable,
+                       GI.Gtk.Interfaces.FileChooser,
+                       GI.Gtk.Interfaces.FontChooser,
+                       GI.Gtk.Interfaces.Orientable,
+                       GI.Gtk.Interfaces.PrintOperationPreview,
+                       GI.Gtk.Interfaces.Root,
+                       GI.Gtk.Interfaces.Scrollable,
+                       GI.Gtk.Interfaces.SelectionModel,
+                       GI.Gtk.Interfaces.StyleProvider,
+                       GI.Gtk.Interfaces.ToolShell,
+                       GI.Gtk.Interfaces.TreeDragDest,
+                       GI.Gtk.Interfaces.TreeDragSource,
+                       GI.Gtk.Interfaces.TreeModel,
+                       GI.Gtk.Interfaces.TreeSortable,
+                       GI.Gtk.Objects,
+                       GI.Gtk.Objects.AboutDialog,
+                       GI.Gtk.Objects.AccelGroup,
+                       GI.Gtk.Objects.AccelLabel,
+                       GI.Gtk.Objects.AccelMap,
+                       GI.Gtk.Objects.Accessible,
+                       GI.Gtk.Objects.ActionBar,
+                       GI.Gtk.Objects.Adjustment,
+                       GI.Gtk.Objects.AppChooserButton,
+                       GI.Gtk.Objects.AppChooserDialog,
+                       GI.Gtk.Objects.AppChooserWidget,
+                       GI.Gtk.Objects.Application,
+                       GI.Gtk.Objects.ApplicationWindow,
+                       GI.Gtk.Objects.AspectFrame,
+                       GI.Gtk.Objects.Assistant,
+                       GI.Gtk.Objects.AssistantPage,
+                       GI.Gtk.Objects.Bin,
+                       GI.Gtk.Objects.BinLayout,
+                       GI.Gtk.Objects.BooleanCellAccessible,
+                       GI.Gtk.Objects.Box,
+                       GI.Gtk.Objects.BoxLayout,
+                       GI.Gtk.Objects.Builder,
+                       GI.Gtk.Objects.Button,
+                       GI.Gtk.Objects.ButtonAccessible,
+                       GI.Gtk.Objects.Calendar,
+                       GI.Gtk.Objects.CellAccessible,
+                       GI.Gtk.Objects.CellArea,
+                       GI.Gtk.Objects.CellAreaBox,
+                       GI.Gtk.Objects.CellAreaContext,
+                       GI.Gtk.Objects.CellRenderer,
+                       GI.Gtk.Objects.CellRendererAccel,
+                       GI.Gtk.Objects.CellRendererCombo,
+                       GI.Gtk.Objects.CellRendererPixbuf,
+                       GI.Gtk.Objects.CellRendererProgress,
+                       GI.Gtk.Objects.CellRendererSpin,
+                       GI.Gtk.Objects.CellRendererSpinner,
+                       GI.Gtk.Objects.CellRendererText,
+                       GI.Gtk.Objects.CellRendererToggle,
+                       GI.Gtk.Objects.CellView,
+                       GI.Gtk.Objects.CenterBox,
+                       GI.Gtk.Objects.CheckButton,
+                       GI.Gtk.Objects.CheckMenuItem,
+                       GI.Gtk.Objects.CheckMenuItemAccessible,
+                       GI.Gtk.Objects.ColorButton,
+                       GI.Gtk.Objects.ColorChooserDialog,
+                       GI.Gtk.Objects.ColorChooserWidget,
+                       GI.Gtk.Objects.ComboBox,
+                       GI.Gtk.Objects.ComboBoxAccessible,
+                       GI.Gtk.Objects.ComboBoxText,
+                       GI.Gtk.Objects.Container,
+                       GI.Gtk.Objects.ContainerAccessible,
+                       GI.Gtk.Objects.ContainerCellAccessible,
+                       GI.Gtk.Objects.CssProvider,
+                       GI.Gtk.Objects.CustomLayout,
+                       GI.Gtk.Objects.Dialog,
+                       GI.Gtk.Objects.DrawingArea,
+                       GI.Gtk.Objects.Entry,
+                       GI.Gtk.Objects.EntryAccessible,
+                       GI.Gtk.Objects.EntryBuffer,
+                       GI.Gtk.Objects.EntryCompletion,
+                       GI.Gtk.Objects.EntryIconAccessible,
+                       GI.Gtk.Objects.EventController,
+                       GI.Gtk.Objects.EventControllerKey,
+                       GI.Gtk.Objects.EventControllerLegacy,
+                       GI.Gtk.Objects.EventControllerMotion,
+                       GI.Gtk.Objects.EventControllerScroll,
+                       GI.Gtk.Objects.Expander,
+                       GI.Gtk.Objects.ExpanderAccessible,
+                       GI.Gtk.Objects.FileChooserButton,
+                       GI.Gtk.Objects.FileChooserDialog,
+                       GI.Gtk.Objects.FileChooserNative,
+                       GI.Gtk.Objects.FileChooserWidget,
+                       GI.Gtk.Objects.FileFilter,
+                       GI.Gtk.Objects.FilterListModel,
+                       GI.Gtk.Objects.Fixed,
+                       GI.Gtk.Objects.FixedLayout,
+                       GI.Gtk.Objects.FixedLayoutChild,
+                       GI.Gtk.Objects.FlattenListModel,
+                       GI.Gtk.Objects.FlowBox,
+                       GI.Gtk.Objects.FlowBoxAccessible,
+                       GI.Gtk.Objects.FlowBoxChild,
+                       GI.Gtk.Objects.FlowBoxChildAccessible,
+                       GI.Gtk.Objects.FontButton,
+                       GI.Gtk.Objects.FontChooserDialog,
+                       GI.Gtk.Objects.FontChooserWidget,
+                       GI.Gtk.Objects.Frame,
+                       GI.Gtk.Objects.FrameAccessible,
+                       GI.Gtk.Objects.GLArea,
+                       GI.Gtk.Objects.Gesture,
+                       GI.Gtk.Objects.GestureDrag,
+                       GI.Gtk.Objects.GestureLongPress,
+                       GI.Gtk.Objects.GestureMultiPress,
+                       GI.Gtk.Objects.GesturePan,
+                       GI.Gtk.Objects.GestureRotate,
+                       GI.Gtk.Objects.GestureSingle,
+                       GI.Gtk.Objects.GestureStylus,
+                       GI.Gtk.Objects.GestureSwipe,
+                       GI.Gtk.Objects.GestureZoom,
+                       GI.Gtk.Objects.Grid,
+                       GI.Gtk.Objects.GridLayout,
+                       GI.Gtk.Objects.GridLayoutChild,
+                       GI.Gtk.Objects.HeaderBar,
+                       GI.Gtk.Objects.IMContext,
+                       GI.Gtk.Objects.IMContextSimple,
+                       GI.Gtk.Objects.IMMulticontext,
+                       GI.Gtk.Objects.IconInfo,
+                       GI.Gtk.Objects.IconTheme,
+                       GI.Gtk.Objects.IconView,
+                       GI.Gtk.Objects.IconViewAccessible,
+                       GI.Gtk.Objects.Image,
+                       GI.Gtk.Objects.ImageAccessible,
+                       GI.Gtk.Objects.ImageCellAccessible,
+                       GI.Gtk.Objects.InfoBar,
+                       GI.Gtk.Objects.Label,
+                       GI.Gtk.Objects.LabelAccessible,
+                       GI.Gtk.Objects.LayoutChild,
+                       GI.Gtk.Objects.LayoutManager,
+                       GI.Gtk.Objects.LevelBar,
+                       GI.Gtk.Objects.LevelBarAccessible,
+                       GI.Gtk.Objects.LinkButton,
+                       GI.Gtk.Objects.LinkButtonAccessible,
+                       GI.Gtk.Objects.ListBox,
+                       GI.Gtk.Objects.ListBoxAccessible,
+                       GI.Gtk.Objects.ListBoxRow,
+                       GI.Gtk.Objects.ListBoxRowAccessible,
+                       GI.Gtk.Objects.ListStore,
+                       GI.Gtk.Objects.LockButton,
+                       GI.Gtk.Objects.LockButtonAccessible,
+                       GI.Gtk.Objects.MapListModel,
+                       GI.Gtk.Objects.MediaControls,
+                       GI.Gtk.Objects.MediaFile,
+                       GI.Gtk.Objects.MediaStream,
+                       GI.Gtk.Objects.Menu,
+                       GI.Gtk.Objects.MenuAccessible,
+                       GI.Gtk.Objects.MenuBar,
+                       GI.Gtk.Objects.MenuButton,
+                       GI.Gtk.Objects.MenuButtonAccessible,
+                       GI.Gtk.Objects.MenuItem,
+                       GI.Gtk.Objects.MenuItemAccessible,
+                       GI.Gtk.Objects.MenuShell,
+                       GI.Gtk.Objects.MenuShellAccessible,
+                       GI.Gtk.Objects.MenuToolButton,
+                       GI.Gtk.Objects.MessageDialog,
+                       GI.Gtk.Objects.ModelButton,
+                       GI.Gtk.Objects.MountOperation,
+                       GI.Gtk.Objects.NativeDialog,
+                       GI.Gtk.Objects.Notebook,
+                       GI.Gtk.Objects.NotebookAccessible,
+                       GI.Gtk.Objects.NotebookPage,
+                       GI.Gtk.Objects.NotebookPageAccessible,
+                       GI.Gtk.Objects.Overlay,
+                       GI.Gtk.Objects.PadController,
+                       GI.Gtk.Objects.PageSetup,
+                       GI.Gtk.Objects.Paned,
+                       GI.Gtk.Objects.PanedAccessible,
+                       GI.Gtk.Objects.PasswordEntry,
+                       GI.Gtk.Objects.Picture,
+                       GI.Gtk.Objects.Popover,
+                       GI.Gtk.Objects.PopoverAccessible,
+                       GI.Gtk.Objects.PopoverMenu,
+                       GI.Gtk.Objects.PrintContext,
+                       GI.Gtk.Objects.PrintOperation,
+                       GI.Gtk.Objects.PrintSettings,
+                       GI.Gtk.Objects.ProgressBar,
+                       GI.Gtk.Objects.ProgressBarAccessible,
+                       GI.Gtk.Objects.RadioButton,
+                       GI.Gtk.Objects.RadioButtonAccessible,
+                       GI.Gtk.Objects.RadioMenuItem,
+                       GI.Gtk.Objects.RadioMenuItemAccessible,
+                       GI.Gtk.Objects.RadioToolButton,
+                       GI.Gtk.Objects.Range,
+                       GI.Gtk.Objects.RangeAccessible,
+                       GI.Gtk.Objects.RecentManager,
+                       GI.Gtk.Objects.RendererCellAccessible,
+                       GI.Gtk.Objects.Revealer,
+                       GI.Gtk.Objects.Scale,
+                       GI.Gtk.Objects.ScaleAccessible,
+                       GI.Gtk.Objects.ScaleButton,
+                       GI.Gtk.Objects.ScaleButtonAccessible,
+                       GI.Gtk.Objects.Scrollbar,
+                       GI.Gtk.Objects.ScrolledWindow,
+                       GI.Gtk.Objects.ScrolledWindowAccessible,
+                       GI.Gtk.Objects.SearchBar,
+                       GI.Gtk.Objects.SearchEntry,
+                       GI.Gtk.Objects.Separator,
+                       GI.Gtk.Objects.SeparatorMenuItem,
+                       GI.Gtk.Objects.SeparatorToolItem,
+                       GI.Gtk.Objects.Settings,
+                       GI.Gtk.Objects.ShortcutLabel,
+                       GI.Gtk.Objects.ShortcutsGroup,
+                       GI.Gtk.Objects.ShortcutsSection,
+                       GI.Gtk.Objects.ShortcutsShortcut,
+                       GI.Gtk.Objects.ShortcutsWindow,
+                       GI.Gtk.Objects.SingleSelection,
+                       GI.Gtk.Objects.SizeGroup,
+                       GI.Gtk.Objects.SliceListModel,
+                       GI.Gtk.Objects.Snapshot,
+                       GI.Gtk.Objects.SortListModel,
+                       GI.Gtk.Objects.SpinButton,
+                       GI.Gtk.Objects.SpinButtonAccessible,
+                       GI.Gtk.Objects.Spinner,
+                       GI.Gtk.Objects.SpinnerAccessible,
+                       GI.Gtk.Objects.Stack,
+                       GI.Gtk.Objects.StackAccessible,
+                       GI.Gtk.Objects.StackPage,
+                       GI.Gtk.Objects.StackSidebar,
+                       GI.Gtk.Objects.StackSwitcher,
+                       GI.Gtk.Objects.Statusbar,
+                       GI.Gtk.Objects.StatusbarAccessible,
+                       GI.Gtk.Objects.StyleContext,
+                       GI.Gtk.Objects.Switch,
+                       GI.Gtk.Objects.SwitchAccessible,
+                       GI.Gtk.Objects.Text,
+                       GI.Gtk.Objects.TextAccessible,
+                       GI.Gtk.Objects.TextBuffer,
+                       GI.Gtk.Objects.TextCellAccessible,
+                       GI.Gtk.Objects.TextChildAnchor,
+                       GI.Gtk.Objects.TextMark,
+                       GI.Gtk.Objects.TextTag,
+                       GI.Gtk.Objects.TextTagTable,
+                       GI.Gtk.Objects.TextView,
+                       GI.Gtk.Objects.TextViewAccessible,
+                       GI.Gtk.Objects.ToggleButton,
+                       GI.Gtk.Objects.ToggleButtonAccessible,
+                       GI.Gtk.Objects.ToggleToolButton,
+                       GI.Gtk.Objects.ToolButton,
+                       GI.Gtk.Objects.ToolItem,
+                       GI.Gtk.Objects.Toolbar,
+                       GI.Gtk.Objects.Tooltip,
+                       GI.Gtk.Objects.ToplevelAccessible,
+                       GI.Gtk.Objects.TreeListModel,
+                       GI.Gtk.Objects.TreeListRow,
+                       GI.Gtk.Objects.TreeModelFilter,
+                       GI.Gtk.Objects.TreeModelSort,
+                       GI.Gtk.Objects.TreeSelection,
+                       GI.Gtk.Objects.TreeStore,
+                       GI.Gtk.Objects.TreeView,
+                       GI.Gtk.Objects.TreeViewAccessible,
+                       GI.Gtk.Objects.TreeViewColumn,
+                       GI.Gtk.Objects.Video,
+                       GI.Gtk.Objects.Viewport,
+                       GI.Gtk.Objects.VolumeButton,
+                       GI.Gtk.Objects.Widget,
+                       GI.Gtk.Objects.WidgetAccessible,
+                       GI.Gtk.Objects.WidgetPaintable,
+                       GI.Gtk.Objects.Window,
+                       GI.Gtk.Objects.WindowAccessible,
+                       GI.Gtk.Objects.WindowGroup,
+                       GI.Gtk.Structs,
+                       GI.Gtk.Structs.AccelGroupEntry,
+                       GI.Gtk.Structs.AccelKey,
+                       GI.Gtk.Structs.BindingArg,
+                       GI.Gtk.Structs.BindingEntry,
+                       GI.Gtk.Structs.BindingSet,
+                       GI.Gtk.Structs.BindingSignal,
+                       GI.Gtk.Structs.Border,
+                       GI.Gtk.Structs.Clipboard,
+                       GI.Gtk.Structs.ContainerClass,
+                       GI.Gtk.Structs.FileFilterInfo,
+                       GI.Gtk.Structs.LabelSelectionInfo,
+                       GI.Gtk.Structs.PadActionEntry,
+                       GI.Gtk.Structs.PageRange,
+                       GI.Gtk.Structs.PaperSize,
+                       GI.Gtk.Structs.RecentData,
+                       GI.Gtk.Structs.RecentInfo,
+                       GI.Gtk.Structs.RequestedSize,
+                       GI.Gtk.Structs.Requisition,
+                       GI.Gtk.Structs.SelectionData,
+                       GI.Gtk.Structs.SettingsValue,
+                       GI.Gtk.Structs.TextBTree,
+                       GI.Gtk.Structs.TextIter,
+                       GI.Gtk.Structs.TreeIter,
+                       GI.Gtk.Structs.TreePath,
+                       GI.Gtk.Structs.TreeRowReference,
+                       GI.Gtk.Structs.WidgetClass,
+                       GI.Gtk.Structs.WidgetPath,
+                       GI.Gtk.Structs.WindowGeometryInfo
diff --git a/stack.yaml b/stack.yaml
new file mode 100644
--- /dev/null
+++ b/stack.yaml
@@ -0,0 +1,3 @@
+packages:
+- '.'
+resolver: lts-13.7
