diff --git a/Graphics/Rendering/Pango/BasicTypes.chs b/Graphics/Rendering/Pango/BasicTypes.chs
--- a/Graphics/Rendering/Pango/BasicTypes.chs
+++ b/Graphics/Rendering/Pango/BasicTypes.chs
@@ -5,7 +5,7 @@
 --
 --  Author : Axel Simon
 --
---  Created: 9 Feburary 2003
+--  Created: 9 February 2003
 --
 --  Copyright (C) 1999-2005 Axel Simon
 --
diff --git a/Graphics/Rendering/Pango/Description.chs b/Graphics/Rendering/Pango/Description.chs
--- a/Graphics/Rendering/Pango/Description.chs
+++ b/Graphics/Rendering/Pango/Description.chs
@@ -4,7 +4,7 @@
 --
 --  Author : Axel Simon
 --
---  Created: 8 Feburary 2003
+--  Created: 8 February 2003
 --
 --  Copyright (C) 1999-2005 Axel Simon
 --
@@ -202,7 +202,7 @@
 fontDescriptionMerge fd1 fd2 replace =
   {#call unsafe merge#} fd1 fd2 (fromBool replace)
 
--- | Determine if two descriptions are simliar.
+-- | Determine if two descriptions are similar.
 --
 -- * Returns 'True' if the two descriptions only differ in weight or style.
 --
@@ -213,7 +213,7 @@
 -- | Determine which of two descriptions matches a given description better.
 --
 -- * Returns @True@ if the last description is a better match to the first
---   arguement than the middle one.
+--   argument than the middle one.
 --
 -- * Approximate matching is done on weight and style. If the other
 --   attributes do not match, the function returns @False@.
@@ -232,7 +232,7 @@
 --   word describes one of style, variant, weight or stretch. @SIZE@ is
 --   a decimal number giving the size of the font in points. If any of
 --   these fields is absent, the resulting 'FontDescription' will have
---   the corresponing fields unset.
+--   the corresponding fields unset.
 --
 fontDescriptionFromString :: GlibString string => string -> IO FontDescription
 fontDescriptionFromString descr = withUTFString descr $ \strPtr ->
diff --git a/Graphics/Rendering/Pango/GlyphStorage.chs b/Graphics/Rendering/Pango/GlyphStorage.chs
--- a/Graphics/Rendering/Pango/GlyphStorage.chs
+++ b/Graphics/Rendering/Pango/GlyphStorage.chs
@@ -133,7 +133,7 @@
 --   determines if the returned array starts with the leftmost glyph
 --   (@False@) or with the rightmost glyph (@True@). If @Nothing@ is
 --   passed in, the direction is taken from the 'GlyphItem', i.e.,
---   the array starts with the leftmost glyph for left-to-rigth text
+--   the array starts with the leftmost glyph for left-to-right text
 --   and with the rightmost glyph for right-to-left text. When multiple
 --   characters compose a single glyph, the width of this glyph is
 --   divided among the characters that compose this cluster.
diff --git a/Graphics/Rendering/Pango/Layout.chs b/Graphics/Rendering/Pango/Layout.chs
--- a/Graphics/Rendering/Pango/Layout.chs
+++ b/Graphics/Rendering/Pango/Layout.chs
@@ -4,7 +4,7 @@
 --
 --  Author : Axel Simon
 --
---  Created: 8 Feburary 2003
+--  Created: 8 February 2003
 --
 --  Copyright (C) 1999-2005 Axel Simon
 --
@@ -426,7 +426,7 @@
 layoutGetSpacing (PangoLayout _ pl) =
   liftM intToPu $ {#call unsafe layout_get_spacing#} pl
 
--- | Set if text should be streched to fit width.
+-- | Set if text should be stretched to fit width.
 --
 -- * Sets whether or not each complete line should be stretched to
 --   fill the entire width of the layout. This stretching is typically
@@ -510,7 +510,7 @@
 --
 type TabPosition = (Double, TabAlign)
 
--- | Set a list of Tab positoins.
+-- | Set a list of Tab positions.
 --
 layoutSetTabs :: PangoLayout -> [TabPosition] -> IO ()
 layoutSetTabs (PangoLayout _ pl) tabs = do
@@ -632,7 +632,7 @@
 --   directionality equal to the base direction of the layout are inserted.
 --   The weak cursor location is the location where characters of the
 --   directionality opposite to the base direction of the layout are
---   inserted. The first element of the typle is the strong position,
+--   inserted. The first element of the tuple is the strong position,
 --   the second the weak.
 --
 layoutGetCursorPos :: PangoLayout -> Int ->
@@ -653,7 +653,7 @@
 -- | Move a cursor visually.
 --
 -- * Compute a new cursor position from a previous cursor position. A value
---   of @True@ for the direction will move it to the right, independant of
+--   of @True@ for the direction will move it to the right, independent of
 --   the underlying direction. Hence the cursor position might jump if
 --   left-to-right text is mixed with right-to-left text.
 --
@@ -673,7 +673,7 @@
 --   a cluster. The @trail@ value can contain a positive
 --   value if the current cursor position is at the end of the current line.
 --   In this case, @idx@ points past the last character of this line while
---   @trail@ contains the number of characters that are reponsible for the
+--   @trail@ contains the number of characters that are responsible for the
 --   line break such as newlines. The actual cursor position is always
 --   @idx+trail@ where the visual cursor should be shown.
 --
@@ -851,7 +851,7 @@
 --
 -- * Each 'LayoutLine' contains a list of 'GlyphItem's. This function
 --   returns the 'GlyphItem' under the current iterator. If the iterator
---   is positioned past the last charactor of the paragraph, the function
+--   is positioned past the last character of the paragraph, the function
 --   returns @Nothing@.
 --
 layoutIterGetItem :: LayoutIter -> IO (Maybe GlyphItem)
diff --git a/Graphics/Rendering/Pango/Rendering.chs b/Graphics/Rendering/Pango/Rendering.chs
--- a/Graphics/Rendering/Pango/Rendering.chs
+++ b/Graphics/Rendering/Pango/Rendering.chs
@@ -4,7 +4,7 @@
 --
 --  Author : Axel Simon
 --
---  Created: 8 Feburary 2003
+--  Created: 8 February 2003
 --
 --  Copyright (C) 1999-2005 Axel Simon
 --
diff --git a/Graphics/Rendering/Pango/Structs.hsc b/Graphics/Rendering/Pango/Structs.hsc
--- a/Graphics/Rendering/Pango/Structs.hsc
+++ b/Graphics/Rendering/Pango/Structs.hsc
@@ -65,7 +65,7 @@
 import Graphics.Rendering.Pango.Types
 import Graphics.Rendering.Pango.BasicTypes
 
--- A pango unit is an internal euclidian metric, that is, a measure for
+-- A pango unit is an internal euclidean metric, that is, a measure for
 -- lengths and position.
 --
 -- * Deprecated. Replaced by Double.
diff --git a/Graphics/Rendering/Pango/Types.chs b/Graphics/Rendering/Pango/Types.chs
deleted file mode 100644
--- a/Graphics/Rendering/Pango/Types.chs
+++ /dev/null
@@ -1,257 +0,0 @@
-{-# LANGUAGE CPP #-}
-{-# OPTIONS_HADDOCK hide #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
--- -*-haskell-*-
--- -------------------- automatically generated file - do not edit ----------
---  Object hierarchy for the GIMP Toolkit (GTK) Binding for Haskell
---
---  Author : Axel Simon
---
---  Copyright (C) 2001-2005 Axel Simon
---
---  This library 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 2.1 of the License, or (at your option) any later version.
---
---  This library 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.
---
--- #hide
-
--- |
--- Maintainer  : gtk2hs-users@lists.sourceforge.net
--- Stability   : provisional
--- Portability : portable (depends on GHC)
---
--- This file reflects the Gtk+ object hierarchy in terms of Haskell classes.
---
--- Note: the mk... functions were originally meant to simply be an alias
--- for the constructor. However, in order to communicate the destructor
--- of an object to objectNew, the mk... functions are now a tuple containing
--- Haskell constructor and the destructor function pointer. This hack avoids
--- changing all modules that simply pass mk... to objectNew.
---
-module Graphics.Rendering.Pango.Types (
-
-  module System.Glib.GObject,
-  PangoContext(PangoContext), PangoContextClass,
-  toPangoContext, 
-  mkPangoContext, unPangoContext,
-  castToPangoContext, gTypePangoContext,
-  PangoLayoutRaw(PangoLayoutRaw), PangoLayoutRawClass,
-  toPangoLayoutRaw, 
-  mkPangoLayoutRaw, unPangoLayoutRaw,
-  castToPangoLayoutRaw, gTypePangoLayoutRaw,
-  Font(Font), FontClass,
-  toFont, 
-  mkFont, unFont,
-  castToFont, gTypeFont,
-  FontFamily(FontFamily), FontFamilyClass,
-  toFontFamily, 
-  mkFontFamily, unFontFamily,
-  castToFontFamily, gTypeFontFamily,
-  FontFace(FontFace), FontFaceClass,
-  toFontFace, 
-  mkFontFace, unFontFace,
-  castToFontFace, gTypeFontFace,
-  FontMap(FontMap), FontMapClass,
-  toFontMap, 
-  mkFontMap, unFontMap,
-  castToFontMap, gTypeFontMap,
-  FontSet(FontSet), FontSetClass,
-  toFontSet, 
-  mkFontSet, unFontSet,
-  castToFontSet, gTypeFontSet
-  ) where
-
-import Foreign.ForeignPtr (ForeignPtr, castForeignPtr)
--- TODO work around cpphs https://ghc.haskell.org/trac/ghc/ticket/13553
-#if __GLASGOW_HASKELL__ >= 707 || __GLASGOW_HASKELL__ == 0
-import Foreign.ForeignPtr.Unsafe (unsafeForeignPtrToPtr)
-#else
-import Foreign.ForeignPtr (unsafeForeignPtrToPtr)
-#endif
-
-import Foreign.C.Types    (CULong(..), CUInt(..), CULLong(..))
-import System.Glib.GType  (GType, typeInstanceIsA)
-{#import System.Glib.GObject#}
-
-{# context lib="gtk" prefix="gtk" #}
-
--- The usage of foreignPtrToPtr should be safe as the evaluation will only be
--- forced if the object is used afterwards
---
-castTo :: (GObjectClass obj, GObjectClass obj') => GType -> String
-                                                -> (obj -> obj')
-castTo gtype objTypeName obj =
-  case toGObject obj of
-    gobj@(GObject objFPtr)
-      | typeInstanceIsA ((unsafeForeignPtrToPtr.castForeignPtr) objFPtr) gtype
-                  -> unsafeCastGObject gobj
-      | otherwise -> error $ "Cannot cast object to " ++ objTypeName
-
-
--- *************************************************************** PangoContext
-
-{#pointer *PangoContext as PangoContext foreign newtype #} deriving (Eq,Ord)
-
-mkPangoContext = (PangoContext, objectUnref)
-unPangoContext (PangoContext o) = o
-
-class GObjectClass o => PangoContextClass o
-toPangoContext :: PangoContextClass o => o -> PangoContext
-toPangoContext = unsafeCastGObject . toGObject
-
-instance PangoContextClass PangoContext
-instance GObjectClass PangoContext where
-  toGObject = GObject . castForeignPtr . unPangoContext
-  unsafeCastGObject = PangoContext . castForeignPtr . unGObject
-
-castToPangoContext :: GObjectClass obj => obj -> PangoContext
-castToPangoContext = castTo gTypePangoContext "PangoContext"
-
-gTypePangoContext :: GType
-gTypePangoContext =
-  {# call fun unsafe pango_context_get_type #}
-
--- ************************************************************* PangoLayoutRaw
-
-{#pointer *PangoLayout as PangoLayoutRaw foreign newtype #} deriving (Eq,Ord)
-
-mkPangoLayoutRaw = (PangoLayoutRaw, objectUnref)
-unPangoLayoutRaw (PangoLayoutRaw o) = o
-
-class GObjectClass o => PangoLayoutRawClass o
-toPangoLayoutRaw :: PangoLayoutRawClass o => o -> PangoLayoutRaw
-toPangoLayoutRaw = unsafeCastGObject . toGObject
-
-instance PangoLayoutRawClass PangoLayoutRaw
-instance GObjectClass PangoLayoutRaw where
-  toGObject = GObject . castForeignPtr . unPangoLayoutRaw
-  unsafeCastGObject = PangoLayoutRaw . castForeignPtr . unGObject
-
-castToPangoLayoutRaw :: GObjectClass obj => obj -> PangoLayoutRaw
-castToPangoLayoutRaw = castTo gTypePangoLayoutRaw "PangoLayoutRaw"
-
-gTypePangoLayoutRaw :: GType
-gTypePangoLayoutRaw =
-  {# call fun unsafe pango_layout_get_type #}
-
--- *********************************************************************** Font
-
-{#pointer *PangoFont as Font foreign newtype #} deriving (Eq,Ord)
-
-mkFont = (Font, objectUnref)
-unFont (Font o) = o
-
-class GObjectClass o => FontClass o
-toFont :: FontClass o => o -> Font
-toFont = unsafeCastGObject . toGObject
-
-instance FontClass Font
-instance GObjectClass Font where
-  toGObject = GObject . castForeignPtr . unFont
-  unsafeCastGObject = Font . castForeignPtr . unGObject
-
-castToFont :: GObjectClass obj => obj -> Font
-castToFont = castTo gTypeFont "Font"
-
-gTypeFont :: GType
-gTypeFont =
-  {# call fun unsafe pango_font_get_type #}
-
--- ***************************************************************** FontFamily
-
-{#pointer *PangoFontFamily as FontFamily foreign newtype #} deriving (Eq,Ord)
-
-mkFontFamily = (FontFamily, objectUnref)
-unFontFamily (FontFamily o) = o
-
-class GObjectClass o => FontFamilyClass o
-toFontFamily :: FontFamilyClass o => o -> FontFamily
-toFontFamily = unsafeCastGObject . toGObject
-
-instance FontFamilyClass FontFamily
-instance GObjectClass FontFamily where
-  toGObject = GObject . castForeignPtr . unFontFamily
-  unsafeCastGObject = FontFamily . castForeignPtr . unGObject
-
-castToFontFamily :: GObjectClass obj => obj -> FontFamily
-castToFontFamily = castTo gTypeFontFamily "FontFamily"
-
-gTypeFontFamily :: GType
-gTypeFontFamily =
-  {# call fun unsafe pango_font_family_get_type #}
-
--- ******************************************************************* FontFace
-
-{#pointer *PangoFontFace as FontFace foreign newtype #} deriving (Eq,Ord)
-
-mkFontFace = (FontFace, objectUnref)
-unFontFace (FontFace o) = o
-
-class GObjectClass o => FontFaceClass o
-toFontFace :: FontFaceClass o => o -> FontFace
-toFontFace = unsafeCastGObject . toGObject
-
-instance FontFaceClass FontFace
-instance GObjectClass FontFace where
-  toGObject = GObject . castForeignPtr . unFontFace
-  unsafeCastGObject = FontFace . castForeignPtr . unGObject
-
-castToFontFace :: GObjectClass obj => obj -> FontFace
-castToFontFace = castTo gTypeFontFace "FontFace"
-
-gTypeFontFace :: GType
-gTypeFontFace =
-  {# call fun unsafe pango_font_face_get_type #}
-
--- ******************************************************************** FontMap
-
-{#pointer *PangoFontMap as FontMap foreign newtype #} deriving (Eq,Ord)
-
-mkFontMap = (FontMap, objectUnref)
-unFontMap (FontMap o) = o
-
-class GObjectClass o => FontMapClass o
-toFontMap :: FontMapClass o => o -> FontMap
-toFontMap = unsafeCastGObject . toGObject
-
-instance FontMapClass FontMap
-instance GObjectClass FontMap where
-  toGObject = GObject . castForeignPtr . unFontMap
-  unsafeCastGObject = FontMap . castForeignPtr . unGObject
-
-castToFontMap :: GObjectClass obj => obj -> FontMap
-castToFontMap = castTo gTypeFontMap "FontMap"
-
-gTypeFontMap :: GType
-gTypeFontMap =
-  {# call fun unsafe pango_font_face_get_type #}
-
--- ******************************************************************** FontSet
-
-{#pointer *PangoFontset as FontSet foreign newtype #} deriving (Eq,Ord)
-
-mkFontSet = (FontSet, objectUnref)
-unFontSet (FontSet o) = o
-
-class GObjectClass o => FontSetClass o
-toFontSet :: FontSetClass o => o -> FontSet
-toFontSet = unsafeCastGObject . toGObject
-
-instance FontSetClass FontSet
-instance GObjectClass FontSet where
-  toGObject = GObject . castForeignPtr . unFontSet
-  unsafeCastGObject = FontSet . castForeignPtr . unGObject
-
-castToFontSet :: GObjectClass obj => obj -> FontSet
-castToFontSet = castTo gTypeFontSet "FontSet"
-
-gTypeFontSet :: GType
-gTypeFontSet =
-  {# call fun unsafe pango_fontset_get_type #}
-
diff --git a/hierarchy.list b/hierarchy.list
--- a/hierarchy.list
+++ b/hierarchy.list
@@ -10,7 +10,7 @@
 # function is not specified, the <name> is converted to
 # gtk_<name'>_get_type where <name'> is <name> where each upperscore
 # letter is converted to an underscore and lowerletter. The underscore
-# is omitted if an upperscore letter preceeded: GtkHButtonBox ->
+# is omitted if an upperscore letter preceded: GtkHButtonBox ->
 # gtk_hbutton_box_get_type. The generation of a type can be
 # conditional by appending 'if <tag>'. Such types are only produces if
 # --tag=<tag> is given on the command line of TypeGenerator.
@@ -211,7 +211,7 @@
         GtkSourceLanguageManager	if gtksourceview2
 	GladeXML			as GladeXML, glade_xml_get_type if libglade
 	GConfClient			as GConf if gconf
-# These ones are actualy interfaces, but interface implementations are GObjects
+# These ones are actually interfaces, but interface implementations are GObjects
 	GtkEditable
 	GtkSourceStyle			as SourceStyleObject if gtksourceview2
 	GtkSourceStyleScheme		if sourceview
diff --git a/pango.cabal b/pango.cabal
--- a/pango.cabal
+++ b/pango.cabal
@@ -1,6 +1,6 @@
-cabal-version:  3.0
+cabal-version:  2.2
 Name:           pango
-Version:        0.13.10.0
+Version:        0.13.11.0
 License:        LGPL-2.1-only
 License-file:   COPYING
 Copyright:      (c) 2001-2010 The Gtk2Hs Team
@@ -16,7 +16,7 @@
                 either with Cairo to output text in PDF, PS or other
                 documents or with Gtk+ to display text on-screen.
 Category:       Graphics
-Tested-With:    GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.1
+Tested-With:    GHC == 9.10.1, GHC == 9.8.2, GHC == 9.6.6, GHC == 9.4.8, GHC == 9.2.8, GHC==9.0.2, GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2
 extra-source-files: template-hsc-gtk2hs.h
                     hspango.h
                     hierarchy.list
@@ -39,22 +39,22 @@
   Description:  Enable build with a base library that contains the new exception library.
 
 custom-setup
-  setup-depends: base >= 4.6 && <5,
-                 Cabal >= 2.0 && < 3.11,
-                 filepath >= 1.3 && < 1.5,
+  setup-depends: base >= 4.8 && <5,
+                 Cabal >= 2.2 && < 3.13,
+                 filepath >= 1.3 && < 1.6,
                  gtk2hs-buildtools >= 0.13.2.0 && < 0.14
 
 Library
         build-depends:  base >= 4 && < 5,
                         array < 0.6,
-                        containers < 0.7,
+                        containers < 0.8,
                         directory < 1.4,
                         mtl < 2.4,
                         process < 1.7,
                         pretty < 1.2,
                         glib  >= 0.13.0.0 && < 0.14,
                         cairo >= 0.13.0.0 && < 0.14,
-                        text >= 0.11.0.6 && < 2.1
+                        text >= 0.11.0.6 && < 2.2
 
         if flag(new-exception)
           build-depends:  base >= 4
@@ -78,6 +78,8 @@
                          Graphics.Rendering.Pango.Attributes
         other-modules:   Graphics.Rendering.Pango.GlyphStorage
                          Graphics.Rendering.Pango.Description
+        autogen-modules:
+                         Graphics.Rendering.Pango.Types
         default-language:   Haskell98
         default-extensions: ForeignFunctionInterface
         x-c2hs-Header:  hspango.h
