    -- | Copyright  : Will Thompson and Iñaki García Etxebarria
    -- License    : LGPL-2.1
    -- Maintainer : Iñaki García Etxebarria

    #if !defined(__HADDOCK_VERSION__)
    #define ENABLE_OVERLOADING
    #endif

    module GI.HarfBuzz.Enums
        (

     -- * Enumerations

    -- ** AatLayoutFeatureSelectorT #enum:AatLayoutFeatureSelectorT#

        AatLayoutFeatureSelectorT(..)           ,

    -- ** AatLayoutFeatureTypeT #enum:AatLayoutFeatureTypeT#

        AatLayoutFeatureTypeT(..)               ,

    -- ** BufferClusterLevelT #enum:BufferClusterLevelT#

        BufferClusterLevelT(..)                 ,

    -- ** BufferContentTypeT #enum:BufferContentTypeT#

        BufferContentTypeT(..)                  ,

    -- ** BufferSerializeFormatT #enum:BufferSerializeFormatT#

        BufferSerializeFormatT(..)              ,

    -- ** DirectionT #enum:DirectionT#

        DirectionT(..)                          ,

    -- ** MemoryModeT #enum:MemoryModeT#

        MemoryModeT(..)                         ,

    -- ** OtLayoutBaselineTagT #enum:OtLayoutBaselineTagT#

        OtLayoutBaselineTagT(..)                ,

    -- ** OtLayoutGlyphClassT #enum:OtLayoutGlyphClassT#

        OtLayoutGlyphClassT(..)                 ,

    -- ** OtMathConstantT #enum:OtMathConstantT#

        OtMathConstantT(..)                     ,

    -- ** OtMathKernT #enum:OtMathKernT#

        OtMathKernT(..)                         ,

    -- ** OtMetaTagT #enum:OtMetaTagT#

        OtMetaTagT(..)                          ,

    -- ** OtMetricsTagT #enum:OtMetricsTagT#

        OtMetricsTagT(..)                       ,

    -- ** OtNameIdPredefinedT #enum:OtNameIdPredefinedT#

        OtNameIdPredefinedT(..)                 ,

    -- ** PaintCompositeModeT #enum:PaintCompositeModeT#

        PaintCompositeModeT(..)                 ,

    -- ** PaintExtendT #enum:PaintExtendT#

        PaintExtendT(..)                        ,

    -- ** ScriptT #enum:ScriptT#

        ScriptT(..)                             ,

    -- ** StyleTagT #enum:StyleTagT#

        StyleTagT(..)                           ,

    -- ** UnicodeCombiningClassT #enum:UnicodeCombiningClassT#

        UnicodeCombiningClassT(..)              ,

    -- ** UnicodeGeneralCategoryT #enum:UnicodeGeneralCategoryT#

        UnicodeGeneralCategoryT(..)             ,

        ) where

    import Data.GI.Base.ShortPrelude
    import qualified Data.GI.Base.ShortPrelude as SP
    import qualified Data.GI.Base.Overloading as O
    import qualified Prelude as P

    import qualified Data.GI.Base.Attributes as GI.Attributes
    import qualified Data.GI.Base.BasicTypes as B.Types
    import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
    import qualified Data.GI.Base.GArray as B.GArray
    import qualified Data.GI.Base.GClosure as B.GClosure
    import qualified Data.GI.Base.GError as B.GError
    import qualified Data.GI.Base.GHashTable as B.GHT
    import qualified Data.GI.Base.GVariant as B.GVariant
    import qualified Data.GI.Base.GValue as B.GValue
    import qualified Data.GI.Base.GParamSpec as B.GParamSpec
    import qualified Data.GI.Base.CallStack as B.CallStack
    import qualified Data.GI.Base.Properties as B.Properties
    import qualified Data.GI.Base.Signals as B.Signals
    import qualified Control.Monad.IO.Class as MIO
    import qualified Data.Coerce as Coerce
    import qualified Data.Text as T
    import qualified Data.Kind as DK
    import qualified Data.ByteString.Char8 as B
    import qualified Data.Map as Map
    import qualified Foreign.Ptr as FP
    import qualified GHC.OverloadedLabels as OL
    import qualified GHC.Records as R

    -- Enum unicode_general_category_t
    -- | Data type for the \"General_Category\" (gc) property from
    -- the Unicode Character Database.
    data UnicodeGeneralCategoryT =
          UnicodeGeneralCategoryTControl
        -- ^ [Cc]
        | UnicodeGeneralCategoryTFormat
        -- ^ [Cf]
        | UnicodeGeneralCategoryTUnassigned
        -- ^ [Cn]
        | UnicodeGeneralCategoryTPrivateUse
        -- ^ [Co]
        | UnicodeGeneralCategoryTSurrogate
        -- ^ [Cs]
        | UnicodeGeneralCategoryTLowercaseLetter
        -- ^ [Ll]
        | UnicodeGeneralCategoryTModifierLetter
        -- ^ [Lm]
        | UnicodeGeneralCategoryTOtherLetter
        -- ^ [Lo]
        | UnicodeGeneralCategoryTTitlecaseLetter
        -- ^ [Lt]
        | UnicodeGeneralCategoryTUppercaseLetter
        -- ^ [Lu]
        | UnicodeGeneralCategoryTSpacingMark
        -- ^ [Mc]
        | UnicodeGeneralCategoryTEnclosingMark
        -- ^ [Me]
        | UnicodeGeneralCategoryTNonSpacingMark
        -- ^ [Mn]
        | UnicodeGeneralCategoryTDecimalNumber
        -- ^ [Nd]
        | UnicodeGeneralCategoryTLetterNumber
        -- ^ [Nl]
        | UnicodeGeneralCategoryTOtherNumber
        -- ^ [No]
        | UnicodeGeneralCategoryTConnectPunctuation
        -- ^ [Pc]
        | UnicodeGeneralCategoryTDashPunctuation
        -- ^ [Pd]
        | UnicodeGeneralCategoryTClosePunctuation
        -- ^ [Pe]
        | UnicodeGeneralCategoryTFinalPunctuation
        -- ^ [Pf]
        | UnicodeGeneralCategoryTInitialPunctuation
        -- ^ [Pi]
        | UnicodeGeneralCategoryTOtherPunctuation
        -- ^ [Po]
        | UnicodeGeneralCategoryTOpenPunctuation
        -- ^ [Ps]
        | UnicodeGeneralCategoryTCurrencySymbol
        -- ^ [Sc]
        | UnicodeGeneralCategoryTModifierSymbol
        -- ^ [Sk]
        | UnicodeGeneralCategoryTMathSymbol
        -- ^ [Sm]
        | UnicodeGeneralCategoryTOtherSymbol
        -- ^ [So]
        | UnicodeGeneralCategoryTLineSeparator
        -- ^ [Zl]
        | UnicodeGeneralCategoryTParagraphSeparator
        -- ^ [Zp]
        | UnicodeGeneralCategoryTSpaceSeparator
        -- ^ [Zs]
        | AnotherUnicodeGeneralCategoryT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> UnicodeGeneralCategoryT -> ShowS
    [UnicodeGeneralCategoryT] -> ShowS
    UnicodeGeneralCategoryT -> String
    (Int -> UnicodeGeneralCategoryT -> ShowS)
    -> (UnicodeGeneralCategoryT -> String)
    -> ([UnicodeGeneralCategoryT] -> ShowS)
    -> Show UnicodeGeneralCategoryT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> UnicodeGeneralCategoryT -> ShowS
    showsPrec :: Int -> UnicodeGeneralCategoryT -> ShowS
    $cshow :: UnicodeGeneralCategoryT -> String
    show :: UnicodeGeneralCategoryT -> String
    $cshowList :: [UnicodeGeneralCategoryT] -> ShowS
    showList :: [UnicodeGeneralCategoryT] -> ShowS
    Show, UnicodeGeneralCategoryT -> UnicodeGeneralCategoryT -> Bool
    (UnicodeGeneralCategoryT -> UnicodeGeneralCategoryT -> Bool)
    -> (UnicodeGeneralCategoryT -> UnicodeGeneralCategoryT -> Bool)
    -> Eq UnicodeGeneralCategoryT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: UnicodeGeneralCategoryT -> UnicodeGeneralCategoryT -> Bool
    == :: UnicodeGeneralCategoryT -> UnicodeGeneralCategoryT -> Bool
    $c/= :: UnicodeGeneralCategoryT -> UnicodeGeneralCategoryT -> Bool
    /= :: UnicodeGeneralCategoryT -> UnicodeGeneralCategoryT -> Bool
    Eq)

    instance P.Enum UnicodeGeneralCategoryT where
        fromEnum :: UnicodeGeneralCategoryT -> Int
    fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTControl = Int
    0
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTFormat = Int
    1
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTUnassigned = Int
    2
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTPrivateUse = Int
    3
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTSurrogate = Int
    4
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTLowercaseLetter = Int
    5
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTModifierLetter = Int
    6
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTOtherLetter = Int
    7
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTTitlecaseLetter = Int
    8
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTUppercaseLetter = Int
    9
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTSpacingMark = Int
    10
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTEnclosingMark = Int
    11
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTNonSpacingMark = Int
    12
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTDecimalNumber = Int
    13
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTLetterNumber = Int
    14
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTOtherNumber = Int
    15
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTConnectPunctuation = Int
    16
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTDashPunctuation = Int
    17
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTClosePunctuation = Int
    18
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTFinalPunctuation = Int
    19
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTInitialPunctuation = Int
    20
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTOtherPunctuation = Int
    21
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTOpenPunctuation = Int
    22
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTCurrencySymbol = Int
    23
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTModifierSymbol = Int
    24
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTMathSymbol = Int
    25
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTOtherSymbol = Int
    26
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTLineSeparator = Int
    27
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTParagraphSeparator = Int
    28
        fromEnum UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTSpaceSeparator = Int
    29
        fromEnum (AnotherUnicodeGeneralCategoryT Int
    k) = Int
    k

        toEnum :: Int -> UnicodeGeneralCategoryT
    toEnum Int
    0 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTControl
        toEnum Int
    1 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTFormat
        toEnum Int
    2 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTUnassigned
        toEnum Int
    3 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTPrivateUse
        toEnum Int
    4 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTSurrogate
        toEnum Int
    5 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTLowercaseLetter
        toEnum Int
    6 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTModifierLetter
        toEnum Int
    7 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTOtherLetter
        toEnum Int
    8 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTTitlecaseLetter
        toEnum Int
    9 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTUppercaseLetter
        toEnum Int
    10 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTSpacingMark
        toEnum Int
    11 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTEnclosingMark
        toEnum Int
    12 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTNonSpacingMark
        toEnum Int
    13 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTDecimalNumber
        toEnum Int
    14 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTLetterNumber
        toEnum Int
    15 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTOtherNumber
        toEnum Int
    16 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTConnectPunctuation
        toEnum Int
    17 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTDashPunctuation
        toEnum Int
    18 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTClosePunctuation
        toEnum Int
    19 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTFinalPunctuation
        toEnum Int
    20 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTInitialPunctuation
        toEnum Int
    21 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTOtherPunctuation
        toEnum Int
    22 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTOpenPunctuation
        toEnum Int
    23 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTCurrencySymbol
        toEnum Int
    24 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTModifierSymbol
        toEnum Int
    25 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTMathSymbol
        toEnum Int
    26 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTOtherSymbol
        toEnum Int
    27 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTLineSeparator
        toEnum Int
    28 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTParagraphSeparator
        toEnum Int
    29 = UnicodeGeneralCategoryT
    UnicodeGeneralCategoryTSpaceSeparator
        toEnum Int
    k = Int -> UnicodeGeneralCategoryT
    AnotherUnicodeGeneralCategoryT Int
    k

    instance P.Ord UnicodeGeneralCategoryT where
        compare :: UnicodeGeneralCategoryT -> UnicodeGeneralCategoryT -> Ordering
    compare UnicodeGeneralCategoryT
    a UnicodeGeneralCategoryT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (UnicodeGeneralCategoryT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum UnicodeGeneralCategoryT
    a) (UnicodeGeneralCategoryT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum UnicodeGeneralCategoryT
    b)

    type instance O.ParentTypes UnicodeGeneralCategoryT = '[]
    instance O.HasParentTypes UnicodeGeneralCategoryT

    foreign import ccall "hb_gobject_unicode_general_category_get_type" c_hb_gobject_unicode_general_category_get_type ::
        IO GType

    instance B.Types.TypedObject UnicodeGeneralCategoryT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_unicode_general_category_get_type

    instance B.Types.BoxedEnum UnicodeGeneralCategoryT

    -- Enum unicode_combining_class_t
    -- | Data type for the Canonical_Combining_Class (ccc) property
    -- from the Unicode Character Database.
    --
    -- \<note>Note: newer versions of Unicode may add new values.
    -- Client programs should be ready to handle any value in the 0..254 range
    -- being returned from 'GI.HarfBuzz.Functions.unicodeCombiningClass'.\<\/note>
    data UnicodeCombiningClassT =
          UnicodeCombiningClassTNotReordered
        -- ^ Spacing and enclosing marks; also many vowel and consonant signs, even if nonspacing
        | UnicodeCombiningClassTOverlay
        -- ^ Marks which overlay a base letter or symbol
        | UnicodeCombiningClassTNukta
        -- ^ Diacritic nukta marks in Brahmi-derived scripts
        | UnicodeCombiningClassTKanaVoicing
        -- ^ Hiragana\/Katakana voicing marks
        | UnicodeCombiningClassTVirama
        -- ^ Viramas
        | UnicodeCombiningClassTCcc10
        -- ^ [Hebrew]
        | UnicodeCombiningClassTCcc11
        -- ^ [Hebrew]
        | UnicodeCombiningClassTCcc12
        -- ^ [Hebrew]
        | UnicodeCombiningClassTCcc13
        -- ^ [Hebrew]
        | UnicodeCombiningClassTCcc14
        -- ^ [Hebrew]
        | UnicodeCombiningClassTCcc15
        -- ^ [Hebrew]
        | UnicodeCombiningClassTCcc16
        -- ^ [Hebrew]
        | UnicodeCombiningClassTCcc17
        -- ^ [Hebrew]
        | UnicodeCombiningClassTCcc18
        -- ^ [Hebrew]
        | UnicodeCombiningClassTCcc19
        -- ^ [Hebrew]
        | UnicodeCombiningClassTCcc20
        -- ^ [Hebrew]
        | UnicodeCombiningClassTCcc21
        -- ^ [Hebrew]
        | UnicodeCombiningClassTCcc22
        -- ^ [Hebrew]
        | UnicodeCombiningClassTCcc23
        -- ^ [Hebrew]
        | UnicodeCombiningClassTCcc24
        -- ^ [Hebrew]
        | UnicodeCombiningClassTCcc25
        -- ^ [Hebrew]
        | UnicodeCombiningClassTCcc26
        -- ^ [Hebrew]
        | UnicodeCombiningClassTCcc27
        -- ^ [Arabic]
        | UnicodeCombiningClassTCcc28
        -- ^ [Arabic]
        | UnicodeCombiningClassTCcc29
        -- ^ [Arabic]
        | UnicodeCombiningClassTCcc30
        -- ^ [Arabic]
        | UnicodeCombiningClassTCcc31
        -- ^ [Arabic]
        | UnicodeCombiningClassTCcc32
        -- ^ [Arabic]
        | UnicodeCombiningClassTCcc33
        -- ^ [Arabic]
        | UnicodeCombiningClassTCcc34
        -- ^ [Arabic]
        | UnicodeCombiningClassTCcc35
        -- ^ [Arabic]
        | UnicodeCombiningClassTCcc36
        -- ^ [Syriac]
        | UnicodeCombiningClassTCcc84
        -- ^ [Telugu]
        | UnicodeCombiningClassTCcc91
        -- ^ [Telugu]
        | UnicodeCombiningClassTCcc103
        -- ^ [Thai]
        | UnicodeCombiningClassTCcc107
        -- ^ [Thai]
        | UnicodeCombiningClassTCcc118
        -- ^ [Lao]
        | UnicodeCombiningClassTCcc122
        -- ^ [Lao]
        | UnicodeCombiningClassTCcc129
        -- ^ [Tibetan]
        | UnicodeCombiningClassTCcc130
        -- ^ [Tibetan]
        | UnicodeCombiningClassTCcc132
        -- ^ [Tibetan] Since: 7.2.0
        | UnicodeCombiningClassTAttachedBelowLeft
        -- ^ Marks attached at the bottom left
        | UnicodeCombiningClassTAttachedBelow
        -- ^ Marks attached directly below
        | UnicodeCombiningClassTAttachedAbove
        -- ^ Marks attached directly above
        | UnicodeCombiningClassTAttachedAboveRight
        -- ^ Marks attached at the top right
        | UnicodeCombiningClassTBelowLeft
        -- ^ Distinct marks at the bottom left
        | UnicodeCombiningClassTBelow
        -- ^ Distinct marks directly below
        | UnicodeCombiningClassTBelowRight
        -- ^ Distinct marks at the bottom right
        | UnicodeCombiningClassTLeft
        -- ^ Distinct marks to the left
        | UnicodeCombiningClassTRight
        -- ^ Distinct marks to the right
        | UnicodeCombiningClassTAboveLeft
        -- ^ Distinct marks at the top left
        | UnicodeCombiningClassTAbove
        -- ^ Distinct marks directly above
        | UnicodeCombiningClassTAboveRight
        -- ^ Distinct marks at the top right
        | UnicodeCombiningClassTDoubleBelow
        -- ^ Distinct marks subtending two bases
        | UnicodeCombiningClassTDoubleAbove
        -- ^ Distinct marks extending above two bases
        | UnicodeCombiningClassTIotaSubscript
        -- ^ Greek iota subscript only
        | UnicodeCombiningClassTInvalid
        -- ^ Invalid combining class
        | AnotherUnicodeCombiningClassT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> UnicodeCombiningClassT -> ShowS
    [UnicodeCombiningClassT] -> ShowS
    UnicodeCombiningClassT -> String
    (Int -> UnicodeCombiningClassT -> ShowS)
    -> (UnicodeCombiningClassT -> String)
    -> ([UnicodeCombiningClassT] -> ShowS)
    -> Show UnicodeCombiningClassT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> UnicodeCombiningClassT -> ShowS
    showsPrec :: Int -> UnicodeCombiningClassT -> ShowS
    $cshow :: UnicodeCombiningClassT -> String
    show :: UnicodeCombiningClassT -> String
    $cshowList :: [UnicodeCombiningClassT] -> ShowS
    showList :: [UnicodeCombiningClassT] -> ShowS
    Show, UnicodeCombiningClassT -> UnicodeCombiningClassT -> Bool
    (UnicodeCombiningClassT -> UnicodeCombiningClassT -> Bool)
    -> (UnicodeCombiningClassT -> UnicodeCombiningClassT -> Bool)
    -> Eq UnicodeCombiningClassT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: UnicodeCombiningClassT -> UnicodeCombiningClassT -> Bool
    == :: UnicodeCombiningClassT -> UnicodeCombiningClassT -> Bool
    $c/= :: UnicodeCombiningClassT -> UnicodeCombiningClassT -> Bool
    /= :: UnicodeCombiningClassT -> UnicodeCombiningClassT -> Bool
    Eq)

    instance P.Enum UnicodeCombiningClassT where
        fromEnum :: UnicodeCombiningClassT -> Int
    fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTNotReordered = Int
    0
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTOverlay = Int
    1
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTNukta = Int
    7
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTKanaVoicing = Int
    8
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTVirama = Int
    9
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc10 = Int
    10
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc11 = Int
    11
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc12 = Int
    12
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc13 = Int
    13
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc14 = Int
    14
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc15 = Int
    15
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc16 = Int
    16
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc17 = Int
    17
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc18 = Int
    18
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc19 = Int
    19
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc20 = Int
    20
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc21 = Int
    21
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc22 = Int
    22
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc23 = Int
    23
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc24 = Int
    24
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc25 = Int
    25
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc26 = Int
    26
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc27 = Int
    27
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc28 = Int
    28
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc29 = Int
    29
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc30 = Int
    30
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc31 = Int
    31
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc32 = Int
    32
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc33 = Int
    33
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc34 = Int
    34
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc35 = Int
    35
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc36 = Int
    36
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc84 = Int
    84
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc91 = Int
    91
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc103 = Int
    103
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc107 = Int
    107
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc118 = Int
    118
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc122 = Int
    122
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc129 = Int
    129
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc130 = Int
    130
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTCcc132 = Int
    132
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTAttachedBelowLeft = Int
    200
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTAttachedBelow = Int
    202
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTAttachedAbove = Int
    214
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTAttachedAboveRight = Int
    216
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTBelowLeft = Int
    218
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTBelow = Int
    220
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTBelowRight = Int
    222
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTLeft = Int
    224
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTRight = Int
    226
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTAboveLeft = Int
    228
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTAbove = Int
    230
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTAboveRight = Int
    232
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTDoubleBelow = Int
    233
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTDoubleAbove = Int
    234
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTIotaSubscript = Int
    240
        fromEnum UnicodeCombiningClassT
    UnicodeCombiningClassTInvalid = Int
    255
        fromEnum (AnotherUnicodeCombiningClassT Int
    k) = Int
    k

        toEnum :: Int -> UnicodeCombiningClassT
    toEnum Int
    0 = UnicodeCombiningClassT
    UnicodeCombiningClassTNotReordered
        toEnum Int
    1 = UnicodeCombiningClassT
    UnicodeCombiningClassTOverlay
        toEnum Int
    7 = UnicodeCombiningClassT
    UnicodeCombiningClassTNukta
        toEnum Int
    8 = UnicodeCombiningClassT
    UnicodeCombiningClassTKanaVoicing
        toEnum Int
    9 = UnicodeCombiningClassT
    UnicodeCombiningClassTVirama
        toEnum Int
    10 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc10
        toEnum Int
    11 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc11
        toEnum Int
    12 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc12
        toEnum Int
    13 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc13
        toEnum Int
    14 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc14
        toEnum Int
    15 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc15
        toEnum Int
    16 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc16
        toEnum Int
    17 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc17
        toEnum Int
    18 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc18
        toEnum Int
    19 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc19
        toEnum Int
    20 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc20
        toEnum Int
    21 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc21
        toEnum Int
    22 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc22
        toEnum Int
    23 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc23
        toEnum Int
    24 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc24
        toEnum Int
    25 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc25
        toEnum Int
    26 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc26
        toEnum Int
    27 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc27
        toEnum Int
    28 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc28
        toEnum Int
    29 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc29
        toEnum Int
    30 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc30
        toEnum Int
    31 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc31
        toEnum Int
    32 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc32
        toEnum Int
    33 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc33
        toEnum Int
    34 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc34
        toEnum Int
    35 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc35
        toEnum Int
    36 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc36
        toEnum Int
    84 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc84
        toEnum Int
    91 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc91
        toEnum Int
    103 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc103
        toEnum Int
    107 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc107
        toEnum Int
    118 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc118
        toEnum Int
    122 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc122
        toEnum Int
    129 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc129
        toEnum Int
    130 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc130
        toEnum Int
    132 = UnicodeCombiningClassT
    UnicodeCombiningClassTCcc132
        toEnum Int
    200 = UnicodeCombiningClassT
    UnicodeCombiningClassTAttachedBelowLeft
        toEnum Int
    202 = UnicodeCombiningClassT
    UnicodeCombiningClassTAttachedBelow
        toEnum Int
    214 = UnicodeCombiningClassT
    UnicodeCombiningClassTAttachedAbove
        toEnum Int
    216 = UnicodeCombiningClassT
    UnicodeCombiningClassTAttachedAboveRight
        toEnum Int
    218 = UnicodeCombiningClassT
    UnicodeCombiningClassTBelowLeft
        toEnum Int
    220 = UnicodeCombiningClassT
    UnicodeCombiningClassTBelow
        toEnum Int
    222 = UnicodeCombiningClassT
    UnicodeCombiningClassTBelowRight
        toEnum Int
    224 = UnicodeCombiningClassT
    UnicodeCombiningClassTLeft
        toEnum Int
    226 = UnicodeCombiningClassT
    UnicodeCombiningClassTRight
        toEnum Int
    228 = UnicodeCombiningClassT
    UnicodeCombiningClassTAboveLeft
        toEnum Int
    230 = UnicodeCombiningClassT
    UnicodeCombiningClassTAbove
        toEnum Int
    232 = UnicodeCombiningClassT
    UnicodeCombiningClassTAboveRight
        toEnum Int
    233 = UnicodeCombiningClassT
    UnicodeCombiningClassTDoubleBelow
        toEnum Int
    234 = UnicodeCombiningClassT
    UnicodeCombiningClassTDoubleAbove
        toEnum Int
    240 = UnicodeCombiningClassT
    UnicodeCombiningClassTIotaSubscript
        toEnum Int
    255 = UnicodeCombiningClassT
    UnicodeCombiningClassTInvalid
        toEnum Int
    k = Int -> UnicodeCombiningClassT
    AnotherUnicodeCombiningClassT Int
    k

    instance P.Ord UnicodeCombiningClassT where
        compare :: UnicodeCombiningClassT -> UnicodeCombiningClassT -> Ordering
    compare UnicodeCombiningClassT
    a UnicodeCombiningClassT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (UnicodeCombiningClassT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum UnicodeCombiningClassT
    a) (UnicodeCombiningClassT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum UnicodeCombiningClassT
    b)

    type instance O.ParentTypes UnicodeCombiningClassT = '[]
    instance O.HasParentTypes UnicodeCombiningClassT

    foreign import ccall "hb_gobject_unicode_combining_class_get_type" c_hb_gobject_unicode_combining_class_get_type ::
        IO GType

    instance B.Types.TypedObject UnicodeCombiningClassT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_unicode_combining_class_get_type

    instance B.Types.BoxedEnum UnicodeCombiningClassT

    -- Enum style_tag_t
    -- | Defined by <https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg OpenType Design-Variation Axis Tag Registry>.
    --
    -- /Since: 3.0.0/
    data StyleTagT =
          StyleTagTItalic
        -- ^ Used to vary between non-italic and italic.
        -- A value of 0 can be interpreted as \"Roman\" (non-italic); a value of 1 can
        -- be interpreted as (fully) italic.
        | StyleTagTOpticalSize
        -- ^ Used to vary design to suit different text sizes.
        -- Non-zero. Values can be interpreted as text size, in points.
        | StyleTagTSlantAngle
        -- ^ Used to vary between upright and slanted text. Values
        -- must be greater than -90 and less than +90. Values can be interpreted as
        -- the angle, in counter-clockwise degrees, of oblique slant from whatever the
        -- designer considers to be upright for that font design. Typical right-leaning
        -- Italic fonts have a negative slant angle (typically around -12)
        | StyleTagTSlantRatio
        -- ^ same as /@hBSTYLETAGSLANTANGLE@/ expression as ratio.
        -- Typical right-leaning Italic fonts have a positive slant ratio (typically around 0.2)
        | StyleTagTWidth
        -- ^ Used to vary width of text from narrower to wider.
        -- Non-zero. Values can be interpreted as a percentage of whatever the font
        -- designer considers “normal width” for that font design.
        | StyleTagTWeight
        -- ^ Used to vary stroke thicknesses or other design details
        -- to give variation from lighter to blacker. Values can be interpreted in direct
        -- comparison to values for usWeightClass in the OS\/2 table,
        -- or the CSS font-weight property.
        | AnotherStyleTagT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> StyleTagT -> ShowS
    [StyleTagT] -> ShowS
    StyleTagT -> String
    (Int -> StyleTagT -> ShowS)
    -> (StyleTagT -> String)
    -> ([StyleTagT] -> ShowS)
    -> Show StyleTagT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> StyleTagT -> ShowS
    showsPrec :: Int -> StyleTagT -> ShowS
    $cshow :: StyleTagT -> String
    show :: StyleTagT -> String
    $cshowList :: [StyleTagT] -> ShowS
    showList :: [StyleTagT] -> ShowS
    Show, StyleTagT -> StyleTagT -> Bool
    (StyleTagT -> StyleTagT -> Bool)
    -> (StyleTagT -> StyleTagT -> Bool) -> Eq StyleTagT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: StyleTagT -> StyleTagT -> Bool
    == :: StyleTagT -> StyleTagT -> Bool
    $c/= :: StyleTagT -> StyleTagT -> Bool
    /= :: StyleTagT -> StyleTagT -> Bool
    Eq)

    instance P.Enum StyleTagT where
        fromEnum :: StyleTagT -> Int
    fromEnum StyleTagT
    StyleTagTItalic = Int
    1769234796
        fromEnum StyleTagT
    StyleTagTOpticalSize = Int
    1869640570
        fromEnum StyleTagT
    StyleTagTSlantAngle = Int
    1936486004
        fromEnum StyleTagT
    StyleTagTSlantRatio = Int
    1399615092
        fromEnum StyleTagT
    StyleTagTWidth = Int
    2003072104
        fromEnum StyleTagT
    StyleTagTWeight = Int
    2003265652
        fromEnum (AnotherStyleTagT Int
    k) = Int
    k

        toEnum :: Int -> StyleTagT
    toEnum Int
    1769234796 = StyleTagT
    StyleTagTItalic
        toEnum Int
    1869640570 = StyleTagT
    StyleTagTOpticalSize
        toEnum Int
    1936486004 = StyleTagT
    StyleTagTSlantAngle
        toEnum Int
    1399615092 = StyleTagT
    StyleTagTSlantRatio
        toEnum Int
    2003072104 = StyleTagT
    StyleTagTWidth
        toEnum Int
    2003265652 = StyleTagT
    StyleTagTWeight
        toEnum Int
    k = Int -> StyleTagT
    AnotherStyleTagT Int
    k

    instance P.Ord StyleTagT where
        compare :: StyleTagT -> StyleTagT -> Ordering
    compare StyleTagT
    a StyleTagT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (StyleTagT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum StyleTagT
    a) (StyleTagT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum StyleTagT
    b)

    type instance O.ParentTypes StyleTagT = '[]
    instance O.HasParentTypes StyleTagT

    foreign import ccall "hb_gobject_style_tag_get_type" c_hb_gobject_style_tag_get_type ::
        IO GType

    instance B.Types.TypedObject StyleTagT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_style_tag_get_type

    instance B.Types.BoxedEnum StyleTagT

    -- Enum script_t
    -- | Data type for scripts. Each t'GI.HarfBuzz.Enums.ScriptT'\'s value is an @/hb_tag_t/@ corresponding
    -- to the four-letter values defined by <https://unicode.org/iso15924/ ISO 15924>.
    --
    -- See also the Script (sc) property of the Unicode Character Database.
    data ScriptT =
          ScriptTCommon
        -- ^ @Zyyy@
        | ScriptTInherited
        -- ^ @Zinh@
        | ScriptTUnknown
        -- ^ @Zzzz@
        | ScriptTArabic
        -- ^ @Arab@
        | ScriptTArmenian
        -- ^ @Armn@
        | ScriptTBengali
        -- ^ @Beng@
        | ScriptTCyrillic
        -- ^ @Cyrl@
        | ScriptTDevanagari
        -- ^ @Deva@
        | ScriptTGeorgian
        -- ^ @Geor@
        | ScriptTGreek
        -- ^ @Grek@
        | ScriptTGujarati
        -- ^ @Gujr@
        | ScriptTGurmukhi
        -- ^ @Guru@
        | ScriptTHangul
        -- ^ @Hang@
        | ScriptTHan
        -- ^ @Hani@
        | ScriptTHebrew
        -- ^ @Hebr@
        | ScriptTHiragana
        -- ^ @Hira@
        | ScriptTKannada
        -- ^ @Knda@
        | ScriptTKatakana
        -- ^ @Kana@
        | ScriptTLao
        -- ^ @Laoo@
        | ScriptTLatin
        -- ^ @Latn@
        | ScriptTMalayalam
        -- ^ @Mlym@
        | ScriptTOriya
        -- ^ @Orya@
        | ScriptTTamil
        -- ^ @Taml@
        | ScriptTTelugu
        -- ^ @Telu@
        | ScriptTThai
        -- ^ @Thai@
        | ScriptTTibetan
        -- ^ @Tibt@
        | ScriptTBopomofo
        -- ^ @Bopo@
        | ScriptTBraille
        -- ^ @Brai@
        | ScriptTCanadianSyllabics
        -- ^ @Cans@
        | ScriptTCherokee
        -- ^ @Cher@
        | ScriptTEthiopic
        -- ^ @Ethi@
        | ScriptTKhmer
        -- ^ @Khmr@
        | ScriptTMongolian
        -- ^ @Mong@
        | ScriptTMyanmar
        -- ^ @Mymr@
        | ScriptTOgham
        -- ^ @Ogam@
        | ScriptTRunic
        -- ^ @Runr@
        | ScriptTSinhala
        -- ^ @Sinh@
        | ScriptTSyriac
        -- ^ @Syrc@
        | ScriptTThaana
        -- ^ @Thaa@
        | ScriptTYi
        -- ^ @Yiii@
        | ScriptTDeseret
        -- ^ @Dsrt@
        | ScriptTGothic
        -- ^ @Goth@
        | ScriptTOldItalic
        -- ^ @Ital@
        | ScriptTBuhid
        -- ^ @Buhd@
        | ScriptTHanunoo
        -- ^ @Hano@
        | ScriptTTagalog
        -- ^ @Tglg@
        | ScriptTTagbanwa
        -- ^ @Tagb@
        | ScriptTCypriot
        -- ^ @Cprt@
        | ScriptTLimbu
        -- ^ @Limb@
        | ScriptTLinearB
        -- ^ @Linb@
        | ScriptTOsmanya
        -- ^ @Osma@
        | ScriptTShavian
        -- ^ @Shaw@
        | ScriptTTaiLe
        -- ^ @Tale@
        | ScriptTUgaritic
        -- ^ @Ugar@
        | ScriptTBuginese
        -- ^ @Bugi@
        | ScriptTCoptic
        -- ^ @Copt@
        | ScriptTGlagolitic
        -- ^ @Glag@
        | ScriptTKharoshthi
        -- ^ @Khar@
        | ScriptTNewTaiLue
        -- ^ @Talu@
        | ScriptTOldPersian
        -- ^ @Xpeo@
        | ScriptTSylotiNagri
        -- ^ @Sylo@
        | ScriptTTifinagh
        -- ^ @Tfng@
        | ScriptTBalinese
        -- ^ @Bali@
        | ScriptTCuneiform
        -- ^ @Xsux@
        | ScriptTNko
        -- ^ @Nkoo@
        | ScriptTPhagsPa
        -- ^ @Phag@
        | ScriptTPhoenician
        -- ^ @Phnx@
        | ScriptTCarian
        -- ^ @Cari@
        | ScriptTCham
        -- ^ @Cham@
        | ScriptTKayahLi
        -- ^ @Kali@
        | ScriptTLepcha
        -- ^ @Lepc@
        | ScriptTLycian
        -- ^ @Lyci@
        | ScriptTLydian
        -- ^ @Lydi@
        | ScriptTOlChiki
        -- ^ @Olck@
        | ScriptTRejang
        -- ^ @Rjng@
        | ScriptTSaurashtra
        -- ^ @Saur@
        | ScriptTSundanese
        -- ^ @Sund@
        | ScriptTVai
        -- ^ @Vaii@
        | ScriptTAvestan
        -- ^ @Avst@
        | ScriptTBamum
        -- ^ @Bamu@
        | ScriptTEgyptianHieroglyphs
        -- ^ @Egyp@
        | ScriptTImperialAramaic
        -- ^ @Armi@
        | ScriptTInscriptionalPahlavi
        -- ^ @Phli@
        | ScriptTInscriptionalParthian
        -- ^ @Prti@
        | ScriptTJavanese
        -- ^ @Java@
        | ScriptTKaithi
        -- ^ @Kthi@
        | ScriptTLisu
        -- ^ @Lisu@
        | ScriptTMeeteiMayek
        -- ^ @Mtei@
        | ScriptTOldSouthArabian
        -- ^ @Sarb@
        | ScriptTOldTurkic
        -- ^ @Orkh@
        | ScriptTSamaritan
        -- ^ @Samr@
        | ScriptTTaiTham
        -- ^ @Lana@
        | ScriptTTaiViet
        -- ^ @Tavt@
        | ScriptTBatak
        -- ^ @Batk@
        | ScriptTBrahmi
        -- ^ @Brah@
        | ScriptTMandaic
        -- ^ @Mand@
        | ScriptTChakma
        -- ^ @Cakm@
        | ScriptTMeroiticCursive
        -- ^ @Merc@
        | ScriptTMeroiticHieroglyphs
        -- ^ @Mero@
        | ScriptTMiao
        -- ^ @Plrd@
        | ScriptTSharada
        -- ^ @Shrd@
        | ScriptTSoraSompeng
        -- ^ @Sora@
        | ScriptTTakri
        -- ^ @Takr@
        | ScriptTBassaVah
        -- ^ @Bass@, Since: 0.9.30
        | ScriptTCaucasianAlbanian
        -- ^ @Aghb@, Since: 0.9.30
        | ScriptTDuployan
        -- ^ @Dupl@, Since: 0.9.30
        | ScriptTElbasan
        -- ^ @Elba@, Since: 0.9.30
        | ScriptTGrantha
        -- ^ @Gran@, Since: 0.9.30
        | ScriptTKhojki
        -- ^ @Khoj@, Since: 0.9.30
        | ScriptTKhudawadi
        -- ^ @Sind@, Since: 0.9.30
        | ScriptTLinearA
        -- ^ @Lina@, Since: 0.9.30
        | ScriptTMahajani
        -- ^ @Mahj@, Since: 0.9.30
        | ScriptTManichaean
        -- ^ @Mani@, Since: 0.9.30
        | ScriptTMendeKikakui
        -- ^ @Mend@, Since: 0.9.30
        | ScriptTModi
        -- ^ @Modi@, Since: 0.9.30
        | ScriptTMro
        -- ^ @Mroo@, Since: 0.9.30
        | ScriptTNabataean
        -- ^ @Nbat@, Since: 0.9.30
        | ScriptTOldNorthArabian
        -- ^ @Narb@, Since: 0.9.30
        | ScriptTOldPermic
        -- ^ @Perm@, Since: 0.9.30
        | ScriptTPahawhHmong
        -- ^ @Hmng@, Since: 0.9.30
        | ScriptTPalmyrene
        -- ^ @Palm@, Since: 0.9.30
        | ScriptTPauCinHau
        -- ^ @Pauc@, Since: 0.9.30
        | ScriptTPsalterPahlavi
        -- ^ @Phlp@, Since: 0.9.30
        | ScriptTSiddham
        -- ^ @Sidd@, Since: 0.9.30
        | ScriptTTirhuta
        -- ^ @Tirh@, Since: 0.9.30
        | ScriptTWarangCiti
        -- ^ @Wara@, Since: 0.9.30
        | ScriptTAhom
        -- ^ @Ahom@, Since: 0.9.30
        | ScriptTAnatolianHieroglyphs
        -- ^ @Hluw@, Since: 0.9.30
        | ScriptTHatran
        -- ^ @Hatr@, Since: 0.9.30
        | ScriptTMultani
        -- ^ @Mult@, Since: 0.9.30
        | ScriptTOldHungarian
        -- ^ @Hung@, Since: 0.9.30
        | ScriptTSignwriting
        -- ^ @Sgnw@, Since: 0.9.30
        | ScriptTAdlam
        -- ^ @Adlm@, Since: 1.3.0
        | ScriptTBhaiksuki
        -- ^ @Bhks@, Since: 1.3.0
        | ScriptTMarchen
        -- ^ @Marc@, Since: 1.3.0
        | ScriptTOsage
        -- ^ @Osge@, Since: 1.3.0
        | ScriptTTangut
        -- ^ @Tang@, Since: 1.3.0
        | ScriptTNewa
        -- ^ @Newa@, Since: 1.3.0
        | ScriptTMasaramGondi
        -- ^ @Gonm@, Since: 1.6.0
        | ScriptTNushu
        -- ^ @Nshu@, Since: 1.6.0
        | ScriptTSoyombo
        -- ^ @Soyo@, Since: 1.6.0
        | ScriptTZanabazarSquare
        -- ^ @Zanb@, Since: 1.6.0
        | ScriptTDogra
        -- ^ @Dogr@, Since: 1.8.0
        | ScriptTGunjalaGondi
        -- ^ @Gong@, Since: 1.8.0
        | ScriptTHanifiRohingya
        -- ^ @Rohg@, Since: 1.8.0
        | ScriptTMakasar
        -- ^ @Maka@, Since: 1.8.0
        | ScriptTMedefaidrin
        -- ^ @Medf@, Since: 1.8.0
        | ScriptTOldSogdian
        -- ^ @Sogo@, Since: 1.8.0
        | ScriptTSogdian
        -- ^ @Sogd@, Since: 1.8.0
        | ScriptTElymaic
        -- ^ @Elym@, Since: 2.4.0
        | ScriptTNandinagari
        -- ^ @Nand@, Since: 2.4.0
        | ScriptTNyiakengPuachueHmong
        -- ^ @Hmnp@, Since: 2.4.0
        | ScriptTWancho
        -- ^ @Wcho@, Since: 2.4.0
        | ScriptTChorasmian
        -- ^ @Chrs@, Since: 2.6.7
        | ScriptTDivesAkuru
        -- ^ @Diak@, Since: 2.6.7
        | ScriptTKhitanSmallScript
        -- ^ @Kits@, Since: 2.6.7
        | ScriptTYezidi
        -- ^ @Yezi@, Since: 2.6.7
        | ScriptTCyproMinoan
        -- ^ @Cpmn@, Since: 3.0.0
        | ScriptTOldUyghur
        -- ^ @Ougr@, Since: 3.0.0
        | ScriptTTangsa
        -- ^ @Tnsa@, Since: 3.0.0
        | ScriptTToto
        -- ^ @Toto@, Since: 3.0.0
        | ScriptTVithkuqi
        -- ^ @Vith@, Since: 3.0.0
        | ScriptTMath
        -- ^ @Zmth@, Since: 3.4.0
        | ScriptTKawi
        -- ^ @Kawi@, Since: 5.2.0
        | ScriptTNagMundari
        -- ^ @Nagm@, Since: 5.2.0
        | ScriptTInvalid
        -- ^ No script set
        | AnotherScriptT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> ScriptT -> ShowS
    [ScriptT] -> ShowS
    ScriptT -> String
    (Int -> ScriptT -> ShowS)
    -> (ScriptT -> String) -> ([ScriptT] -> ShowS) -> Show ScriptT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> ScriptT -> ShowS
    showsPrec :: Int -> ScriptT -> ShowS
    $cshow :: ScriptT -> String
    show :: ScriptT -> String
    $cshowList :: [ScriptT] -> ShowS
    showList :: [ScriptT] -> ShowS
    Show, ScriptT -> ScriptT -> Bool
    (ScriptT -> ScriptT -> Bool)
    -> (ScriptT -> ScriptT -> Bool) -> Eq ScriptT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: ScriptT -> ScriptT -> Bool
    == :: ScriptT -> ScriptT -> Bool
    $c/= :: ScriptT -> ScriptT -> Bool
    /= :: ScriptT -> ScriptT -> Bool
    Eq)

    instance P.Enum ScriptT where
        fromEnum :: ScriptT -> Int
    fromEnum ScriptT
    ScriptTCommon = Int
    1517910393
        fromEnum ScriptT
    ScriptTInherited = Int
    1516858984
        fromEnum ScriptT
    ScriptTUnknown = Int
    1517976186
        fromEnum ScriptT
    ScriptTArabic = Int
    1098015074
        fromEnum ScriptT
    ScriptTArmenian = Int
    1098018158
        fromEnum ScriptT
    ScriptTBengali = Int
    1113943655
        fromEnum ScriptT
    ScriptTCyrillic = Int
    1132032620
        fromEnum ScriptT
    ScriptTDevanagari = Int
    1147500129
        fromEnum ScriptT
    ScriptTGeorgian = Int
    1197830002
        fromEnum ScriptT
    ScriptTGreek = Int
    1198679403
        fromEnum ScriptT
    ScriptTGujarati = Int
    1198877298
        fromEnum ScriptT
    ScriptTGurmukhi = Int
    1198879349
        fromEnum ScriptT
    ScriptTHangul = Int
    1214344807
        fromEnum ScriptT
    ScriptTHan = Int
    1214344809
        fromEnum ScriptT
    ScriptTHebrew = Int
    1214603890
        fromEnum ScriptT
    ScriptTHiragana = Int
    1214870113
        fromEnum ScriptT
    ScriptTKannada = Int
    1265525857
        fromEnum ScriptT
    ScriptTKatakana = Int
    1264676449
        fromEnum ScriptT
    ScriptTLao = Int
    1281453935
        fromEnum ScriptT
    ScriptTLatin = Int
    1281455214
        fromEnum ScriptT
    ScriptTMalayalam = Int
    1298954605
        fromEnum ScriptT
    ScriptTOriya = Int
    1332902241
        fromEnum ScriptT
    ScriptTTamil = Int
    1415671148
        fromEnum ScriptT
    ScriptTTelugu = Int
    1415933045
        fromEnum ScriptT
    ScriptTThai = Int
    1416126825
        fromEnum ScriptT
    ScriptTTibetan = Int
    1416192628
        fromEnum ScriptT
    ScriptTBopomofo = Int
    1114599535
        fromEnum ScriptT
    ScriptTBraille = Int
    1114792297
        fromEnum ScriptT
    ScriptTCanadianSyllabics = Int
    1130458739
        fromEnum ScriptT
    ScriptTCherokee = Int
    1130915186
        fromEnum ScriptT
    ScriptTEthiopic = Int
    1165256809
        fromEnum ScriptT
    ScriptTKhmer = Int
    1265134962
        fromEnum ScriptT
    ScriptTMongolian = Int
    1299148391
        fromEnum ScriptT
    ScriptTMyanmar = Int
    1299803506
        fromEnum ScriptT
    ScriptTOgham = Int
    1332175213
        fromEnum ScriptT
    ScriptTRunic = Int
    1383427698
        fromEnum ScriptT
    ScriptTSinhala = Int
    1399418472
        fromEnum ScriptT
    ScriptTSyriac = Int
    1400468067
        fromEnum ScriptT
    ScriptTThaana = Int
    1416126817
        fromEnum ScriptT
    ScriptTYi = Int
    1500080489
        fromEnum ScriptT
    ScriptTDeseret = Int
    1148416628
        fromEnum ScriptT
    ScriptTGothic = Int
    1198486632
        fromEnum ScriptT
    ScriptTOldItalic = Int
    1232363884
        fromEnum ScriptT
    ScriptTBuhid = Int
    1114990692
        fromEnum ScriptT
    ScriptTHanunoo = Int
    1214344815
        fromEnum ScriptT
    ScriptTTagalog = Int
    1416064103
        fromEnum ScriptT
    ScriptTTagbanwa = Int
    1415669602
        fromEnum ScriptT
    ScriptTCypriot = Int
    1131442804
        fromEnum ScriptT
    ScriptTLimbu = Int
    1281977698
        fromEnum ScriptT
    ScriptTLinearB = Int
    1281977954
        fromEnum ScriptT
    ScriptTOsmanya = Int
    1332964705
        fromEnum ScriptT
    ScriptTShavian = Int
    1399349623
        fromEnum ScriptT
    ScriptTTaiLe = Int
    1415670885
        fromEnum ScriptT
    ScriptTUgaritic = Int
    1432838514
        fromEnum ScriptT
    ScriptTBuginese = Int
    1114990441
        fromEnum ScriptT
    ScriptTCoptic = Int
    1131376756
        fromEnum ScriptT
    ScriptTGlagolitic = Int
    1198285159
        fromEnum ScriptT
    ScriptTKharoshthi = Int
    1265131890
        fromEnum ScriptT
    ScriptTNewTaiLue = Int
    1415670901
        fromEnum ScriptT
    ScriptTOldPersian = Int
    1483761007
        fromEnum ScriptT
    ScriptTSylotiNagri = Int
    1400466543
        fromEnum ScriptT
    ScriptTTifinagh = Int
    1415999079
        fromEnum ScriptT
    ScriptTBalinese = Int
    1113681001
        fromEnum ScriptT
    ScriptTCuneiform = Int
    1483961720
        fromEnum ScriptT
    ScriptTNko = Int
    1315663727
        fromEnum ScriptT
    ScriptTPhagsPa = Int
    1349017959
        fromEnum ScriptT
    ScriptTPhoenician = Int
    1349021304
        fromEnum ScriptT
    ScriptTCarian = Int
    1130459753
        fromEnum ScriptT
    ScriptTCham = Int
    1130914157
        fromEnum ScriptT
    ScriptTKayahLi = Int
    1264675945
        fromEnum ScriptT
    ScriptTLepcha = Int
    1281716323
        fromEnum ScriptT
    ScriptTLycian = Int
    1283023721
        fromEnum ScriptT
    ScriptTLydian = Int
    1283023977
        fromEnum ScriptT
    ScriptTOlChiki = Int
    1332503403
        fromEnum ScriptT
    ScriptTRejang = Int
    1382706791
        fromEnum ScriptT
    ScriptTSaurashtra = Int
    1398895986
        fromEnum ScriptT
    ScriptTSundanese = Int
    1400204900
        fromEnum ScriptT
    ScriptTVai = Int
    1449224553
        fromEnum ScriptT
    ScriptTAvestan = Int
    1098281844
        fromEnum ScriptT
    ScriptTBamum = Int
    1113681269
        fromEnum ScriptT
    ScriptTEgyptianHieroglyphs = Int
    1164409200
        fromEnum ScriptT
    ScriptTImperialAramaic = Int
    1098018153
        fromEnum ScriptT
    ScriptTInscriptionalPahlavi = Int
    1349020777
        fromEnum ScriptT
    ScriptTInscriptionalParthian = Int
    1349678185
        fromEnum ScriptT
    ScriptTJavanese = Int
    1247901281
        fromEnum ScriptT
    ScriptTKaithi = Int
    1265920105
        fromEnum ScriptT
    ScriptTLisu = Int
    1281979253
        fromEnum ScriptT
    ScriptTMeeteiMayek = Int
    1299473769
        fromEnum ScriptT
    ScriptTOldSouthArabian = Int
    1398895202
        fromEnum ScriptT
    ScriptTOldTurkic = Int
    1332898664
        fromEnum ScriptT
    ScriptTSamaritan = Int
    1398893938
        fromEnum ScriptT
    ScriptTTaiTham = Int
    1281453665
        fromEnum ScriptT
    ScriptTTaiViet = Int
    1415673460
        fromEnum ScriptT
    ScriptTBatak = Int
    1113683051
        fromEnum ScriptT
    ScriptTBrahmi = Int
    1114792296
        fromEnum ScriptT
    ScriptTMandaic = Int
    1298230884
        fromEnum ScriptT
    ScriptTChakma = Int
    1130457965
        fromEnum ScriptT
    ScriptTMeroiticCursive = Int
    1298494051
        fromEnum ScriptT
    ScriptTMeroiticHieroglyphs = Int
    1298494063
        fromEnum ScriptT
    ScriptTMiao = Int
    1349284452
        fromEnum ScriptT
    ScriptTSharada = Int
    1399353956
        fromEnum ScriptT
    ScriptTSoraSompeng = Int
    1399812705
        fromEnum ScriptT
    ScriptTTakri = Int
    1415670642
        fromEnum ScriptT
    ScriptTBassaVah = Int
    1113682803
        fromEnum ScriptT
    ScriptTCaucasianAlbanian = Int
    1097295970
        fromEnum ScriptT
    ScriptTDuployan = Int
    1148547180
        fromEnum ScriptT
    ScriptTElbasan = Int
    1164730977
        fromEnum ScriptT
    ScriptTGrantha = Int
    1198678382
        fromEnum ScriptT
    ScriptTKhojki = Int
    1265135466
        fromEnum ScriptT
    ScriptTKhudawadi = Int
    1399418468
        fromEnum ScriptT
    ScriptTLinearA = Int
    1281977953
        fromEnum ScriptT
    ScriptTMahajani = Int
    1298229354
        fromEnum ScriptT
    ScriptTManichaean = Int
    1298230889
        fromEnum ScriptT
    ScriptTMendeKikakui = Int
    1298493028
        fromEnum ScriptT
    ScriptTModi = Int
    1299145833
        fromEnum ScriptT
    ScriptTMro = Int
    1299345263
        fromEnum ScriptT
    ScriptTNabataean = Int
    1315070324
        fromEnum ScriptT
    ScriptTOldNorthArabian = Int
    1315009122
        fromEnum ScriptT
    ScriptTOldPermic = Int
    1348825709
        fromEnum ScriptT
    ScriptTPahawhHmong = Int
    1215131239
        fromEnum ScriptT
    ScriptTPalmyrene = Int
    1348562029
        fromEnum ScriptT
    ScriptTPauCinHau = Int
    1348564323
        fromEnum ScriptT
    ScriptTPsalterPahlavi = Int
    1349020784
        fromEnum ScriptT
    ScriptTSiddham = Int
    1399415908
        fromEnum ScriptT
    ScriptTTirhuta = Int
    1416196712
        fromEnum ScriptT
    ScriptTWarangCiti = Int
    1466004065
        fromEnum ScriptT
    ScriptTAhom = Int
    1097363309
        fromEnum ScriptT
    ScriptTAnatolianHieroglyphs = Int
    1215067511
        fromEnum ScriptT
    ScriptTHatran = Int
    1214346354
        fromEnum ScriptT
    ScriptTMultani = Int
    1299541108
        fromEnum ScriptT
    ScriptTOldHungarian = Int
    1215655527
        fromEnum ScriptT
    ScriptTSignwriting = Int
    1399287415
        fromEnum ScriptT
    ScriptTAdlam = Int
    1097100397
        fromEnum ScriptT
    ScriptTBhaiksuki = Int
    1114139507
        fromEnum ScriptT
    ScriptTMarchen = Int
    1298231907
        fromEnum ScriptT
    ScriptTOsage = Int
    1332963173
        fromEnum ScriptT
    ScriptTTangut = Int
    1415671399
        fromEnum ScriptT
    ScriptTNewa = Int
    1315272545
        fromEnum ScriptT
    ScriptTMasaramGondi = Int
    1198485101
        fromEnum ScriptT
    ScriptTNushu = Int
    1316186229
        fromEnum ScriptT
    ScriptTSoyombo = Int
    1399814511
        fromEnum ScriptT
    ScriptTZanabazarSquare = Int
    1516334690
        fromEnum ScriptT
    ScriptTDogra = Int
    1148151666
        fromEnum ScriptT
    ScriptTGunjalaGondi = Int
    1198485095
        fromEnum ScriptT
    ScriptTHanifiRohingya = Int
    1383032935
        fromEnum ScriptT
    ScriptTMakasar = Int
    1298230113
        fromEnum ScriptT
    ScriptTMedefaidrin = Int
    1298490470
        fromEnum ScriptT
    ScriptTOldSogdian = Int
    1399809903
        fromEnum ScriptT
    ScriptTSogdian = Int
    1399809892
        fromEnum ScriptT
    ScriptTElymaic = Int
    1164736877
        fromEnum ScriptT
    ScriptTNandinagari = Int
    1315008100
        fromEnum ScriptT
    ScriptTNyiakengPuachueHmong = Int
    1215131248
        fromEnum ScriptT
    ScriptTWancho = Int
    1466132591
        fromEnum ScriptT
    ScriptTChorasmian = Int
    1130918515
        fromEnum ScriptT
    ScriptTDivesAkuru = Int
    1147756907
        fromEnum ScriptT
    ScriptTKhitanSmallScript = Int
    1265202291
        fromEnum ScriptT
    ScriptTYezidi = Int
    1499822697
        fromEnum ScriptT
    ScriptTCyproMinoan = Int
    1131441518
        fromEnum ScriptT
    ScriptTOldUyghur = Int
    1333094258
        fromEnum ScriptT
    ScriptTTangsa = Int
    1416524641
        fromEnum ScriptT
    ScriptTToto = Int
    1416590447
        fromEnum ScriptT
    ScriptTVithkuqi = Int
    1449751656
        fromEnum ScriptT
    ScriptTMath = Int
    1517122664
        fromEnum ScriptT
    ScriptTKawi = Int
    1264678761
        fromEnum ScriptT
    ScriptTNagMundari = Int
    1315006317
        fromEnum ScriptT
    ScriptTInvalid = Int
    0
        fromEnum (AnotherScriptT Int
    k) = Int
    k

        toEnum :: Int -> ScriptT
    toEnum Int
    1517910393 = ScriptT
    ScriptTCommon
        toEnum Int
    1516858984 = ScriptT
    ScriptTInherited
        toEnum Int
    1517976186 = ScriptT
    ScriptTUnknown
        toEnum Int
    1098015074 = ScriptT
    ScriptTArabic
        toEnum Int
    1098018158 = ScriptT
    ScriptTArmenian
        toEnum Int
    1113943655 = ScriptT
    ScriptTBengali
        toEnum Int
    1132032620 = ScriptT
    ScriptTCyrillic
        toEnum Int
    1147500129 = ScriptT
    ScriptTDevanagari
        toEnum Int
    1197830002 = ScriptT
    ScriptTGeorgian
        toEnum Int
    1198679403 = ScriptT
    ScriptTGreek
        toEnum Int
    1198877298 = ScriptT
    ScriptTGujarati
        toEnum Int
    1198879349 = ScriptT
    ScriptTGurmukhi
        toEnum Int
    1214344807 = ScriptT
    ScriptTHangul
        toEnum Int
    1214344809 = ScriptT
    ScriptTHan
        toEnum Int
    1214603890 = ScriptT
    ScriptTHebrew
        toEnum Int
    1214870113 = ScriptT
    ScriptTHiragana
        toEnum Int
    1265525857 = ScriptT
    ScriptTKannada
        toEnum Int
    1264676449 = ScriptT
    ScriptTKatakana
        toEnum Int
    1281453935 = ScriptT
    ScriptTLao
        toEnum Int
    1281455214 = ScriptT
    ScriptTLatin
        toEnum Int
    1298954605 = ScriptT
    ScriptTMalayalam
        toEnum Int
    1332902241 = ScriptT
    ScriptTOriya
        toEnum Int
    1415671148 = ScriptT
    ScriptTTamil
        toEnum Int
    1415933045 = ScriptT
    ScriptTTelugu
        toEnum Int
    1416126825 = ScriptT
    ScriptTThai
        toEnum Int
    1416192628 = ScriptT
    ScriptTTibetan
        toEnum Int
    1114599535 = ScriptT
    ScriptTBopomofo
        toEnum Int
    1114792297 = ScriptT
    ScriptTBraille
        toEnum Int
    1130458739 = ScriptT
    ScriptTCanadianSyllabics
        toEnum Int
    1130915186 = ScriptT
    ScriptTCherokee
        toEnum Int
    1165256809 = ScriptT
    ScriptTEthiopic
        toEnum Int
    1265134962 = ScriptT
    ScriptTKhmer
        toEnum Int
    1299148391 = ScriptT
    ScriptTMongolian
        toEnum Int
    1299803506 = ScriptT
    ScriptTMyanmar
        toEnum Int
    1332175213 = ScriptT
    ScriptTOgham
        toEnum Int
    1383427698 = ScriptT
    ScriptTRunic
        toEnum Int
    1399418472 = ScriptT
    ScriptTSinhala
        toEnum Int
    1400468067 = ScriptT
    ScriptTSyriac
        toEnum Int
    1416126817 = ScriptT
    ScriptTThaana
        toEnum Int
    1500080489 = ScriptT
    ScriptTYi
        toEnum Int
    1148416628 = ScriptT
    ScriptTDeseret
        toEnum Int
    1198486632 = ScriptT
    ScriptTGothic
        toEnum Int
    1232363884 = ScriptT
    ScriptTOldItalic
        toEnum Int
    1114990692 = ScriptT
    ScriptTBuhid
        toEnum Int
    1214344815 = ScriptT
    ScriptTHanunoo
        toEnum Int
    1416064103 = ScriptT
    ScriptTTagalog
        toEnum Int
    1415669602 = ScriptT
    ScriptTTagbanwa
        toEnum Int
    1131442804 = ScriptT
    ScriptTCypriot
        toEnum Int
    1281977698 = ScriptT
    ScriptTLimbu
        toEnum Int
    1281977954 = ScriptT
    ScriptTLinearB
        toEnum Int
    1332964705 = ScriptT
    ScriptTOsmanya
        toEnum Int
    1399349623 = ScriptT
    ScriptTShavian
        toEnum Int
    1415670885 = ScriptT
    ScriptTTaiLe
        toEnum Int
    1432838514 = ScriptT
    ScriptTUgaritic
        toEnum Int
    1114990441 = ScriptT
    ScriptTBuginese
        toEnum Int
    1131376756 = ScriptT
    ScriptTCoptic
        toEnum Int
    1198285159 = ScriptT
    ScriptTGlagolitic
        toEnum Int
    1265131890 = ScriptT
    ScriptTKharoshthi
        toEnum Int
    1415670901 = ScriptT
    ScriptTNewTaiLue
        toEnum Int
    1483761007 = ScriptT
    ScriptTOldPersian
        toEnum Int
    1400466543 = ScriptT
    ScriptTSylotiNagri
        toEnum Int
    1415999079 = ScriptT
    ScriptTTifinagh
        toEnum Int
    1113681001 = ScriptT
    ScriptTBalinese
        toEnum Int
    1483961720 = ScriptT
    ScriptTCuneiform
        toEnum Int
    1315663727 = ScriptT
    ScriptTNko
        toEnum Int
    1349017959 = ScriptT
    ScriptTPhagsPa
        toEnum Int
    1349021304 = ScriptT
    ScriptTPhoenician
        toEnum Int
    1130459753 = ScriptT
    ScriptTCarian
        toEnum Int
    1130914157 = ScriptT
    ScriptTCham
        toEnum Int
    1264675945 = ScriptT
    ScriptTKayahLi
        toEnum Int
    1281716323 = ScriptT
    ScriptTLepcha
        toEnum Int
    1283023721 = ScriptT
    ScriptTLycian
        toEnum Int
    1283023977 = ScriptT
    ScriptTLydian
        toEnum Int
    1332503403 = ScriptT
    ScriptTOlChiki
        toEnum Int
    1382706791 = ScriptT
    ScriptTRejang
        toEnum Int
    1398895986 = ScriptT
    ScriptTSaurashtra
        toEnum Int
    1400204900 = ScriptT
    ScriptTSundanese
        toEnum Int
    1449224553 = ScriptT
    ScriptTVai
        toEnum Int
    1098281844 = ScriptT
    ScriptTAvestan
        toEnum Int
    1113681269 = ScriptT
    ScriptTBamum
        toEnum Int
    1164409200 = ScriptT
    ScriptTEgyptianHieroglyphs
        toEnum Int
    1098018153 = ScriptT
    ScriptTImperialAramaic
        toEnum Int
    1349020777 = ScriptT
    ScriptTInscriptionalPahlavi
        toEnum Int
    1349678185 = ScriptT
    ScriptTInscriptionalParthian
        toEnum Int
    1247901281 = ScriptT
    ScriptTJavanese
        toEnum Int
    1265920105 = ScriptT
    ScriptTKaithi
        toEnum Int
    1281979253 = ScriptT
    ScriptTLisu
        toEnum Int
    1299473769 = ScriptT
    ScriptTMeeteiMayek
        toEnum Int
    1398895202 = ScriptT
    ScriptTOldSouthArabian
        toEnum Int
    1332898664 = ScriptT
    ScriptTOldTurkic
        toEnum Int
    1398893938 = ScriptT
    ScriptTSamaritan
        toEnum Int
    1281453665 = ScriptT
    ScriptTTaiTham
        toEnum Int
    1415673460 = ScriptT
    ScriptTTaiViet
        toEnum Int
    1113683051 = ScriptT
    ScriptTBatak
        toEnum Int
    1114792296 = ScriptT
    ScriptTBrahmi
        toEnum Int
    1298230884 = ScriptT
    ScriptTMandaic
        toEnum Int
    1130457965 = ScriptT
    ScriptTChakma
        toEnum Int
    1298494051 = ScriptT
    ScriptTMeroiticCursive
        toEnum Int
    1298494063 = ScriptT
    ScriptTMeroiticHieroglyphs
        toEnum Int
    1349284452 = ScriptT
    ScriptTMiao
        toEnum Int
    1399353956 = ScriptT
    ScriptTSharada
        toEnum Int
    1399812705 = ScriptT
    ScriptTSoraSompeng
        toEnum Int
    1415670642 = ScriptT
    ScriptTTakri
        toEnum Int
    1113682803 = ScriptT
    ScriptTBassaVah
        toEnum Int
    1097295970 = ScriptT
    ScriptTCaucasianAlbanian
        toEnum Int
    1148547180 = ScriptT
    ScriptTDuployan
        toEnum Int
    1164730977 = ScriptT
    ScriptTElbasan
        toEnum Int
    1198678382 = ScriptT
    ScriptTGrantha
        toEnum Int
    1265135466 = ScriptT
    ScriptTKhojki
        toEnum Int
    1399418468 = ScriptT
    ScriptTKhudawadi
        toEnum Int
    1281977953 = ScriptT
    ScriptTLinearA
        toEnum Int
    1298229354 = ScriptT
    ScriptTMahajani
        toEnum Int
    1298230889 = ScriptT
    ScriptTManichaean
        toEnum Int
    1298493028 = ScriptT
    ScriptTMendeKikakui
        toEnum Int
    1299145833 = ScriptT
    ScriptTModi
        toEnum Int
    1299345263 = ScriptT
    ScriptTMro
        toEnum Int
    1315070324 = ScriptT
    ScriptTNabataean
        toEnum Int
    1315009122 = ScriptT
    ScriptTOldNorthArabian
        toEnum Int
    1348825709 = ScriptT
    ScriptTOldPermic
        toEnum Int
    1215131239 = ScriptT
    ScriptTPahawhHmong
        toEnum Int
    1348562029 = ScriptT
    ScriptTPalmyrene
        toEnum Int
    1348564323 = ScriptT
    ScriptTPauCinHau
        toEnum Int
    1349020784 = ScriptT
    ScriptTPsalterPahlavi
        toEnum Int
    1399415908 = ScriptT
    ScriptTSiddham
        toEnum Int
    1416196712 = ScriptT
    ScriptTTirhuta
        toEnum Int
    1466004065 = ScriptT
    ScriptTWarangCiti
        toEnum Int
    1097363309 = ScriptT
    ScriptTAhom
        toEnum Int
    1215067511 = ScriptT
    ScriptTAnatolianHieroglyphs
        toEnum Int
    1214346354 = ScriptT
    ScriptTHatran
        toEnum Int
    1299541108 = ScriptT
    ScriptTMultani
        toEnum Int
    1215655527 = ScriptT
    ScriptTOldHungarian
        toEnum Int
    1399287415 = ScriptT
    ScriptTSignwriting
        toEnum Int
    1097100397 = ScriptT
    ScriptTAdlam
        toEnum Int
    1114139507 = ScriptT
    ScriptTBhaiksuki
        toEnum Int
    1298231907 = ScriptT
    ScriptTMarchen
        toEnum Int
    1332963173 = ScriptT
    ScriptTOsage
        toEnum Int
    1415671399 = ScriptT
    ScriptTTangut
        toEnum Int
    1315272545 = ScriptT
    ScriptTNewa
        toEnum Int
    1198485101 = ScriptT
    ScriptTMasaramGondi
        toEnum Int
    1316186229 = ScriptT
    ScriptTNushu
        toEnum Int
    1399814511 = ScriptT
    ScriptTSoyombo
        toEnum Int
    1516334690 = ScriptT
    ScriptTZanabazarSquare
        toEnum Int
    1148151666 = ScriptT
    ScriptTDogra
        toEnum Int
    1198485095 = ScriptT
    ScriptTGunjalaGondi
        toEnum Int
    1383032935 = ScriptT
    ScriptTHanifiRohingya
        toEnum Int
    1298230113 = ScriptT
    ScriptTMakasar
        toEnum Int
    1298490470 = ScriptT
    ScriptTMedefaidrin
        toEnum Int
    1399809903 = ScriptT
    ScriptTOldSogdian
        toEnum Int
    1399809892 = ScriptT
    ScriptTSogdian
        toEnum Int
    1164736877 = ScriptT
    ScriptTElymaic
        toEnum Int
    1315008100 = ScriptT
    ScriptTNandinagari
        toEnum Int
    1215131248 = ScriptT
    ScriptTNyiakengPuachueHmong
        toEnum Int
    1466132591 = ScriptT
    ScriptTWancho
        toEnum Int
    1130918515 = ScriptT
    ScriptTChorasmian
        toEnum Int
    1147756907 = ScriptT
    ScriptTDivesAkuru
        toEnum Int
    1265202291 = ScriptT
    ScriptTKhitanSmallScript
        toEnum Int
    1499822697 = ScriptT
    ScriptTYezidi
        toEnum Int
    1131441518 = ScriptT
    ScriptTCyproMinoan
        toEnum Int
    1333094258 = ScriptT
    ScriptTOldUyghur
        toEnum Int
    1416524641 = ScriptT
    ScriptTTangsa
        toEnum Int
    1416590447 = ScriptT
    ScriptTToto
        toEnum Int
    1449751656 = ScriptT
    ScriptTVithkuqi
        toEnum Int
    1517122664 = ScriptT
    ScriptTMath
        toEnum Int
    1264678761 = ScriptT
    ScriptTKawi
        toEnum Int
    1315006317 = ScriptT
    ScriptTNagMundari
        toEnum Int
    0 = ScriptT
    ScriptTInvalid
        toEnum Int
    k = Int -> ScriptT
    AnotherScriptT Int
    k

    instance P.Ord ScriptT where
        compare :: ScriptT -> ScriptT -> Ordering
    compare ScriptT
    a ScriptT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (ScriptT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum ScriptT
    a) (ScriptT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum ScriptT
    b)

    type instance O.ParentTypes ScriptT = '[]
    instance O.HasParentTypes ScriptT

    foreign import ccall "hb_gobject_script_get_type" c_hb_gobject_script_get_type ::
        IO GType

    instance B.Types.TypedObject ScriptT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_script_get_type

    instance B.Types.BoxedEnum ScriptT

    -- Enum paint_extend_t
    -- | The values of this enumeration determine how color values
    -- outside the minimum and maximum defined offset on a t'GI.HarfBuzz.Structs.ColorLineT.ColorLineT'
    -- are determined.
    --
    -- See the OpenType spec <https://learn.microsoft.com/en-us/typography/opentype/spec/colr COLR>
    -- section for details.
    --
    -- /Since: 7.0.0/
    data PaintExtendT =
          PaintExtendTPad
        -- ^ Outside the defined interval,
        --   the color of the closest color stop is used.
        | PaintExtendTRepeat
        -- ^ The color line is repeated over
        --   repeated multiples of the defined interval
        | PaintExtendTReflect
        -- ^ The color line is repeated over
        --      repeated intervals, as for the repeat mode.
        --      However, in each repeated interval, the ordering of
        --      color stops is the reverse of the adjacent interval.
        | AnotherPaintExtendT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> PaintExtendT -> ShowS
    [PaintExtendT] -> ShowS
    PaintExtendT -> String
    (Int -> PaintExtendT -> ShowS)
    -> (PaintExtendT -> String)
    -> ([PaintExtendT] -> ShowS)
    -> Show PaintExtendT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> PaintExtendT -> ShowS
    showsPrec :: Int -> PaintExtendT -> ShowS
    $cshow :: PaintExtendT -> String
    show :: PaintExtendT -> String
    $cshowList :: [PaintExtendT] -> ShowS
    showList :: [PaintExtendT] -> ShowS
    Show, PaintExtendT -> PaintExtendT -> Bool
    (PaintExtendT -> PaintExtendT -> Bool)
    -> (PaintExtendT -> PaintExtendT -> Bool) -> Eq PaintExtendT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: PaintExtendT -> PaintExtendT -> Bool
    == :: PaintExtendT -> PaintExtendT -> Bool
    $c/= :: PaintExtendT -> PaintExtendT -> Bool
    /= :: PaintExtendT -> PaintExtendT -> Bool
    Eq)

    instance P.Enum PaintExtendT where
        fromEnum :: PaintExtendT -> Int
    fromEnum PaintExtendT
    PaintExtendTPad = Int
    0
        fromEnum PaintExtendT
    PaintExtendTRepeat = Int
    1
        fromEnum PaintExtendT
    PaintExtendTReflect = Int
    2
        fromEnum (AnotherPaintExtendT Int
    k) = Int
    k

        toEnum :: Int -> PaintExtendT
    toEnum Int
    0 = PaintExtendT
    PaintExtendTPad
        toEnum Int
    1 = PaintExtendT
    PaintExtendTRepeat
        toEnum Int
    2 = PaintExtendT
    PaintExtendTReflect
        toEnum Int
    k = Int -> PaintExtendT
    AnotherPaintExtendT Int
    k

    instance P.Ord PaintExtendT where
        compare :: PaintExtendT -> PaintExtendT -> Ordering
    compare PaintExtendT
    a PaintExtendT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (PaintExtendT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum PaintExtendT
    a) (PaintExtendT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum PaintExtendT
    b)

    type instance O.ParentTypes PaintExtendT = '[]
    instance O.HasParentTypes PaintExtendT

    foreign import ccall "hb_gobject_paint_extend_get_type" c_hb_gobject_paint_extend_get_type ::
        IO GType

    instance B.Types.TypedObject PaintExtendT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_paint_extend_get_type

    instance B.Types.BoxedEnum PaintExtendT

    -- Enum paint_composite_mode_t
    -- | The values of this enumeration describe the compositing modes
    -- that can be used when combining temporary redirected drawing
    -- with the backdrop.
    --
    -- See the OpenType spec <https://learn.microsoft.com/en-us/typography/opentype/spec/colr COLR>
    -- section for details.
    --
    -- /Since: 7.0.0/
    data PaintCompositeModeT =
          PaintCompositeModeTClear
        -- ^ clear destination layer (bounded)
        | PaintCompositeModeTSrc
        -- ^ replace destination layer (bounded)
        | PaintCompositeModeTDest
        -- ^ ignore the source
        | PaintCompositeModeTSrcOver
        -- ^ draw source layer on top of destination layer
        -- (bounded)
        | PaintCompositeModeTDestOver
        -- ^ draw destination on top of source
        | PaintCompositeModeTSrcIn
        -- ^ draw source where there was destination content
        -- (unbounded)
        | PaintCompositeModeTDestIn
        -- ^ leave destination only where there was
        -- source content (unbounded)
        | PaintCompositeModeTSrcOut
        -- ^ draw source where there was no destination
        -- content (unbounded)
        | PaintCompositeModeTDestOut
        -- ^ leave destination only where there was no
        -- source content
        | PaintCompositeModeTSrcAtop
        -- ^ draw source on top of destination content and
        -- only there
        | PaintCompositeModeTDestAtop
        -- ^ leave destination on top of source content
        -- and only there (unbounded)
        | PaintCompositeModeTXor
        -- ^ source and destination are shown where there is only
        -- one of them
        | PaintCompositeModeTPlus
        -- ^ source and destination layers are accumulated
        | PaintCompositeModeTScreen
        -- ^ source and destination are complemented and
        -- multiplied. This causes the result to be at least as light as the lighter
        -- inputs.
        | PaintCompositeModeTOverlay
        -- ^ multiplies or screens, depending on the
        -- lightness of the destination color.
        | PaintCompositeModeTDarken
        -- ^ replaces the destination with the source if it
        -- is darker, otherwise keeps the source.
        | PaintCompositeModeTLighten
        -- ^ replaces the destination with the source if it
        -- is lighter, otherwise keeps the source.
        | PaintCompositeModeTColorDodge
        -- ^ brightens the destination color to reflect
        -- the source color.
        | PaintCompositeModeTColorBurn
        -- ^ darkens the destination color to reflect
        -- the source color.
        | PaintCompositeModeTHardLight
        -- ^ Multiplies or screens, dependent on source
        -- color.
        | PaintCompositeModeTSoftLight
        -- ^ Darkens or lightens, dependent on source
        -- color.
        | PaintCompositeModeTDifference
        -- ^ Takes the difference of the source and
        -- destination color.
        | PaintCompositeModeTExclusion
        -- ^ Produces an effect similar to difference, but
        -- with lower contrast.
        | PaintCompositeModeTMultiply
        -- ^ source and destination layers are multiplied.
        -- This causes the result to be at least as dark as the darker inputs.
        | PaintCompositeModeTHslHue
        -- ^ Creates a color with the hue of the source
        -- and the saturation and luminosity of the target.
        | PaintCompositeModeTHslSaturation
        -- ^ Creates a color with the saturation
        -- of the source and the hue and luminosity of the target. Painting with
        -- this mode onto a gray area produces no change.
        | PaintCompositeModeTHslColor
        -- ^ Creates a color with the hue and saturation
        -- of the source and the luminosity of the target. This preserves the gray
        -- levels of the target and is useful for coloring monochrome images or
        -- tinting color images.
        | PaintCompositeModeTHslLuminosity
        -- ^ Creates a color with the luminosity of
        -- the source and the hue and saturation of the target. This produces an
        -- inverse effect to /@hBPAINTCOMPOSITEMODEHSLCOLOR@/.
        | AnotherPaintCompositeModeT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> PaintCompositeModeT -> ShowS
    [PaintCompositeModeT] -> ShowS
    PaintCompositeModeT -> String
    (Int -> PaintCompositeModeT -> ShowS)
    -> (PaintCompositeModeT -> String)
    -> ([PaintCompositeModeT] -> ShowS)
    -> Show PaintCompositeModeT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> PaintCompositeModeT -> ShowS
    showsPrec :: Int -> PaintCompositeModeT -> ShowS
    $cshow :: PaintCompositeModeT -> String
    show :: PaintCompositeModeT -> String
    $cshowList :: [PaintCompositeModeT] -> ShowS
    showList :: [PaintCompositeModeT] -> ShowS
    Show, PaintCompositeModeT -> PaintCompositeModeT -> Bool
    (PaintCompositeModeT -> PaintCompositeModeT -> Bool)
    -> (PaintCompositeModeT -> PaintCompositeModeT -> Bool)
    -> Eq PaintCompositeModeT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: PaintCompositeModeT -> PaintCompositeModeT -> Bool
    == :: PaintCompositeModeT -> PaintCompositeModeT -> Bool
    $c/= :: PaintCompositeModeT -> PaintCompositeModeT -> Bool
    /= :: PaintCompositeModeT -> PaintCompositeModeT -> Bool
    Eq)

    instance P.Enum PaintCompositeModeT where
        fromEnum :: PaintCompositeModeT -> Int
    fromEnum PaintCompositeModeT
    PaintCompositeModeTClear = Int
    0
        fromEnum PaintCompositeModeT
    PaintCompositeModeTSrc = Int
    1
        fromEnum PaintCompositeModeT
    PaintCompositeModeTDest = Int
    2
        fromEnum PaintCompositeModeT
    PaintCompositeModeTSrcOver = Int
    3
        fromEnum PaintCompositeModeT
    PaintCompositeModeTDestOver = Int
    4
        fromEnum PaintCompositeModeT
    PaintCompositeModeTSrcIn = Int
    5
        fromEnum PaintCompositeModeT
    PaintCompositeModeTDestIn = Int
    6
        fromEnum PaintCompositeModeT
    PaintCompositeModeTSrcOut = Int
    7
        fromEnum PaintCompositeModeT
    PaintCompositeModeTDestOut = Int
    8
        fromEnum PaintCompositeModeT
    PaintCompositeModeTSrcAtop = Int
    9
        fromEnum PaintCompositeModeT
    PaintCompositeModeTDestAtop = Int
    10
        fromEnum PaintCompositeModeT
    PaintCompositeModeTXor = Int
    11
        fromEnum PaintCompositeModeT
    PaintCompositeModeTPlus = Int
    12
        fromEnum PaintCompositeModeT
    PaintCompositeModeTScreen = Int
    13
        fromEnum PaintCompositeModeT
    PaintCompositeModeTOverlay = Int
    14
        fromEnum PaintCompositeModeT
    PaintCompositeModeTDarken = Int
    15
        fromEnum PaintCompositeModeT
    PaintCompositeModeTLighten = Int
    16
        fromEnum PaintCompositeModeT
    PaintCompositeModeTColorDodge = Int
    17
        fromEnum PaintCompositeModeT
    PaintCompositeModeTColorBurn = Int
    18
        fromEnum PaintCompositeModeT
    PaintCompositeModeTHardLight = Int
    19
        fromEnum PaintCompositeModeT
    PaintCompositeModeTSoftLight = Int
    20
        fromEnum PaintCompositeModeT
    PaintCompositeModeTDifference = Int
    21
        fromEnum PaintCompositeModeT
    PaintCompositeModeTExclusion = Int
    22
        fromEnum PaintCompositeModeT
    PaintCompositeModeTMultiply = Int
    23
        fromEnum PaintCompositeModeT
    PaintCompositeModeTHslHue = Int
    24
        fromEnum PaintCompositeModeT
    PaintCompositeModeTHslSaturation = Int
    25
        fromEnum PaintCompositeModeT
    PaintCompositeModeTHslColor = Int
    26
        fromEnum PaintCompositeModeT
    PaintCompositeModeTHslLuminosity = Int
    27
        fromEnum (AnotherPaintCompositeModeT Int
    k) = Int
    k

        toEnum :: Int -> PaintCompositeModeT
    toEnum Int
    0 = PaintCompositeModeT
    PaintCompositeModeTClear
        toEnum Int
    1 = PaintCompositeModeT
    PaintCompositeModeTSrc
        toEnum Int
    2 = PaintCompositeModeT
    PaintCompositeModeTDest
        toEnum Int
    3 = PaintCompositeModeT
    PaintCompositeModeTSrcOver
        toEnum Int
    4 = PaintCompositeModeT
    PaintCompositeModeTDestOver
        toEnum Int
    5 = PaintCompositeModeT
    PaintCompositeModeTSrcIn
        toEnum Int
    6 = PaintCompositeModeT
    PaintCompositeModeTDestIn
        toEnum Int
    7 = PaintCompositeModeT
    PaintCompositeModeTSrcOut
        toEnum Int
    8 = PaintCompositeModeT
    PaintCompositeModeTDestOut
        toEnum Int
    9 = PaintCompositeModeT
    PaintCompositeModeTSrcAtop
        toEnum Int
    10 = PaintCompositeModeT
    PaintCompositeModeTDestAtop
        toEnum Int
    11 = PaintCompositeModeT
    PaintCompositeModeTXor
        toEnum Int
    12 = PaintCompositeModeT
    PaintCompositeModeTPlus
        toEnum Int
    13 = PaintCompositeModeT
    PaintCompositeModeTScreen
        toEnum Int
    14 = PaintCompositeModeT
    PaintCompositeModeTOverlay
        toEnum Int
    15 = PaintCompositeModeT
    PaintCompositeModeTDarken
        toEnum Int
    16 = PaintCompositeModeT
    PaintCompositeModeTLighten
        toEnum Int
    17 = PaintCompositeModeT
    PaintCompositeModeTColorDodge
        toEnum Int
    18 = PaintCompositeModeT
    PaintCompositeModeTColorBurn
        toEnum Int
    19 = PaintCompositeModeT
    PaintCompositeModeTHardLight
        toEnum Int
    20 = PaintCompositeModeT
    PaintCompositeModeTSoftLight
        toEnum Int
    21 = PaintCompositeModeT
    PaintCompositeModeTDifference
        toEnum Int
    22 = PaintCompositeModeT
    PaintCompositeModeTExclusion
        toEnum Int
    23 = PaintCompositeModeT
    PaintCompositeModeTMultiply
        toEnum Int
    24 = PaintCompositeModeT
    PaintCompositeModeTHslHue
        toEnum Int
    25 = PaintCompositeModeT
    PaintCompositeModeTHslSaturation
        toEnum Int
    26 = PaintCompositeModeT
    PaintCompositeModeTHslColor
        toEnum Int
    27 = PaintCompositeModeT
    PaintCompositeModeTHslLuminosity
        toEnum Int
    k = Int -> PaintCompositeModeT
    AnotherPaintCompositeModeT Int
    k

    instance P.Ord PaintCompositeModeT where
        compare :: PaintCompositeModeT -> PaintCompositeModeT -> Ordering
    compare PaintCompositeModeT
    a PaintCompositeModeT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (PaintCompositeModeT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum PaintCompositeModeT
    a) (PaintCompositeModeT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum PaintCompositeModeT
    b)

    type instance O.ParentTypes PaintCompositeModeT = '[]
    instance O.HasParentTypes PaintCompositeModeT

    foreign import ccall "hb_gobject_paint_composite_mode_get_type" c_hb_gobject_paint_composite_mode_get_type ::
        IO GType

    instance B.Types.TypedObject PaintCompositeModeT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_paint_composite_mode_get_type

    instance B.Types.BoxedEnum PaintCompositeModeT

    -- Enum ot_name_id_predefined_t
    -- | An enum type representing the pre-defined name IDs.
    --
    -- For more information on these fields, see the
    -- <https://docs.microsoft.com/en-us/typography/opentype/spec/name#name-ids OpenType spec>.
    --
    -- /Since: 7.0.0/
    data OtNameIdPredefinedT =
          OtNameIdPredefinedTCopyright
        -- ^ Copyright notice
        | OtNameIdPredefinedTFontFamily
        -- ^ Font Family name
        | OtNameIdPredefinedTFontSubfamily
        -- ^ Font Subfamily name
        | OtNameIdPredefinedTUniqueId
        -- ^ Unique font identifier
        | OtNameIdPredefinedTFullName
        -- ^ Full font name that reflects
        -- all family and relevant subfamily descriptors
        | OtNameIdPredefinedTVersionString
        -- ^ Version string
        | OtNameIdPredefinedTPostscriptName
        -- ^ PostScript name for the font
        | OtNameIdPredefinedTTrademark
        -- ^ Trademark
        | OtNameIdPredefinedTManufacturer
        -- ^ Manufacturer Name
        | OtNameIdPredefinedTDesigner
        -- ^ Designer
        | OtNameIdPredefinedTDescription
        -- ^ Description
        | OtNameIdPredefinedTVendorUrl
        -- ^ URL of font vendor
        | OtNameIdPredefinedTDesignerUrl
        -- ^ URL of typeface designer
        | OtNameIdPredefinedTLicense
        -- ^ License Description
        | OtNameIdPredefinedTLicenseUrl
        -- ^ URL where additional licensing
        -- information can be found
        | OtNameIdPredefinedTTypographicFamily
        -- ^ Typographic Family name
        | OtNameIdPredefinedTTypographicSubfamily
        -- ^ Typographic Subfamily name
        | OtNameIdPredefinedTMacFullName
        -- ^ Compatible Full Name for MacOS
        | OtNameIdPredefinedTSampleText
        -- ^ Sample text
        | OtNameIdPredefinedTCidFindfontName
        -- ^ PostScript CID findfont name
        | OtNameIdPredefinedTWwsFamily
        -- ^ WWS Family Name
        | OtNameIdPredefinedTWwsSubfamily
        -- ^ WWS Subfamily Name
        | OtNameIdPredefinedTLightBackground
        -- ^ Light Background Palette
        | OtNameIdPredefinedTDarkBackground
        -- ^ Dark Background Palette
        | OtNameIdPredefinedTVariationsPsPrefix
        -- ^ Variations PostScript Name Prefix
        | OtNameIdPredefinedTInvalid
        -- ^ Value to represent a nonexistent name ID.
        | AnotherOtNameIdPredefinedT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> OtNameIdPredefinedT -> ShowS
    [OtNameIdPredefinedT] -> ShowS
    OtNameIdPredefinedT -> String
    (Int -> OtNameIdPredefinedT -> ShowS)
    -> (OtNameIdPredefinedT -> String)
    -> ([OtNameIdPredefinedT] -> ShowS)
    -> Show OtNameIdPredefinedT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> OtNameIdPredefinedT -> ShowS
    showsPrec :: Int -> OtNameIdPredefinedT -> ShowS
    $cshow :: OtNameIdPredefinedT -> String
    show :: OtNameIdPredefinedT -> String
    $cshowList :: [OtNameIdPredefinedT] -> ShowS
    showList :: [OtNameIdPredefinedT] -> ShowS
    Show, OtNameIdPredefinedT -> OtNameIdPredefinedT -> Bool
    (OtNameIdPredefinedT -> OtNameIdPredefinedT -> Bool)
    -> (OtNameIdPredefinedT -> OtNameIdPredefinedT -> Bool)
    -> Eq OtNameIdPredefinedT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: OtNameIdPredefinedT -> OtNameIdPredefinedT -> Bool
    == :: OtNameIdPredefinedT -> OtNameIdPredefinedT -> Bool
    $c/= :: OtNameIdPredefinedT -> OtNameIdPredefinedT -> Bool
    /= :: OtNameIdPredefinedT -> OtNameIdPredefinedT -> Bool
    Eq)

    instance P.Enum OtNameIdPredefinedT where
        fromEnum :: OtNameIdPredefinedT -> Int
    fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTCopyright = Int
    0
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTFontFamily = Int
    1
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTFontSubfamily = Int
    2
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTUniqueId = Int
    3
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTFullName = Int
    4
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTVersionString = Int
    5
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTPostscriptName = Int
    6
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTTrademark = Int
    7
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTManufacturer = Int
    8
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTDesigner = Int
    9
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTDescription = Int
    10
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTVendorUrl = Int
    11
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTDesignerUrl = Int
    12
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTLicense = Int
    13
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTLicenseUrl = Int
    14
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTTypographicFamily = Int
    16
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTTypographicSubfamily = Int
    17
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTMacFullName = Int
    18
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTSampleText = Int
    19
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTCidFindfontName = Int
    20
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTWwsFamily = Int
    21
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTWwsSubfamily = Int
    22
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTLightBackground = Int
    23
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTDarkBackground = Int
    24
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTVariationsPsPrefix = Int
    25
        fromEnum OtNameIdPredefinedT
    OtNameIdPredefinedTInvalid = Int
    65535
        fromEnum (AnotherOtNameIdPredefinedT Int
    k) = Int
    k

        toEnum :: Int -> OtNameIdPredefinedT
    toEnum Int
    0 = OtNameIdPredefinedT
    OtNameIdPredefinedTCopyright
        toEnum Int
    1 = OtNameIdPredefinedT
    OtNameIdPredefinedTFontFamily
        toEnum Int
    2 = OtNameIdPredefinedT
    OtNameIdPredefinedTFontSubfamily
        toEnum Int
    3 = OtNameIdPredefinedT
    OtNameIdPredefinedTUniqueId
        toEnum Int
    4 = OtNameIdPredefinedT
    OtNameIdPredefinedTFullName
        toEnum Int
    5 = OtNameIdPredefinedT
    OtNameIdPredefinedTVersionString
        toEnum Int
    6 = OtNameIdPredefinedT
    OtNameIdPredefinedTPostscriptName
        toEnum Int
    7 = OtNameIdPredefinedT
    OtNameIdPredefinedTTrademark
        toEnum Int
    8 = OtNameIdPredefinedT
    OtNameIdPredefinedTManufacturer
        toEnum Int
    9 = OtNameIdPredefinedT
    OtNameIdPredefinedTDesigner
        toEnum Int
    10 = OtNameIdPredefinedT
    OtNameIdPredefinedTDescription
        toEnum Int
    11 = OtNameIdPredefinedT
    OtNameIdPredefinedTVendorUrl
        toEnum Int
    12 = OtNameIdPredefinedT
    OtNameIdPredefinedTDesignerUrl
        toEnum Int
    13 = OtNameIdPredefinedT
    OtNameIdPredefinedTLicense
        toEnum Int
    14 = OtNameIdPredefinedT
    OtNameIdPredefinedTLicenseUrl
        toEnum Int
    16 = OtNameIdPredefinedT
    OtNameIdPredefinedTTypographicFamily
        toEnum Int
    17 = OtNameIdPredefinedT
    OtNameIdPredefinedTTypographicSubfamily
        toEnum Int
    18 = OtNameIdPredefinedT
    OtNameIdPredefinedTMacFullName
        toEnum Int
    19 = OtNameIdPredefinedT
    OtNameIdPredefinedTSampleText
        toEnum Int
    20 = OtNameIdPredefinedT
    OtNameIdPredefinedTCidFindfontName
        toEnum Int
    21 = OtNameIdPredefinedT
    OtNameIdPredefinedTWwsFamily
        toEnum Int
    22 = OtNameIdPredefinedT
    OtNameIdPredefinedTWwsSubfamily
        toEnum Int
    23 = OtNameIdPredefinedT
    OtNameIdPredefinedTLightBackground
        toEnum Int
    24 = OtNameIdPredefinedT
    OtNameIdPredefinedTDarkBackground
        toEnum Int
    25 = OtNameIdPredefinedT
    OtNameIdPredefinedTVariationsPsPrefix
        toEnum Int
    65535 = OtNameIdPredefinedT
    OtNameIdPredefinedTInvalid
        toEnum Int
    k = Int -> OtNameIdPredefinedT
    AnotherOtNameIdPredefinedT Int
    k

    instance P.Ord OtNameIdPredefinedT where
        compare :: OtNameIdPredefinedT -> OtNameIdPredefinedT -> Ordering
    compare OtNameIdPredefinedT
    a OtNameIdPredefinedT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (OtNameIdPredefinedT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum OtNameIdPredefinedT
    a) (OtNameIdPredefinedT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum OtNameIdPredefinedT
    b)

    type instance O.ParentTypes OtNameIdPredefinedT = '[]
    instance O.HasParentTypes OtNameIdPredefinedT

    foreign import ccall "hb_gobject_ot_name_id_predefined_get_type" c_hb_gobject_ot_name_id_predefined_get_type ::
        IO GType

    instance B.Types.TypedObject OtNameIdPredefinedT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_ot_name_id_predefined_get_type

    instance B.Types.BoxedEnum OtNameIdPredefinedT

    -- Enum ot_metrics_tag_t
    -- | Metric tags corresponding to <https://docs.microsoft.com/en-us/typography/opentype/spec/mvar#value-tags MVAR Value
    -- Tags>
    --
    -- /Since: 2.6.0/
    data OtMetricsTagT =
          OtMetricsTagTHorizontalAscender
        -- ^ horizontal ascender.
        | OtMetricsTagTHorizontalDescender
        -- ^ horizontal descender.
        | OtMetricsTagTHorizontalLineGap
        -- ^ horizontal line gap.
        | OtMetricsTagTHorizontalClippingAscent
        -- ^ horizontal clipping ascent.
        | OtMetricsTagTHorizontalClippingDescent
        -- ^ horizontal clipping descent.
        | OtMetricsTagTVerticalAscender
        -- ^ vertical ascender.
        | OtMetricsTagTVerticalDescender
        -- ^ vertical descender.
        | OtMetricsTagTVerticalLineGap
        -- ^ vertical line gap.
        | OtMetricsTagTHorizontalCaretRise
        -- ^ horizontal caret rise.
        | OtMetricsTagTHorizontalCaretRun
        -- ^ horizontal caret run.
        | OtMetricsTagTHorizontalCaretOffset
        -- ^ horizontal caret offset.
        | OtMetricsTagTVerticalCaretRise
        -- ^ vertical caret rise.
        | OtMetricsTagTVerticalCaretRun
        -- ^ vertical caret run.
        | OtMetricsTagTVerticalCaretOffset
        -- ^ vertical caret offset.
        | OtMetricsTagTXHeight
        -- ^ x height.
        | OtMetricsTagTCapHeight
        -- ^ cap height.
        | OtMetricsTagTSubscriptEmXSize
        -- ^ subscript em x size.
        | OtMetricsTagTSubscriptEmYSize
        -- ^ subscript em y size.
        | OtMetricsTagTSubscriptEmXOffset
        -- ^ subscript em x offset.
        | OtMetricsTagTSubscriptEmYOffset
        -- ^ subscript em y offset.
        | OtMetricsTagTSuperscriptEmXSize
        -- ^ superscript em x size.
        | OtMetricsTagTSuperscriptEmYSize
        -- ^ superscript em y size.
        | OtMetricsTagTSuperscriptEmXOffset
        -- ^ superscript em x offset.
        | OtMetricsTagTSuperscriptEmYOffset
        -- ^ superscript em y offset.
        | OtMetricsTagTStrikeoutSize
        -- ^ strikeout size.
        | OtMetricsTagTStrikeoutOffset
        -- ^ strikeout offset.
        | OtMetricsTagTUnderlineSize
        -- ^ underline size.
        | OtMetricsTagTUnderlineOffset
        -- ^ underline offset.
        | AnotherOtMetricsTagT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> OtMetricsTagT -> ShowS
    [OtMetricsTagT] -> ShowS
    OtMetricsTagT -> String
    (Int -> OtMetricsTagT -> ShowS)
    -> (OtMetricsTagT -> String)
    -> ([OtMetricsTagT] -> ShowS)
    -> Show OtMetricsTagT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> OtMetricsTagT -> ShowS
    showsPrec :: Int -> OtMetricsTagT -> ShowS
    $cshow :: OtMetricsTagT -> String
    show :: OtMetricsTagT -> String
    $cshowList :: [OtMetricsTagT] -> ShowS
    showList :: [OtMetricsTagT] -> ShowS
    Show, OtMetricsTagT -> OtMetricsTagT -> Bool
    (OtMetricsTagT -> OtMetricsTagT -> Bool)
    -> (OtMetricsTagT -> OtMetricsTagT -> Bool) -> Eq OtMetricsTagT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: OtMetricsTagT -> OtMetricsTagT -> Bool
    == :: OtMetricsTagT -> OtMetricsTagT -> Bool
    $c/= :: OtMetricsTagT -> OtMetricsTagT -> Bool
    /= :: OtMetricsTagT -> OtMetricsTagT -> Bool
    Eq)

    instance P.Enum OtMetricsTagT where
        fromEnum :: OtMetricsTagT -> Int
    fromEnum OtMetricsTagT
    OtMetricsTagTHorizontalAscender = Int
    1751216995
        fromEnum OtMetricsTagT
    OtMetricsTagTHorizontalDescender = Int
    1751413603
        fromEnum OtMetricsTagT
    OtMetricsTagTHorizontalLineGap = Int
    1751934832
        fromEnum OtMetricsTagT
    OtMetricsTagTHorizontalClippingAscent = Int
    1751346273
        fromEnum OtMetricsTagT
    OtMetricsTagTHorizontalClippingDescent = Int
    1751346276
        fromEnum OtMetricsTagT
    OtMetricsTagTVerticalAscender = Int
    1986098019
        fromEnum OtMetricsTagT
    OtMetricsTagTVerticalDescender = Int
    1986294627
        fromEnum OtMetricsTagT
    OtMetricsTagTVerticalLineGap = Int
    1986815856
        fromEnum OtMetricsTagT
    OtMetricsTagTHorizontalCaretRise = Int
    1751347827
        fromEnum OtMetricsTagT
    OtMetricsTagTHorizontalCaretRun = Int
    1751347822
        fromEnum OtMetricsTagT
    OtMetricsTagTHorizontalCaretOffset = Int
    1751347046
        fromEnum OtMetricsTagT
    OtMetricsTagTVerticalCaretRise = Int
    1986228851
        fromEnum OtMetricsTagT
    OtMetricsTagTVerticalCaretRun = Int
    1986228846
        fromEnum OtMetricsTagT
    OtMetricsTagTVerticalCaretOffset = Int
    1986228070
        fromEnum OtMetricsTagT
    OtMetricsTagTXHeight = Int
    2020108148
        fromEnum OtMetricsTagT
    OtMetricsTagTCapHeight = Int
    1668311156
        fromEnum OtMetricsTagT
    OtMetricsTagTSubscriptEmXSize = Int
    1935833203
        fromEnum OtMetricsTagT
    OtMetricsTagTSubscriptEmYSize = Int
    1935833459
        fromEnum OtMetricsTagT
    OtMetricsTagTSubscriptEmXOffset = Int
    1935833199
        fromEnum OtMetricsTagT
    OtMetricsTagTSubscriptEmYOffset = Int
    1935833455
        fromEnum OtMetricsTagT
    OtMetricsTagTSuperscriptEmXSize = Int
    1936750707
        fromEnum OtMetricsTagT
    OtMetricsTagTSuperscriptEmYSize = Int
    1936750963
        fromEnum OtMetricsTagT
    OtMetricsTagTSuperscriptEmXOffset = Int
    1936750703
        fromEnum OtMetricsTagT
    OtMetricsTagTSuperscriptEmYOffset = Int
    1936750959
        fromEnum OtMetricsTagT
    OtMetricsTagTStrikeoutSize = Int
    1937011315
        fromEnum OtMetricsTagT
    OtMetricsTagTStrikeoutOffset = Int
    1937011311
        fromEnum OtMetricsTagT
    OtMetricsTagTUnderlineSize = Int
    1970168947
        fromEnum OtMetricsTagT
    OtMetricsTagTUnderlineOffset = Int
    1970168943
        fromEnum (AnotherOtMetricsTagT Int
    k) = Int
    k

        toEnum :: Int -> OtMetricsTagT
    toEnum Int
    1751216995 = OtMetricsTagT
    OtMetricsTagTHorizontalAscender
        toEnum Int
    1751413603 = OtMetricsTagT
    OtMetricsTagTHorizontalDescender
        toEnum Int
    1751934832 = OtMetricsTagT
    OtMetricsTagTHorizontalLineGap
        toEnum Int
    1751346273 = OtMetricsTagT
    OtMetricsTagTHorizontalClippingAscent
        toEnum Int
    1751346276 = OtMetricsTagT
    OtMetricsTagTHorizontalClippingDescent
        toEnum Int
    1986098019 = OtMetricsTagT
    OtMetricsTagTVerticalAscender
        toEnum Int
    1986294627 = OtMetricsTagT
    OtMetricsTagTVerticalDescender
        toEnum Int
    1986815856 = OtMetricsTagT
    OtMetricsTagTVerticalLineGap
        toEnum Int
    1751347827 = OtMetricsTagT
    OtMetricsTagTHorizontalCaretRise
        toEnum Int
    1751347822 = OtMetricsTagT
    OtMetricsTagTHorizontalCaretRun
        toEnum Int
    1751347046 = OtMetricsTagT
    OtMetricsTagTHorizontalCaretOffset
        toEnum Int
    1986228851 = OtMetricsTagT
    OtMetricsTagTVerticalCaretRise
        toEnum Int
    1986228846 = OtMetricsTagT
    OtMetricsTagTVerticalCaretRun
        toEnum Int
    1986228070 = OtMetricsTagT
    OtMetricsTagTVerticalCaretOffset
        toEnum Int
    2020108148 = OtMetricsTagT
    OtMetricsTagTXHeight
        toEnum Int
    1668311156 = OtMetricsTagT
    OtMetricsTagTCapHeight
        toEnum Int
    1935833203 = OtMetricsTagT
    OtMetricsTagTSubscriptEmXSize
        toEnum Int
    1935833459 = OtMetricsTagT
    OtMetricsTagTSubscriptEmYSize
        toEnum Int
    1935833199 = OtMetricsTagT
    OtMetricsTagTSubscriptEmXOffset
        toEnum Int
    1935833455 = OtMetricsTagT
    OtMetricsTagTSubscriptEmYOffset
        toEnum Int
    1936750707 = OtMetricsTagT
    OtMetricsTagTSuperscriptEmXSize
        toEnum Int
    1936750963 = OtMetricsTagT
    OtMetricsTagTSuperscriptEmYSize
        toEnum Int
    1936750703 = OtMetricsTagT
    OtMetricsTagTSuperscriptEmXOffset
        toEnum Int
    1936750959 = OtMetricsTagT
    OtMetricsTagTSuperscriptEmYOffset
        toEnum Int
    1937011315 = OtMetricsTagT
    OtMetricsTagTStrikeoutSize
        toEnum Int
    1937011311 = OtMetricsTagT
    OtMetricsTagTStrikeoutOffset
        toEnum Int
    1970168947 = OtMetricsTagT
    OtMetricsTagTUnderlineSize
        toEnum Int
    1970168943 = OtMetricsTagT
    OtMetricsTagTUnderlineOffset
        toEnum Int
    k = Int -> OtMetricsTagT
    AnotherOtMetricsTagT Int
    k

    instance P.Ord OtMetricsTagT where
        compare :: OtMetricsTagT -> OtMetricsTagT -> Ordering
    compare OtMetricsTagT
    a OtMetricsTagT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (OtMetricsTagT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum OtMetricsTagT
    a) (OtMetricsTagT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum OtMetricsTagT
    b)

    type instance O.ParentTypes OtMetricsTagT = '[]
    instance O.HasParentTypes OtMetricsTagT

    foreign import ccall "hb_gobject_ot_metrics_tag_get_type" c_hb_gobject_ot_metrics_tag_get_type ::
        IO GType

    instance B.Types.TypedObject OtMetricsTagT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_ot_metrics_tag_get_type

    instance B.Types.BoxedEnum OtMetricsTagT

    -- Enum ot_meta_tag_t
    -- | Known metadata tags from https:\/\/docs.microsoft.com\/en-us\/typography\/opentype\/spec\/meta
    --
    -- /Since: 2.6.0/
    data OtMetaTagT =
          OtMetaTagTDesignLanguages
        -- ^ Design languages. Text, using only
        -- Basic Latin (ASCII) characters. Indicates languages and\/or scripts
        -- for the user audiences that the font was primarily designed for.
        | OtMetaTagTSupportedLanguages
        -- ^ Supported languages. Text, using
        -- only Basic Latin (ASCII) characters. Indicates languages and\/or scripts
        -- that the font is declared to be capable of supporting.
        | AnotherOtMetaTagT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> OtMetaTagT -> ShowS
    [OtMetaTagT] -> ShowS
    OtMetaTagT -> String
    (Int -> OtMetaTagT -> ShowS)
    -> (OtMetaTagT -> String)
    -> ([OtMetaTagT] -> ShowS)
    -> Show OtMetaTagT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> OtMetaTagT -> ShowS
    showsPrec :: Int -> OtMetaTagT -> ShowS
    $cshow :: OtMetaTagT -> String
    show :: OtMetaTagT -> String
    $cshowList :: [OtMetaTagT] -> ShowS
    showList :: [OtMetaTagT] -> ShowS
    Show, OtMetaTagT -> OtMetaTagT -> Bool
    (OtMetaTagT -> OtMetaTagT -> Bool)
    -> (OtMetaTagT -> OtMetaTagT -> Bool) -> Eq OtMetaTagT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: OtMetaTagT -> OtMetaTagT -> Bool
    == :: OtMetaTagT -> OtMetaTagT -> Bool
    $c/= :: OtMetaTagT -> OtMetaTagT -> Bool
    /= :: OtMetaTagT -> OtMetaTagT -> Bool
    Eq)

    instance P.Enum OtMetaTagT where
        fromEnum :: OtMetaTagT -> Int
    fromEnum OtMetaTagT
    OtMetaTagTDesignLanguages = Int
    1684827751
        fromEnum OtMetaTagT
    OtMetaTagTSupportedLanguages = Int
    1936485991
        fromEnum (AnotherOtMetaTagT Int
    k) = Int
    k

        toEnum :: Int -> OtMetaTagT
    toEnum Int
    1684827751 = OtMetaTagT
    OtMetaTagTDesignLanguages
        toEnum Int
    1936485991 = OtMetaTagT
    OtMetaTagTSupportedLanguages
        toEnum Int
    k = Int -> OtMetaTagT
    AnotherOtMetaTagT Int
    k

    instance P.Ord OtMetaTagT where
        compare :: OtMetaTagT -> OtMetaTagT -> Ordering
    compare OtMetaTagT
    a OtMetaTagT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (OtMetaTagT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum OtMetaTagT
    a) (OtMetaTagT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum OtMetaTagT
    b)

    type instance O.ParentTypes OtMetaTagT = '[]
    instance O.HasParentTypes OtMetaTagT

    foreign import ccall "hb_gobject_ot_meta_tag_get_type" c_hb_gobject_ot_meta_tag_get_type ::
        IO GType

    instance B.Types.TypedObject OtMetaTagT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_ot_meta_tag_get_type

    instance B.Types.BoxedEnum OtMetaTagT

    -- Enum ot_math_kern_t
    -- | The math kerning-table types defined for the four corners
    -- of a glyph.
    --
    -- /Since: 1.3.3/
    data OtMathKernT =
          OtMathKernTTopRight
        -- ^ The top right corner of the glyph.
        | OtMathKernTTopLeft
        -- ^ The top left corner of the glyph.
        | OtMathKernTBottomRight
        -- ^ The bottom right corner of the glyph.
        | OtMathKernTBottomLeft
        -- ^ The bottom left corner of the glyph.
        | AnotherOtMathKernT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> OtMathKernT -> ShowS
    [OtMathKernT] -> ShowS
    OtMathKernT -> String
    (Int -> OtMathKernT -> ShowS)
    -> (OtMathKernT -> String)
    -> ([OtMathKernT] -> ShowS)
    -> Show OtMathKernT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> OtMathKernT -> ShowS
    showsPrec :: Int -> OtMathKernT -> ShowS
    $cshow :: OtMathKernT -> String
    show :: OtMathKernT -> String
    $cshowList :: [OtMathKernT] -> ShowS
    showList :: [OtMathKernT] -> ShowS
    Show, OtMathKernT -> OtMathKernT -> Bool
    (OtMathKernT -> OtMathKernT -> Bool)
    -> (OtMathKernT -> OtMathKernT -> Bool) -> Eq OtMathKernT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: OtMathKernT -> OtMathKernT -> Bool
    == :: OtMathKernT -> OtMathKernT -> Bool
    $c/= :: OtMathKernT -> OtMathKernT -> Bool
    /= :: OtMathKernT -> OtMathKernT -> Bool
    Eq)

    instance P.Enum OtMathKernT where
        fromEnum :: OtMathKernT -> Int
    fromEnum OtMathKernT
    OtMathKernTTopRight = Int
    0
        fromEnum OtMathKernT
    OtMathKernTTopLeft = Int
    1
        fromEnum OtMathKernT
    OtMathKernTBottomRight = Int
    2
        fromEnum OtMathKernT
    OtMathKernTBottomLeft = Int
    3
        fromEnum (AnotherOtMathKernT Int
    k) = Int
    k

        toEnum :: Int -> OtMathKernT
    toEnum Int
    0 = OtMathKernT
    OtMathKernTTopRight
        toEnum Int
    1 = OtMathKernT
    OtMathKernTTopLeft
        toEnum Int
    2 = OtMathKernT
    OtMathKernTBottomRight
        toEnum Int
    3 = OtMathKernT
    OtMathKernTBottomLeft
        toEnum Int
    k = Int -> OtMathKernT
    AnotherOtMathKernT Int
    k

    instance P.Ord OtMathKernT where
        compare :: OtMathKernT -> OtMathKernT -> Ordering
    compare OtMathKernT
    a OtMathKernT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (OtMathKernT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum OtMathKernT
    a) (OtMathKernT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum OtMathKernT
    b)

    type instance O.ParentTypes OtMathKernT = '[]
    instance O.HasParentTypes OtMathKernT

    foreign import ccall "hb_gobject_ot_math_kern_get_type" c_hb_gobject_ot_math_kern_get_type ::
        IO GType

    instance B.Types.TypedObject OtMathKernT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_ot_math_kern_get_type

    instance B.Types.BoxedEnum OtMathKernT

    -- Enum ot_math_constant_t
    -- | The \'MATH\' table constants, refer to
    -- <https://docs.microsoft.com/en-us/typography/opentype/spec/math#mathconstants-table OpenType documentation>
    -- For more explanations.
    --
    -- /Since: 1.3.3/
    data OtMathConstantT =
          OtMathConstantTScriptPercentScaleDown
        -- ^ scriptPercentScaleDown
        | OtMathConstantTScriptScriptPercentScaleDown
        -- ^ scriptScriptPercentScaleDown
        | OtMathConstantTDelimitedSubFormulaMinHeight
        -- ^ delimitedSubFormulaMinHeight
        | OtMathConstantTDisplayOperatorMinHeight
        -- ^ displayOperatorMinHeight
        | OtMathConstantTMathLeading
        -- ^ mathLeading
        | OtMathConstantTAxisHeight
        -- ^ axisHeight
        | OtMathConstantTAccentBaseHeight
        -- ^ accentBaseHeight
        | OtMathConstantTFlattenedAccentBaseHeight
        -- ^ flattenedAccentBaseHeight
        | OtMathConstantTSubscriptShiftDown
        -- ^ subscriptShiftDown
        | OtMathConstantTSubscriptTopMax
        -- ^ subscriptTopMax
        | OtMathConstantTSubscriptBaselineDropMin
        -- ^ subscriptBaselineDropMin
        | OtMathConstantTSuperscriptShiftUp
        -- ^ superscriptShiftUp
        | OtMathConstantTSuperscriptShiftUpCramped
        -- ^ superscriptShiftUpCramped
        | OtMathConstantTSuperscriptBottomMin
        -- ^ superscriptBottomMin
        | OtMathConstantTSuperscriptBaselineDropMax
        -- ^ superscriptBaselineDropMax
        | OtMathConstantTSubSuperscriptGapMin
        -- ^ subSuperscriptGapMin
        | OtMathConstantTSuperscriptBottomMaxWithSubscript
        -- ^ superscriptBottomMaxWithSubscript
        | OtMathConstantTSpaceAfterScript
        -- ^ spaceAfterScript
        | OtMathConstantTUpperLimitGapMin
        -- ^ upperLimitGapMin
        | OtMathConstantTUpperLimitBaselineRiseMin
        -- ^ upperLimitBaselineRiseMin
        | OtMathConstantTLowerLimitGapMin
        -- ^ lowerLimitGapMin
        | OtMathConstantTLowerLimitBaselineDropMin
        -- ^ lowerLimitBaselineDropMin
        | OtMathConstantTStackTopShiftUp
        -- ^ stackTopShiftUp
        | OtMathConstantTStackTopDisplayStyleShiftUp
        -- ^ stackTopDisplayStyleShiftUp
        | OtMathConstantTStackBottomShiftDown
        -- ^ stackBottomShiftDown
        | OtMathConstantTStackBottomDisplayStyleShiftDown
        -- ^ stackBottomDisplayStyleShiftDown
        | OtMathConstantTStackGapMin
        -- ^ stackGapMin
        | OtMathConstantTStackDisplayStyleGapMin
        -- ^ stackDisplayStyleGapMin
        | OtMathConstantTStretchStackTopShiftUp
        -- ^ stretchStackTopShiftUp
        | OtMathConstantTStretchStackBottomShiftDown
        -- ^ stretchStackBottomShiftDown
        | OtMathConstantTStretchStackGapAboveMin
        -- ^ stretchStackGapAboveMin
        | OtMathConstantTStretchStackGapBelowMin
        -- ^ stretchStackGapBelowMin
        | OtMathConstantTFractionNumeratorShiftUp
        -- ^ fractionNumeratorShiftUp
        | OtMathConstantTFractionNumeratorDisplayStyleShiftUp
        -- ^ fractionNumeratorDisplayStyleShiftUp
        | OtMathConstantTFractionDenominatorShiftDown
        -- ^ fractionDenominatorShiftDown
        | OtMathConstantTFractionDenominatorDisplayStyleShiftDown
        -- ^ fractionDenominatorDisplayStyleShiftDown
        | OtMathConstantTFractionNumeratorGapMin
        -- ^ fractionNumeratorGapMin
        | OtMathConstantTFractionNumDisplayStyleGapMin
        -- ^ fractionNumDisplayStyleGapMin
        | OtMathConstantTFractionRuleThickness
        -- ^ fractionRuleThickness
        | OtMathConstantTFractionDenominatorGapMin
        -- ^ fractionDenominatorGapMin
        | OtMathConstantTFractionDenomDisplayStyleGapMin
        -- ^ fractionDenomDisplayStyleGapMin
        | OtMathConstantTSkewedFractionHorizontalGap
        -- ^ skewedFractionHorizontalGap
        | OtMathConstantTSkewedFractionVerticalGap
        -- ^ skewedFractionVerticalGap
        | OtMathConstantTOverbarVerticalGap
        -- ^ overbarVerticalGap
        | OtMathConstantTOverbarRuleThickness
        -- ^ overbarRuleThickness
        | OtMathConstantTOverbarExtraAscender
        -- ^ overbarExtraAscender
        | OtMathConstantTUnderbarVerticalGap
        -- ^ underbarVerticalGap
        | OtMathConstantTUnderbarRuleThickness
        -- ^ underbarRuleThickness
        | OtMathConstantTUnderbarExtraDescender
        -- ^ underbarExtraDescender
        | OtMathConstantTRadicalVerticalGap
        -- ^ radicalVerticalGap
        | OtMathConstantTRadicalDisplayStyleVerticalGap
        -- ^ radicalDisplayStyleVerticalGap
        | OtMathConstantTRadicalRuleThickness
        -- ^ radicalRuleThickness
        | OtMathConstantTRadicalExtraAscender
        -- ^ radicalExtraAscender
        | OtMathConstantTRadicalKernBeforeDegree
        -- ^ radicalKernBeforeDegree
        | OtMathConstantTRadicalKernAfterDegree
        -- ^ radicalKernAfterDegree
        | OtMathConstantTRadicalDegreeBottomRaisePercent
        -- ^ radicalDegreeBottomRaisePercent
        | AnotherOtMathConstantT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> OtMathConstantT -> ShowS
    [OtMathConstantT] -> ShowS
    OtMathConstantT -> String
    (Int -> OtMathConstantT -> ShowS)
    -> (OtMathConstantT -> String)
    -> ([OtMathConstantT] -> ShowS)
    -> Show OtMathConstantT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> OtMathConstantT -> ShowS
    showsPrec :: Int -> OtMathConstantT -> ShowS
    $cshow :: OtMathConstantT -> String
    show :: OtMathConstantT -> String
    $cshowList :: [OtMathConstantT] -> ShowS
    showList :: [OtMathConstantT] -> ShowS
    Show, OtMathConstantT -> OtMathConstantT -> Bool
    (OtMathConstantT -> OtMathConstantT -> Bool)
    -> (OtMathConstantT -> OtMathConstantT -> Bool)
    -> Eq OtMathConstantT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: OtMathConstantT -> OtMathConstantT -> Bool
    == :: OtMathConstantT -> OtMathConstantT -> Bool
    $c/= :: OtMathConstantT -> OtMathConstantT -> Bool
    /= :: OtMathConstantT -> OtMathConstantT -> Bool
    Eq)

    instance P.Enum OtMathConstantT where
        fromEnum :: OtMathConstantT -> Int
    fromEnum OtMathConstantT
    OtMathConstantTScriptPercentScaleDown = Int
    0
        fromEnum OtMathConstantT
    OtMathConstantTScriptScriptPercentScaleDown = Int
    1
        fromEnum OtMathConstantT
    OtMathConstantTDelimitedSubFormulaMinHeight = Int
    2
        fromEnum OtMathConstantT
    OtMathConstantTDisplayOperatorMinHeight = Int
    3
        fromEnum OtMathConstantT
    OtMathConstantTMathLeading = Int
    4
        fromEnum OtMathConstantT
    OtMathConstantTAxisHeight = Int
    5
        fromEnum OtMathConstantT
    OtMathConstantTAccentBaseHeight = Int
    6
        fromEnum OtMathConstantT
    OtMathConstantTFlattenedAccentBaseHeight = Int
    7
        fromEnum OtMathConstantT
    OtMathConstantTSubscriptShiftDown = Int
    8
        fromEnum OtMathConstantT
    OtMathConstantTSubscriptTopMax = Int
    9
        fromEnum OtMathConstantT
    OtMathConstantTSubscriptBaselineDropMin = Int
    10
        fromEnum OtMathConstantT
    OtMathConstantTSuperscriptShiftUp = Int
    11
        fromEnum OtMathConstantT
    OtMathConstantTSuperscriptShiftUpCramped = Int
    12
        fromEnum OtMathConstantT
    OtMathConstantTSuperscriptBottomMin = Int
    13
        fromEnum OtMathConstantT
    OtMathConstantTSuperscriptBaselineDropMax = Int
    14
        fromEnum OtMathConstantT
    OtMathConstantTSubSuperscriptGapMin = Int
    15
        fromEnum OtMathConstantT
    OtMathConstantTSuperscriptBottomMaxWithSubscript = Int
    16
        fromEnum OtMathConstantT
    OtMathConstantTSpaceAfterScript = Int
    17
        fromEnum OtMathConstantT
    OtMathConstantTUpperLimitGapMin = Int
    18
        fromEnum OtMathConstantT
    OtMathConstantTUpperLimitBaselineRiseMin = Int
    19
        fromEnum OtMathConstantT
    OtMathConstantTLowerLimitGapMin = Int
    20
        fromEnum OtMathConstantT
    OtMathConstantTLowerLimitBaselineDropMin = Int
    21
        fromEnum OtMathConstantT
    OtMathConstantTStackTopShiftUp = Int
    22
        fromEnum OtMathConstantT
    OtMathConstantTStackTopDisplayStyleShiftUp = Int
    23
        fromEnum OtMathConstantT
    OtMathConstantTStackBottomShiftDown = Int
    24
        fromEnum OtMathConstantT
    OtMathConstantTStackBottomDisplayStyleShiftDown = Int
    25
        fromEnum OtMathConstantT
    OtMathConstantTStackGapMin = Int
    26
        fromEnum OtMathConstantT
    OtMathConstantTStackDisplayStyleGapMin = Int
    27
        fromEnum OtMathConstantT
    OtMathConstantTStretchStackTopShiftUp = Int
    28
        fromEnum OtMathConstantT
    OtMathConstantTStretchStackBottomShiftDown = Int
    29
        fromEnum OtMathConstantT
    OtMathConstantTStretchStackGapAboveMin = Int
    30
        fromEnum OtMathConstantT
    OtMathConstantTStretchStackGapBelowMin = Int
    31
        fromEnum OtMathConstantT
    OtMathConstantTFractionNumeratorShiftUp = Int
    32
        fromEnum OtMathConstantT
    OtMathConstantTFractionNumeratorDisplayStyleShiftUp = Int
    33
        fromEnum OtMathConstantT
    OtMathConstantTFractionDenominatorShiftDown = Int
    34
        fromEnum OtMathConstantT
    OtMathConstantTFractionDenominatorDisplayStyleShiftDown = Int
    35
        fromEnum OtMathConstantT
    OtMathConstantTFractionNumeratorGapMin = Int
    36
        fromEnum OtMathConstantT
    OtMathConstantTFractionNumDisplayStyleGapMin = Int
    37
        fromEnum OtMathConstantT
    OtMathConstantTFractionRuleThickness = Int
    38
        fromEnum OtMathConstantT
    OtMathConstantTFractionDenominatorGapMin = Int
    39
        fromEnum OtMathConstantT
    OtMathConstantTFractionDenomDisplayStyleGapMin = Int
    40
        fromEnum OtMathConstantT
    OtMathConstantTSkewedFractionHorizontalGap = Int
    41
        fromEnum OtMathConstantT
    OtMathConstantTSkewedFractionVerticalGap = Int
    42
        fromEnum OtMathConstantT
    OtMathConstantTOverbarVerticalGap = Int
    43
        fromEnum OtMathConstantT
    OtMathConstantTOverbarRuleThickness = Int
    44
        fromEnum OtMathConstantT
    OtMathConstantTOverbarExtraAscender = Int
    45
        fromEnum OtMathConstantT
    OtMathConstantTUnderbarVerticalGap = Int
    46
        fromEnum OtMathConstantT
    OtMathConstantTUnderbarRuleThickness = Int
    47
        fromEnum OtMathConstantT
    OtMathConstantTUnderbarExtraDescender = Int
    48
        fromEnum OtMathConstantT
    OtMathConstantTRadicalVerticalGap = Int
    49
        fromEnum OtMathConstantT
    OtMathConstantTRadicalDisplayStyleVerticalGap = Int
    50
        fromEnum OtMathConstantT
    OtMathConstantTRadicalRuleThickness = Int
    51
        fromEnum OtMathConstantT
    OtMathConstantTRadicalExtraAscender = Int
    52
        fromEnum OtMathConstantT
    OtMathConstantTRadicalKernBeforeDegree = Int
    53
        fromEnum OtMathConstantT
    OtMathConstantTRadicalKernAfterDegree = Int
    54
        fromEnum OtMathConstantT
    OtMathConstantTRadicalDegreeBottomRaisePercent = Int
    55
        fromEnum (AnotherOtMathConstantT Int
    k) = Int
    k

        toEnum :: Int -> OtMathConstantT
    toEnum Int
    0 = OtMathConstantT
    OtMathConstantTScriptPercentScaleDown
        toEnum Int
    1 = OtMathConstantT
    OtMathConstantTScriptScriptPercentScaleDown
        toEnum Int
    2 = OtMathConstantT
    OtMathConstantTDelimitedSubFormulaMinHeight
        toEnum Int
    3 = OtMathConstantT
    OtMathConstantTDisplayOperatorMinHeight
        toEnum Int
    4 = OtMathConstantT
    OtMathConstantTMathLeading
        toEnum Int
    5 = OtMathConstantT
    OtMathConstantTAxisHeight
        toEnum Int
    6 = OtMathConstantT
    OtMathConstantTAccentBaseHeight
        toEnum Int
    7 = OtMathConstantT
    OtMathConstantTFlattenedAccentBaseHeight
        toEnum Int
    8 = OtMathConstantT
    OtMathConstantTSubscriptShiftDown
        toEnum Int
    9 = OtMathConstantT
    OtMathConstantTSubscriptTopMax
        toEnum Int
    10 = OtMathConstantT
    OtMathConstantTSubscriptBaselineDropMin
        toEnum Int
    11 = OtMathConstantT
    OtMathConstantTSuperscriptShiftUp
        toEnum Int
    12 = OtMathConstantT
    OtMathConstantTSuperscriptShiftUpCramped
        toEnum Int
    13 = OtMathConstantT
    OtMathConstantTSuperscriptBottomMin
        toEnum Int
    14 = OtMathConstantT
    OtMathConstantTSuperscriptBaselineDropMax
        toEnum Int
    15 = OtMathConstantT
    OtMathConstantTSubSuperscriptGapMin
        toEnum Int
    16 = OtMathConstantT
    OtMathConstantTSuperscriptBottomMaxWithSubscript
        toEnum Int
    17 = OtMathConstantT
    OtMathConstantTSpaceAfterScript
        toEnum Int
    18 = OtMathConstantT
    OtMathConstantTUpperLimitGapMin
        toEnum Int
    19 = OtMathConstantT
    OtMathConstantTUpperLimitBaselineRiseMin
        toEnum Int
    20 = OtMathConstantT
    OtMathConstantTLowerLimitGapMin
        toEnum Int
    21 = OtMathConstantT
    OtMathConstantTLowerLimitBaselineDropMin
        toEnum Int
    22 = OtMathConstantT
    OtMathConstantTStackTopShiftUp
        toEnum Int
    23 = OtMathConstantT
    OtMathConstantTStackTopDisplayStyleShiftUp
        toEnum Int
    24 = OtMathConstantT
    OtMathConstantTStackBottomShiftDown
        toEnum Int
    25 = OtMathConstantT
    OtMathConstantTStackBottomDisplayStyleShiftDown
        toEnum Int
    26 = OtMathConstantT
    OtMathConstantTStackGapMin
        toEnum Int
    27 = OtMathConstantT
    OtMathConstantTStackDisplayStyleGapMin
        toEnum Int
    28 = OtMathConstantT
    OtMathConstantTStretchStackTopShiftUp
        toEnum Int
    29 = OtMathConstantT
    OtMathConstantTStretchStackBottomShiftDown
        toEnum Int
    30 = OtMathConstantT
    OtMathConstantTStretchStackGapAboveMin
        toEnum Int
    31 = OtMathConstantT
    OtMathConstantTStretchStackGapBelowMin
        toEnum Int
    32 = OtMathConstantT
    OtMathConstantTFractionNumeratorShiftUp
        toEnum Int
    33 = OtMathConstantT
    OtMathConstantTFractionNumeratorDisplayStyleShiftUp
        toEnum Int
    34 = OtMathConstantT
    OtMathConstantTFractionDenominatorShiftDown
        toEnum Int
    35 = OtMathConstantT
    OtMathConstantTFractionDenominatorDisplayStyleShiftDown
        toEnum Int
    36 = OtMathConstantT
    OtMathConstantTFractionNumeratorGapMin
        toEnum Int
    37 = OtMathConstantT
    OtMathConstantTFractionNumDisplayStyleGapMin
        toEnum Int
    38 = OtMathConstantT
    OtMathConstantTFractionRuleThickness
        toEnum Int
    39 = OtMathConstantT
    OtMathConstantTFractionDenominatorGapMin
        toEnum Int
    40 = OtMathConstantT
    OtMathConstantTFractionDenomDisplayStyleGapMin
        toEnum Int
    41 = OtMathConstantT
    OtMathConstantTSkewedFractionHorizontalGap
        toEnum Int
    42 = OtMathConstantT
    OtMathConstantTSkewedFractionVerticalGap
        toEnum Int
    43 = OtMathConstantT
    OtMathConstantTOverbarVerticalGap
        toEnum Int
    44 = OtMathConstantT
    OtMathConstantTOverbarRuleThickness
        toEnum Int
    45 = OtMathConstantT
    OtMathConstantTOverbarExtraAscender
        toEnum Int
    46 = OtMathConstantT
    OtMathConstantTUnderbarVerticalGap
        toEnum Int
    47 = OtMathConstantT
    OtMathConstantTUnderbarRuleThickness
        toEnum Int
    48 = OtMathConstantT
    OtMathConstantTUnderbarExtraDescender
        toEnum Int
    49 = OtMathConstantT
    OtMathConstantTRadicalVerticalGap
        toEnum Int
    50 = OtMathConstantT
    OtMathConstantTRadicalDisplayStyleVerticalGap
        toEnum Int
    51 = OtMathConstantT
    OtMathConstantTRadicalRuleThickness
        toEnum Int
    52 = OtMathConstantT
    OtMathConstantTRadicalExtraAscender
        toEnum Int
    53 = OtMathConstantT
    OtMathConstantTRadicalKernBeforeDegree
        toEnum Int
    54 = OtMathConstantT
    OtMathConstantTRadicalKernAfterDegree
        toEnum Int
    55 = OtMathConstantT
    OtMathConstantTRadicalDegreeBottomRaisePercent
        toEnum Int
    k = Int -> OtMathConstantT
    AnotherOtMathConstantT Int
    k

    instance P.Ord OtMathConstantT where
        compare :: OtMathConstantT -> OtMathConstantT -> Ordering
    compare OtMathConstantT
    a OtMathConstantT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (OtMathConstantT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum OtMathConstantT
    a) (OtMathConstantT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum OtMathConstantT
    b)

    type instance O.ParentTypes OtMathConstantT = '[]
    instance O.HasParentTypes OtMathConstantT

    foreign import ccall "hb_gobject_ot_math_constant_get_type" c_hb_gobject_ot_math_constant_get_type ::
        IO GType

    instance B.Types.TypedObject OtMathConstantT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_ot_math_constant_get_type

    instance B.Types.BoxedEnum OtMathConstantT

    -- Enum ot_layout_glyph_class_t
    -- | The GDEF classes defined for glyphs.
    data OtLayoutGlyphClassT =
          OtLayoutGlyphClassTUnclassified
        -- ^ Glyphs not matching the other classifications
        | OtLayoutGlyphClassTBaseGlyph
        -- ^ Spacing, single characters, capable of accepting marks
        | OtLayoutGlyphClassTLigature
        -- ^ Glyphs that represent ligation of multiple characters
        | OtLayoutGlyphClassTMark
        -- ^ Non-spacing, combining glyphs that represent marks
        | OtLayoutGlyphClassTComponent
        -- ^ Spacing glyphs that represent part of a single character
        | AnotherOtLayoutGlyphClassT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> OtLayoutGlyphClassT -> ShowS
    [OtLayoutGlyphClassT] -> ShowS
    OtLayoutGlyphClassT -> String
    (Int -> OtLayoutGlyphClassT -> ShowS)
    -> (OtLayoutGlyphClassT -> String)
    -> ([OtLayoutGlyphClassT] -> ShowS)
    -> Show OtLayoutGlyphClassT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> OtLayoutGlyphClassT -> ShowS
    showsPrec :: Int -> OtLayoutGlyphClassT -> ShowS
    $cshow :: OtLayoutGlyphClassT -> String
    show :: OtLayoutGlyphClassT -> String
    $cshowList :: [OtLayoutGlyphClassT] -> ShowS
    showList :: [OtLayoutGlyphClassT] -> ShowS
    Show, OtLayoutGlyphClassT -> OtLayoutGlyphClassT -> Bool
    (OtLayoutGlyphClassT -> OtLayoutGlyphClassT -> Bool)
    -> (OtLayoutGlyphClassT -> OtLayoutGlyphClassT -> Bool)
    -> Eq OtLayoutGlyphClassT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: OtLayoutGlyphClassT -> OtLayoutGlyphClassT -> Bool
    == :: OtLayoutGlyphClassT -> OtLayoutGlyphClassT -> Bool
    $c/= :: OtLayoutGlyphClassT -> OtLayoutGlyphClassT -> Bool
    /= :: OtLayoutGlyphClassT -> OtLayoutGlyphClassT -> Bool
    Eq)

    instance P.Enum OtLayoutGlyphClassT where
        fromEnum :: OtLayoutGlyphClassT -> Int
    fromEnum OtLayoutGlyphClassT
    OtLayoutGlyphClassTUnclassified = Int
    0
        fromEnum OtLayoutGlyphClassT
    OtLayoutGlyphClassTBaseGlyph = Int
    1
        fromEnum OtLayoutGlyphClassT
    OtLayoutGlyphClassTLigature = Int
    2
        fromEnum OtLayoutGlyphClassT
    OtLayoutGlyphClassTMark = Int
    3
        fromEnum OtLayoutGlyphClassT
    OtLayoutGlyphClassTComponent = Int
    4
        fromEnum (AnotherOtLayoutGlyphClassT Int
    k) = Int
    k

        toEnum :: Int -> OtLayoutGlyphClassT
    toEnum Int
    0 = OtLayoutGlyphClassT
    OtLayoutGlyphClassTUnclassified
        toEnum Int
    1 = OtLayoutGlyphClassT
    OtLayoutGlyphClassTBaseGlyph
        toEnum Int
    2 = OtLayoutGlyphClassT
    OtLayoutGlyphClassTLigature
        toEnum Int
    3 = OtLayoutGlyphClassT
    OtLayoutGlyphClassTMark
        toEnum Int
    4 = OtLayoutGlyphClassT
    OtLayoutGlyphClassTComponent
        toEnum Int
    k = Int -> OtLayoutGlyphClassT
    AnotherOtLayoutGlyphClassT Int
    k

    instance P.Ord OtLayoutGlyphClassT where
        compare :: OtLayoutGlyphClassT -> OtLayoutGlyphClassT -> Ordering
    compare OtLayoutGlyphClassT
    a OtLayoutGlyphClassT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (OtLayoutGlyphClassT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum OtLayoutGlyphClassT
    a) (OtLayoutGlyphClassT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum OtLayoutGlyphClassT
    b)

    type instance O.ParentTypes OtLayoutGlyphClassT = '[]
    instance O.HasParentTypes OtLayoutGlyphClassT

    foreign import ccall "hb_gobject_ot_layout_glyph_class_get_type" c_hb_gobject_ot_layout_glyph_class_get_type ::
        IO GType

    instance B.Types.TypedObject OtLayoutGlyphClassT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_ot_layout_glyph_class_get_type

    instance B.Types.BoxedEnum OtLayoutGlyphClassT

    -- Enum ot_layout_baseline_tag_t
    -- | Baseline tags from <https://docs.microsoft.com/en-us/typography/opentype/spec/baselinetags Baseline Tags> registry.
    --
    -- /Since: 2.6.0/
    data OtLayoutBaselineTagT =
          OtLayoutBaselineTagTRoman
        -- ^ The baseline used by alphabetic scripts such as Latin, Cyrillic and Greek.
        -- In vertical writing mode, the alphabetic baseline for characters rotated 90 degrees clockwise.
        -- (This would not apply to alphabetic characters that remain upright in vertical writing mode, since these
        -- characters are not rotated.)
        | OtLayoutBaselineTagTHanging
        -- ^ The hanging baseline. In horizontal direction, this is the horizontal
        -- line from which syllables seem, to hang in Tibetan and other similar scripts. In vertical writing mode,
        -- for Tibetan (or some other similar script) characters rotated 90 degrees clockwise.
        | OtLayoutBaselineTagTIdeoFaceBottomOrLeft
        -- ^ Ideographic character face bottom or left edge,
        -- if the direction is horizontal or vertical, respectively.
        | OtLayoutBaselineTagTIdeoFaceTopOrRight
        -- ^ Ideographic character face top or right edge,
        -- if the direction is horizontal or vertical, respectively.
        | OtLayoutBaselineTagTIdeoFaceCentral
        -- ^ The center of the ideographic character face. Since: 4.0.0
        | OtLayoutBaselineTagTIdeoEmboxBottomOrLeft
        -- ^ Ideographic em-box bottom or left edge,
        -- if the direction is horizontal or vertical, respectively.
        | OtLayoutBaselineTagTIdeoEmboxTopOrRight
        -- ^ Ideographic em-box top or right edge baseline,
        | OtLayoutBaselineTagTIdeoEmboxCentral
        -- ^ The center of the ideographic em-box. Since: 4.0.0
        -- if the direction is horizontal or vertical, respectively.
        | OtLayoutBaselineTagTMath
        -- ^ The baseline about which mathematical characters are centered.
        -- In vertical writing mode when mathematical characters rotated 90 degrees clockwise, are centered.
        | AnotherOtLayoutBaselineTagT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> OtLayoutBaselineTagT -> ShowS
    [OtLayoutBaselineTagT] -> ShowS
    OtLayoutBaselineTagT -> String
    (Int -> OtLayoutBaselineTagT -> ShowS)
    -> (OtLayoutBaselineTagT -> String)
    -> ([OtLayoutBaselineTagT] -> ShowS)
    -> Show OtLayoutBaselineTagT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> OtLayoutBaselineTagT -> ShowS
    showsPrec :: Int -> OtLayoutBaselineTagT -> ShowS
    $cshow :: OtLayoutBaselineTagT -> String
    show :: OtLayoutBaselineTagT -> String
    $cshowList :: [OtLayoutBaselineTagT] -> ShowS
    showList :: [OtLayoutBaselineTagT] -> ShowS
    Show, OtLayoutBaselineTagT -> OtLayoutBaselineTagT -> Bool
    (OtLayoutBaselineTagT -> OtLayoutBaselineTagT -> Bool)
    -> (OtLayoutBaselineTagT -> OtLayoutBaselineTagT -> Bool)
    -> Eq OtLayoutBaselineTagT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: OtLayoutBaselineTagT -> OtLayoutBaselineTagT -> Bool
    == :: OtLayoutBaselineTagT -> OtLayoutBaselineTagT -> Bool
    $c/= :: OtLayoutBaselineTagT -> OtLayoutBaselineTagT -> Bool
    /= :: OtLayoutBaselineTagT -> OtLayoutBaselineTagT -> Bool
    Eq)

    instance P.Enum OtLayoutBaselineTagT where
        fromEnum :: OtLayoutBaselineTagT -> Int
    fromEnum OtLayoutBaselineTagT
    OtLayoutBaselineTagTRoman = Int
    1919905134
        fromEnum OtLayoutBaselineTagT
    OtLayoutBaselineTagTHanging = Int
    1751215719
        fromEnum OtLayoutBaselineTagT
    OtLayoutBaselineTagTIdeoFaceBottomOrLeft = Int
    1768121954
        fromEnum OtLayoutBaselineTagT
    OtLayoutBaselineTagTIdeoFaceTopOrRight = Int
    1768121972
        fromEnum OtLayoutBaselineTagT
    OtLayoutBaselineTagTIdeoFaceCentral = Int
    1231251043
        fromEnum OtLayoutBaselineTagT
    OtLayoutBaselineTagTIdeoEmboxBottomOrLeft = Int
    1768187247
        fromEnum OtLayoutBaselineTagT
    OtLayoutBaselineTagTIdeoEmboxTopOrRight = Int
    1768191088
        fromEnum OtLayoutBaselineTagT
    OtLayoutBaselineTagTIdeoEmboxCentral = Int
    1231315813
        fromEnum OtLayoutBaselineTagT
    OtLayoutBaselineTagTMath = Int
    1835103336
        fromEnum (AnotherOtLayoutBaselineTagT Int
    k) = Int
    k

        toEnum :: Int -> OtLayoutBaselineTagT
    toEnum Int
    1919905134 = OtLayoutBaselineTagT
    OtLayoutBaselineTagTRoman
        toEnum Int
    1751215719 = OtLayoutBaselineTagT
    OtLayoutBaselineTagTHanging
        toEnum Int
    1768121954 = OtLayoutBaselineTagT
    OtLayoutBaselineTagTIdeoFaceBottomOrLeft
        toEnum Int
    1768121972 = OtLayoutBaselineTagT
    OtLayoutBaselineTagTIdeoFaceTopOrRight
        toEnum Int
    1231251043 = OtLayoutBaselineTagT
    OtLayoutBaselineTagTIdeoFaceCentral
        toEnum Int
    1768187247 = OtLayoutBaselineTagT
    OtLayoutBaselineTagTIdeoEmboxBottomOrLeft
        toEnum Int
    1768191088 = OtLayoutBaselineTagT
    OtLayoutBaselineTagTIdeoEmboxTopOrRight
        toEnum Int
    1231315813 = OtLayoutBaselineTagT
    OtLayoutBaselineTagTIdeoEmboxCentral
        toEnum Int
    1835103336 = OtLayoutBaselineTagT
    OtLayoutBaselineTagTMath
        toEnum Int
    k = Int -> OtLayoutBaselineTagT
    AnotherOtLayoutBaselineTagT Int
    k

    instance P.Ord OtLayoutBaselineTagT where
        compare :: OtLayoutBaselineTagT -> OtLayoutBaselineTagT -> Ordering
    compare OtLayoutBaselineTagT
    a OtLayoutBaselineTagT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (OtLayoutBaselineTagT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum OtLayoutBaselineTagT
    a) (OtLayoutBaselineTagT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum OtLayoutBaselineTagT
    b)

    type instance O.ParentTypes OtLayoutBaselineTagT = '[]
    instance O.HasParentTypes OtLayoutBaselineTagT

    foreign import ccall "hb_gobject_ot_layout_baseline_tag_get_type" c_hb_gobject_ot_layout_baseline_tag_get_type ::
        IO GType

    instance B.Types.TypedObject OtLayoutBaselineTagT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_ot_layout_baseline_tag_get_type

    instance B.Types.BoxedEnum OtLayoutBaselineTagT

    -- Enum memory_mode_t
    -- | Data type holding the memory modes available to
    -- client programs.
    --
    -- Regarding these various memory-modes:
    --
    -- * In no case shall the HarfBuzz client modify memory
    -- that is passed to HarfBuzz in a blob.  If there is
    -- any such possibility, /@hBMEMORYMODEDUPLICATE@/ should be used
    -- such that HarfBuzz makes a copy immediately,
    -- * Use /@hBMEMORYMODEREADONLY@/ otherwise, unless you really really
    -- really know what you are doing,
    -- * /@hBMEMORYMODEWRITABLE@/ is appropriate if you really made a
    -- copy of data solely for the purpose of passing to
    -- HarfBuzz and doing that just once (no reuse!),
    -- * If the font is @/mmap()/@ed, it\'s okay to use
    -- /@hBMEMORYMODEREADONLYMAYMAKEWRITABLE@/, however, using that mode
    -- correctly is very tricky.  Use /@hBMEMORYMODEREADONLY@/ instead.
    data MemoryModeT =
          MemoryModeTDuplicate
        -- ^ HarfBuzz immediately makes a copy of the data.
        | MemoryModeTReadonly
        -- ^ HarfBuzz client will never modify the data,
        --     and HarfBuzz will never modify the data.
        | MemoryModeTWritable
        -- ^ HarfBuzz client made a copy of the data solely
        --     for HarfBuzz, so HarfBuzz may modify the data.
        | MemoryModeTReadonlyMayMakeWritable
        -- ^ See above
        | AnotherMemoryModeT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> MemoryModeT -> ShowS
    [MemoryModeT] -> ShowS
    MemoryModeT -> String
    (Int -> MemoryModeT -> ShowS)
    -> (MemoryModeT -> String)
    -> ([MemoryModeT] -> ShowS)
    -> Show MemoryModeT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> MemoryModeT -> ShowS
    showsPrec :: Int -> MemoryModeT -> ShowS
    $cshow :: MemoryModeT -> String
    show :: MemoryModeT -> String
    $cshowList :: [MemoryModeT] -> ShowS
    showList :: [MemoryModeT] -> ShowS
    Show, MemoryModeT -> MemoryModeT -> Bool
    (MemoryModeT -> MemoryModeT -> Bool)
    -> (MemoryModeT -> MemoryModeT -> Bool) -> Eq MemoryModeT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: MemoryModeT -> MemoryModeT -> Bool
    == :: MemoryModeT -> MemoryModeT -> Bool
    $c/= :: MemoryModeT -> MemoryModeT -> Bool
    /= :: MemoryModeT -> MemoryModeT -> Bool
    Eq)

    instance P.Enum MemoryModeT where
        fromEnum :: MemoryModeT -> Int
    fromEnum MemoryModeT
    MemoryModeTDuplicate = Int
    0
        fromEnum MemoryModeT
    MemoryModeTReadonly = Int
    1
        fromEnum MemoryModeT
    MemoryModeTWritable = Int
    2
        fromEnum MemoryModeT
    MemoryModeTReadonlyMayMakeWritable = Int
    3
        fromEnum (AnotherMemoryModeT Int
    k) = Int
    k

        toEnum :: Int -> MemoryModeT
    toEnum Int
    0 = MemoryModeT
    MemoryModeTDuplicate
        toEnum Int
    1 = MemoryModeT
    MemoryModeTReadonly
        toEnum Int
    2 = MemoryModeT
    MemoryModeTWritable
        toEnum Int
    3 = MemoryModeT
    MemoryModeTReadonlyMayMakeWritable
        toEnum Int
    k = Int -> MemoryModeT
    AnotherMemoryModeT Int
    k

    instance P.Ord MemoryModeT where
        compare :: MemoryModeT -> MemoryModeT -> Ordering
    compare MemoryModeT
    a MemoryModeT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (MemoryModeT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum MemoryModeT
    a) (MemoryModeT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum MemoryModeT
    b)

    type instance O.ParentTypes MemoryModeT = '[]
    instance O.HasParentTypes MemoryModeT

    foreign import ccall "hb_gobject_memory_mode_get_type" c_hb_gobject_memory_mode_get_type ::
        IO GType

    instance B.Types.TypedObject MemoryModeT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_memory_mode_get_type

    instance B.Types.BoxedEnum MemoryModeT

    -- Enum direction_t
    -- | The direction of a text segment or buffer.
    --
    -- A segment can also be tested for horizontal or vertical
    -- orientation (irrespective of specific direction) with
    -- @/HB_DIRECTION_IS_HORIZONTAL()/@ or @/HB_DIRECTION_IS_VERTICAL()/@.
    data DirectionT =
          DirectionTInvalid
        -- ^ Initial, unset direction.
        | DirectionTLtr
        -- ^ Text is set horizontally from left to right.
        | DirectionTRtl
        -- ^ Text is set horizontally from right to left.
        | DirectionTTtb
        -- ^ Text is set vertically from top to bottom.
        | DirectionTBtt
        -- ^ Text is set vertically from bottom to top.
        | AnotherDirectionT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> DirectionT -> ShowS
    [DirectionT] -> ShowS
    DirectionT -> String
    (Int -> DirectionT -> ShowS)
    -> (DirectionT -> String)
    -> ([DirectionT] -> ShowS)
    -> Show DirectionT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> DirectionT -> ShowS
    showsPrec :: Int -> DirectionT -> ShowS
    $cshow :: DirectionT -> String
    show :: DirectionT -> String
    $cshowList :: [DirectionT] -> ShowS
    showList :: [DirectionT] -> ShowS
    Show, DirectionT -> DirectionT -> Bool
    (DirectionT -> DirectionT -> Bool)
    -> (DirectionT -> DirectionT -> Bool) -> Eq DirectionT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: DirectionT -> DirectionT -> Bool
    == :: DirectionT -> DirectionT -> Bool
    $c/= :: DirectionT -> DirectionT -> Bool
    /= :: DirectionT -> DirectionT -> Bool
    Eq)

    instance P.Enum DirectionT where
        fromEnum :: DirectionT -> Int
    fromEnum DirectionT
    DirectionTInvalid = Int
    0
        fromEnum DirectionT
    DirectionTLtr = Int
    4
        fromEnum DirectionT
    DirectionTRtl = Int
    5
        fromEnum DirectionT
    DirectionTTtb = Int
    6
        fromEnum DirectionT
    DirectionTBtt = Int
    7
        fromEnum (AnotherDirectionT Int
    k) = Int
    k

        toEnum :: Int -> DirectionT
    toEnum Int
    0 = DirectionT
    DirectionTInvalid
        toEnum Int
    4 = DirectionT
    DirectionTLtr
        toEnum Int
    5 = DirectionT
    DirectionTRtl
        toEnum Int
    6 = DirectionT
    DirectionTTtb
        toEnum Int
    7 = DirectionT
    DirectionTBtt
        toEnum Int
    k = Int -> DirectionT
    AnotherDirectionT Int
    k

    instance P.Ord DirectionT where
        compare :: DirectionT -> DirectionT -> Ordering
    compare DirectionT
    a DirectionT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (DirectionT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum DirectionT
    a) (DirectionT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum DirectionT
    b)

    type instance O.ParentTypes DirectionT = '[]
    instance O.HasParentTypes DirectionT

    foreign import ccall "hb_gobject_direction_get_type" c_hb_gobject_direction_get_type ::
        IO GType

    instance B.Types.TypedObject DirectionT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_direction_get_type

    instance B.Types.BoxedEnum DirectionT

    -- Enum buffer_serialize_format_t
    -- | The buffer serialization and de-serialization format used in
    -- 'GI.HarfBuzz.Functions.bufferSerializeGlyphs' and 'GI.HarfBuzz.Functions.bufferDeserializeGlyphs'.
    --
    -- /Since: 0.9.2/
    data BufferSerializeFormatT =
          BufferSerializeFormatTText
        -- ^ a human-readable, plain text format.
        | BufferSerializeFormatTJson
        -- ^ a machine-readable JSON format.
        | BufferSerializeFormatTInvalid
        -- ^ invalid format.
        | AnotherBufferSerializeFormatT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> BufferSerializeFormatT -> ShowS
    [BufferSerializeFormatT] -> ShowS
    BufferSerializeFormatT -> String
    (Int -> BufferSerializeFormatT -> ShowS)
    -> (BufferSerializeFormatT -> String)
    -> ([BufferSerializeFormatT] -> ShowS)
    -> Show BufferSerializeFormatT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> BufferSerializeFormatT -> ShowS
    showsPrec :: Int -> BufferSerializeFormatT -> ShowS
    $cshow :: BufferSerializeFormatT -> String
    show :: BufferSerializeFormatT -> String
    $cshowList :: [BufferSerializeFormatT] -> ShowS
    showList :: [BufferSerializeFormatT] -> ShowS
    Show, BufferSerializeFormatT -> BufferSerializeFormatT -> Bool
    (BufferSerializeFormatT -> BufferSerializeFormatT -> Bool)
    -> (BufferSerializeFormatT -> BufferSerializeFormatT -> Bool)
    -> Eq BufferSerializeFormatT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: BufferSerializeFormatT -> BufferSerializeFormatT -> Bool
    == :: BufferSerializeFormatT -> BufferSerializeFormatT -> Bool
    $c/= :: BufferSerializeFormatT -> BufferSerializeFormatT -> Bool
    /= :: BufferSerializeFormatT -> BufferSerializeFormatT -> Bool
    Eq)

    instance P.Enum BufferSerializeFormatT where
        fromEnum :: BufferSerializeFormatT -> Int
    fromEnum BufferSerializeFormatT
    BufferSerializeFormatTText = Int
    1413830740
        fromEnum BufferSerializeFormatT
    BufferSerializeFormatTJson = Int
    1246973774
        fromEnum BufferSerializeFormatT
    BufferSerializeFormatTInvalid = Int
    0
        fromEnum (AnotherBufferSerializeFormatT Int
    k) = Int
    k

        toEnum :: Int -> BufferSerializeFormatT
    toEnum Int
    1413830740 = BufferSerializeFormatT
    BufferSerializeFormatTText
        toEnum Int
    1246973774 = BufferSerializeFormatT
    BufferSerializeFormatTJson
        toEnum Int
    0 = BufferSerializeFormatT
    BufferSerializeFormatTInvalid
        toEnum Int
    k = Int -> BufferSerializeFormatT
    AnotherBufferSerializeFormatT Int
    k

    instance P.Ord BufferSerializeFormatT where
        compare :: BufferSerializeFormatT -> BufferSerializeFormatT -> Ordering
    compare BufferSerializeFormatT
    a BufferSerializeFormatT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (BufferSerializeFormatT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum BufferSerializeFormatT
    a) (BufferSerializeFormatT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum BufferSerializeFormatT
    b)

    type instance O.ParentTypes BufferSerializeFormatT = '[]
    instance O.HasParentTypes BufferSerializeFormatT

    foreign import ccall "hb_gobject_buffer_serialize_format_get_type" c_hb_gobject_buffer_serialize_format_get_type ::
        IO GType

    instance B.Types.TypedObject BufferSerializeFormatT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_buffer_serialize_format_get_type

    instance B.Types.BoxedEnum BufferSerializeFormatT

    -- Enum buffer_content_type_t
    -- | The type of t'GI.HarfBuzz.Structs.BufferT.BufferT' contents.
    data BufferContentTypeT =
          BufferContentTypeTInvalid
        -- ^ Initial value for new buffer.
        | BufferContentTypeTUnicode
        -- ^ The buffer contains input characters (before shaping).
        | BufferContentTypeTGlyphs
        -- ^ The buffer contains output glyphs (after shaping).
        | AnotherBufferContentTypeT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> BufferContentTypeT -> ShowS
    [BufferContentTypeT] -> ShowS
    BufferContentTypeT -> String
    (Int -> BufferContentTypeT -> ShowS)
    -> (BufferContentTypeT -> String)
    -> ([BufferContentTypeT] -> ShowS)
    -> Show BufferContentTypeT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> BufferContentTypeT -> ShowS
    showsPrec :: Int -> BufferContentTypeT -> ShowS
    $cshow :: BufferContentTypeT -> String
    show :: BufferContentTypeT -> String
    $cshowList :: [BufferContentTypeT] -> ShowS
    showList :: [BufferContentTypeT] -> ShowS
    Show, BufferContentTypeT -> BufferContentTypeT -> Bool
    (BufferContentTypeT -> BufferContentTypeT -> Bool)
    -> (BufferContentTypeT -> BufferContentTypeT -> Bool)
    -> Eq BufferContentTypeT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: BufferContentTypeT -> BufferContentTypeT -> Bool
    == :: BufferContentTypeT -> BufferContentTypeT -> Bool
    $c/= :: BufferContentTypeT -> BufferContentTypeT -> Bool
    /= :: BufferContentTypeT -> BufferContentTypeT -> Bool
    Eq)

    instance P.Enum BufferContentTypeT where
        fromEnum :: BufferContentTypeT -> Int
    fromEnum BufferContentTypeT
    BufferContentTypeTInvalid = Int
    0
        fromEnum BufferContentTypeT
    BufferContentTypeTUnicode = Int
    1
        fromEnum BufferContentTypeT
    BufferContentTypeTGlyphs = Int
    2
        fromEnum (AnotherBufferContentTypeT Int
    k) = Int
    k

        toEnum :: Int -> BufferContentTypeT
    toEnum Int
    0 = BufferContentTypeT
    BufferContentTypeTInvalid
        toEnum Int
    1 = BufferContentTypeT
    BufferContentTypeTUnicode
        toEnum Int
    2 = BufferContentTypeT
    BufferContentTypeTGlyphs
        toEnum Int
    k = Int -> BufferContentTypeT
    AnotherBufferContentTypeT Int
    k

    instance P.Ord BufferContentTypeT where
        compare :: BufferContentTypeT -> BufferContentTypeT -> Ordering
    compare BufferContentTypeT
    a BufferContentTypeT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (BufferContentTypeT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum BufferContentTypeT
    a) (BufferContentTypeT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum BufferContentTypeT
    b)

    type instance O.ParentTypes BufferContentTypeT = '[]
    instance O.HasParentTypes BufferContentTypeT

    foreign import ccall "hb_gobject_buffer_content_type_get_type" c_hb_gobject_buffer_content_type_get_type ::
        IO GType

    instance B.Types.TypedObject BufferContentTypeT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_buffer_content_type_get_type

    instance B.Types.BoxedEnum BufferContentTypeT

    -- Enum buffer_cluster_level_t
    -- | Data type for holding HarfBuzz\'s clustering behavior options. The cluster level
    -- dictates one aspect of how HarfBuzz will treat non-base characters
    -- during shaping.
    --
    -- In /@hBBUFFERCLUSTERLEVELMONOTONEGRAPHEMES@/, non-base
    -- characters are merged into the cluster of the base character that precedes them.
    --
    -- In /@hBBUFFERCLUSTERLEVELMONOTONECHARACTERS@/, non-base characters are initially
    -- assigned their own cluster values, which are not merged into preceding base
    -- clusters. This allows HarfBuzz to perform additional operations like reorder
    -- sequences of adjacent marks.
    --
    -- /@hBBUFFERCLUSTERLEVELMONOTONEGRAPHEMES@/ is the default, because it maintains
    -- backward compatibility with older versions of HarfBuzz. New client programs that
    -- do not need to maintain such backward compatibility are recommended to use
    -- /@hBBUFFERCLUSTERLEVELMONOTONECHARACTERS@/ instead of the default.
    --
    -- /Since: 0.9.42/
    data BufferClusterLevelT =
          BufferClusterLevelTMonotoneGraphemes
        -- ^ Return cluster values grouped by graphemes into
        --   monotone order.
        | BufferClusterLevelTMonotoneCharacters
        -- ^ Return cluster values grouped into monotone order.
        | BufferClusterLevelTCharacters
        -- ^ Don\'t group cluster values.
        | BufferClusterLevelTDefault
        -- ^ Default cluster level,
        --   equal to /@hBBUFFERCLUSTERLEVELMONOTONEGRAPHEMES@/.
        | AnotherBufferClusterLevelT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> BufferClusterLevelT -> ShowS
    [BufferClusterLevelT] -> ShowS
    BufferClusterLevelT -> String
    (Int -> BufferClusterLevelT -> ShowS)
    -> (BufferClusterLevelT -> String)
    -> ([BufferClusterLevelT] -> ShowS)
    -> Show BufferClusterLevelT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> BufferClusterLevelT -> ShowS
    showsPrec :: Int -> BufferClusterLevelT -> ShowS
    $cshow :: BufferClusterLevelT -> String
    show :: BufferClusterLevelT -> String
    $cshowList :: [BufferClusterLevelT] -> ShowS
    showList :: [BufferClusterLevelT] -> ShowS
    Show, BufferClusterLevelT -> BufferClusterLevelT -> Bool
    (BufferClusterLevelT -> BufferClusterLevelT -> Bool)
    -> (BufferClusterLevelT -> BufferClusterLevelT -> Bool)
    -> Eq BufferClusterLevelT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: BufferClusterLevelT -> BufferClusterLevelT -> Bool
    == :: BufferClusterLevelT -> BufferClusterLevelT -> Bool
    $c/= :: BufferClusterLevelT -> BufferClusterLevelT -> Bool
    /= :: BufferClusterLevelT -> BufferClusterLevelT -> Bool
    Eq)

    instance P.Enum BufferClusterLevelT where
        fromEnum :: BufferClusterLevelT -> Int
    fromEnum BufferClusterLevelT
    BufferClusterLevelTMonotoneGraphemes = Int
    0
        fromEnum BufferClusterLevelT
    BufferClusterLevelTMonotoneCharacters = Int
    1
        fromEnum BufferClusterLevelT
    BufferClusterLevelTCharacters = Int
    2
        fromEnum BufferClusterLevelT
    BufferClusterLevelTDefault = Int
    0
        fromEnum (AnotherBufferClusterLevelT Int
    k) = Int
    k

        toEnum :: Int -> BufferClusterLevelT
    toEnum Int
    0 = BufferClusterLevelT
    BufferClusterLevelTMonotoneGraphemes
        toEnum Int
    1 = BufferClusterLevelT
    BufferClusterLevelTMonotoneCharacters
        toEnum Int
    2 = BufferClusterLevelT
    BufferClusterLevelTCharacters
        toEnum Int
    k = Int -> BufferClusterLevelT
    AnotherBufferClusterLevelT Int
    k

    instance P.Ord BufferClusterLevelT where
        compare :: BufferClusterLevelT -> BufferClusterLevelT -> Ordering
    compare BufferClusterLevelT
    a BufferClusterLevelT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (BufferClusterLevelT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum BufferClusterLevelT
    a) (BufferClusterLevelT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum BufferClusterLevelT
    b)

    type instance O.ParentTypes BufferClusterLevelT = '[]
    instance O.HasParentTypes BufferClusterLevelT

    foreign import ccall "hb_gobject_buffer_cluster_level_get_type" c_hb_gobject_buffer_cluster_level_get_type ::
        IO GType

    instance B.Types.TypedObject BufferClusterLevelT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_buffer_cluster_level_get_type

    instance B.Types.BoxedEnum BufferClusterLevelT

    -- Enum aat_layout_feature_type_t
    -- | The possible feature types defined for AAT shaping, from Apple <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html Font Feature Registry>.
    --
    -- /Since: 2.2.0/
    data AatLayoutFeatureTypeT =
          AatLayoutFeatureTypeTInvalid
        -- ^ Initial, unset feature type
        | AatLayoutFeatureTypeTAllTypographic
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type0 All Typographic Features>
        | AatLayoutFeatureTypeTLigatures
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type1 Ligatures>
        | AatLayoutFeatureTypeTCursiveConnection
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type2 Cursive Connection>
        | AatLayoutFeatureTypeTLetterCase
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type3 Letter Case>
        | AatLayoutFeatureTypeTVerticalSubstitution
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type4 Vertical Substitution>
        | AatLayoutFeatureTypeTLinguisticRearrangement
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type5 Linguistic Rearrangement>
        | AatLayoutFeatureTypeTNumberSpacing
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type6 Number Spacing>
        | AatLayoutFeatureTypeTSmartSwashType
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type8 Smart Swash>
        | AatLayoutFeatureTypeTDiacriticsType
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type9 Diacritics>
        | AatLayoutFeatureTypeTVerticalPosition
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type10 Vertical Position>
        | AatLayoutFeatureTypeTFractions
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type11 Fractions>
        | AatLayoutFeatureTypeTOverlappingCharactersType
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type13 Overlapping Characters>
        | AatLayoutFeatureTypeTTypographicExtras
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type14 Typographic Extras>
        | AatLayoutFeatureTypeTMathematicalExtras
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type15 Mathematical Extras>
        | AatLayoutFeatureTypeTOrnamentSetsType
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type16 Ornament Sets>
        | AatLayoutFeatureTypeTCharacterAlternatives
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type17 Character Alternatives>
        | AatLayoutFeatureTypeTDesignComplexityType
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type18 Design Complexity>
        | AatLayoutFeatureTypeTStyleOptions
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type19 Style Options>
        | AatLayoutFeatureTypeTCharacterShape
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type20 Character Shape>
        | AatLayoutFeatureTypeTNumberCase
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type21 Number Case>
        | AatLayoutFeatureTypeTTextSpacing
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type22 Text Spacing>
        | AatLayoutFeatureTypeTTransliteration
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type23 Transliteration>
        | AatLayoutFeatureTypeTAnnotationType
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type24 Annotation>
        | AatLayoutFeatureTypeTKanaSpacingType
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type25 Kana Spacing>
        | AatLayoutFeatureTypeTIdeographicSpacingType
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type26 Ideographic Spacing>
        | AatLayoutFeatureTypeTUnicodeDecompositionType
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type27 Unicode Decomposition>
        | AatLayoutFeatureTypeTRubyKana
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type28 Ruby Kana>
        | AatLayoutFeatureTypeTCjkSymbolAlternativesType
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type29 CJK Symbol Alternatives>
        | AatLayoutFeatureTypeTIdeographicAlternativesType
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type30 Ideographic Alternatives>
        | AatLayoutFeatureTypeTCjkVerticalRomanPlacementType
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type31 CJK Vertical Roman Placement>
        | AatLayoutFeatureTypeTItalicCjkRoman
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type32 Italic CJK Roman>
        | AatLayoutFeatureTypeTCaseSensitiveLayout
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type33 Case Sensitive Layout>
        | AatLayoutFeatureTypeTAlternateKana
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type34 Alternate Kana>
        | AatLayoutFeatureTypeTStylisticAlternatives
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type35 Stylistic Alternatives>
        | AatLayoutFeatureTypeTContextualAlternatives
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type36 Contextual Alternatives>
        | AatLayoutFeatureTypeTLowerCase
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type37 Lower Case>
        | AatLayoutFeatureTypeTUpperCase
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type38 Upper Case>
        | AatLayoutFeatureTypeTLanguageTagType
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type39 Language Tag>
        | AatLayoutFeatureTypeTCjkRomanSpacingType
        -- ^ <https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type103 CJK Roman Spacing>
        | AnotherAatLayoutFeatureTypeT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> AatLayoutFeatureTypeT -> ShowS
    [AatLayoutFeatureTypeT] -> ShowS
    AatLayoutFeatureTypeT -> String
    (Int -> AatLayoutFeatureTypeT -> ShowS)
    -> (AatLayoutFeatureTypeT -> String)
    -> ([AatLayoutFeatureTypeT] -> ShowS)
    -> Show AatLayoutFeatureTypeT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> AatLayoutFeatureTypeT -> ShowS
    showsPrec :: Int -> AatLayoutFeatureTypeT -> ShowS
    $cshow :: AatLayoutFeatureTypeT -> String
    show :: AatLayoutFeatureTypeT -> String
    $cshowList :: [AatLayoutFeatureTypeT] -> ShowS
    showList :: [AatLayoutFeatureTypeT] -> ShowS
    Show, AatLayoutFeatureTypeT -> AatLayoutFeatureTypeT -> Bool
    (AatLayoutFeatureTypeT -> AatLayoutFeatureTypeT -> Bool)
    -> (AatLayoutFeatureTypeT -> AatLayoutFeatureTypeT -> Bool)
    -> Eq AatLayoutFeatureTypeT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: AatLayoutFeatureTypeT -> AatLayoutFeatureTypeT -> Bool
    == :: AatLayoutFeatureTypeT -> AatLayoutFeatureTypeT -> Bool
    $c/= :: AatLayoutFeatureTypeT -> AatLayoutFeatureTypeT -> Bool
    /= :: AatLayoutFeatureTypeT -> AatLayoutFeatureTypeT -> Bool
    Eq)

    instance P.Enum AatLayoutFeatureTypeT where
        fromEnum :: AatLayoutFeatureTypeT -> Int
    fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTInvalid = Int
    65535
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTAllTypographic = Int
    0
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTLigatures = Int
    1
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTCursiveConnection = Int
    2
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTLetterCase = Int
    3
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTVerticalSubstitution = Int
    4
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTLinguisticRearrangement = Int
    5
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTNumberSpacing = Int
    6
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTSmartSwashType = Int
    8
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTDiacriticsType = Int
    9
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTVerticalPosition = Int
    10
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTFractions = Int
    11
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTOverlappingCharactersType = Int
    13
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTTypographicExtras = Int
    14
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTMathematicalExtras = Int
    15
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTOrnamentSetsType = Int
    16
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTCharacterAlternatives = Int
    17
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTDesignComplexityType = Int
    18
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTStyleOptions = Int
    19
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTCharacterShape = Int
    20
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTNumberCase = Int
    21
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTTextSpacing = Int
    22
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTTransliteration = Int
    23
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTAnnotationType = Int
    24
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTKanaSpacingType = Int
    25
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTIdeographicSpacingType = Int
    26
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTUnicodeDecompositionType = Int
    27
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTRubyKana = Int
    28
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTCjkSymbolAlternativesType = Int
    29
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTIdeographicAlternativesType = Int
    30
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTCjkVerticalRomanPlacementType = Int
    31
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTItalicCjkRoman = Int
    32
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTCaseSensitiveLayout = Int
    33
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTAlternateKana = Int
    34
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTStylisticAlternatives = Int
    35
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTContextualAlternatives = Int
    36
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTLowerCase = Int
    37
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTUpperCase = Int
    38
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTLanguageTagType = Int
    39
        fromEnum AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTCjkRomanSpacingType = Int
    103
        fromEnum (AnotherAatLayoutFeatureTypeT Int
    k) = Int
    k

        toEnum :: Int -> AatLayoutFeatureTypeT
    toEnum Int
    65535 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTInvalid
        toEnum Int
    0 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTAllTypographic
        toEnum Int
    1 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTLigatures
        toEnum Int
    2 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTCursiveConnection
        toEnum Int
    3 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTLetterCase
        toEnum Int
    4 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTVerticalSubstitution
        toEnum Int
    5 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTLinguisticRearrangement
        toEnum Int
    6 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTNumberSpacing
        toEnum Int
    8 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTSmartSwashType
        toEnum Int
    9 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTDiacriticsType
        toEnum Int
    10 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTVerticalPosition
        toEnum Int
    11 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTFractions
        toEnum Int
    13 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTOverlappingCharactersType
        toEnum Int
    14 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTTypographicExtras
        toEnum Int
    15 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTMathematicalExtras
        toEnum Int
    16 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTOrnamentSetsType
        toEnum Int
    17 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTCharacterAlternatives
        toEnum Int
    18 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTDesignComplexityType
        toEnum Int
    19 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTStyleOptions
        toEnum Int
    20 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTCharacterShape
        toEnum Int
    21 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTNumberCase
        toEnum Int
    22 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTTextSpacing
        toEnum Int
    23 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTTransliteration
        toEnum Int
    24 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTAnnotationType
        toEnum Int
    25 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTKanaSpacingType
        toEnum Int
    26 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTIdeographicSpacingType
        toEnum Int
    27 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTUnicodeDecompositionType
        toEnum Int
    28 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTRubyKana
        toEnum Int
    29 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTCjkSymbolAlternativesType
        toEnum Int
    30 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTIdeographicAlternativesType
        toEnum Int
    31 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTCjkVerticalRomanPlacementType
        toEnum Int
    32 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTItalicCjkRoman
        toEnum Int
    33 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTCaseSensitiveLayout
        toEnum Int
    34 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTAlternateKana
        toEnum Int
    35 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTStylisticAlternatives
        toEnum Int
    36 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTContextualAlternatives
        toEnum Int
    37 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTLowerCase
        toEnum Int
    38 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTUpperCase
        toEnum Int
    39 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTLanguageTagType
        toEnum Int
    103 = AatLayoutFeatureTypeT
    AatLayoutFeatureTypeTCjkRomanSpacingType
        toEnum Int
    k = Int -> AatLayoutFeatureTypeT
    AnotherAatLayoutFeatureTypeT Int
    k

    instance P.Ord AatLayoutFeatureTypeT where
        compare :: AatLayoutFeatureTypeT -> AatLayoutFeatureTypeT -> Ordering
    compare AatLayoutFeatureTypeT
    a AatLayoutFeatureTypeT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (AatLayoutFeatureTypeT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum AatLayoutFeatureTypeT
    a) (AatLayoutFeatureTypeT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum AatLayoutFeatureTypeT
    b)

    type instance O.ParentTypes AatLayoutFeatureTypeT = '[]
    instance O.HasParentTypes AatLayoutFeatureTypeT

    foreign import ccall "hb_gobject_aat_layout_feature_type_get_type" c_hb_gobject_aat_layout_feature_type_get_type ::
        IO GType

    instance B.Types.TypedObject AatLayoutFeatureTypeT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_aat_layout_feature_type_get_type

    instance B.Types.BoxedEnum AatLayoutFeatureTypeT

    -- Enum aat_layout_feature_selector_t
    -- | The selectors defined for specifying AAT feature settings.
    --
    -- /Since: 2.2.0/
    data AatLayoutFeatureSelectorT =
          AatLayoutFeatureSelectorTInvalid
        -- ^ Initial, unset feature selector
        | AatLayoutFeatureSelectorTAllTypeFeaturesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC/@
        | AatLayoutFeatureSelectorTAllTypeFeaturesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC/@
        | AatLayoutFeatureSelectorTRequiredLigaturesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTRequiredLigaturesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTCommonLigaturesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTCommonLigaturesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTRareLigaturesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTRareLigaturesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTLogosOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTLogosOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTRebusPicturesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTRebusPicturesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTDiphthongLigaturesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTDiphthongLigaturesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTSquaredLigaturesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTSquaredLigaturesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTAbbrevSquaredLigaturesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTAbbrevSquaredLigaturesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTSymbolLigaturesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTSymbolLigaturesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTContextualLigaturesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTContextualLigaturesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTHistoricalLigaturesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTHistoricalLigaturesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTUnconnected
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTPartiallyConnected
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTCursive
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES/@
        | AatLayoutFeatureSelectorTUpperAndLowerCase
        -- ^ Deprecated
        | AatLayoutFeatureSelectorTAllCaps
        -- ^ Deprecated
        | AatLayoutFeatureSelectorTAllLowerCase
        -- ^ Deprecated
        | AatLayoutFeatureSelectorTSmallCaps
        -- ^ Deprecated
        | AatLayoutFeatureSelectorTInitialCaps
        -- ^ Deprecated
        | AatLayoutFeatureSelectorTInitialCapsAndSmallCaps
        -- ^ Deprecated
        | AatLayoutFeatureSelectorTSubstituteVerticalFormsOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION/@
        | AatLayoutFeatureSelectorTSubstituteVerticalFormsOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION/@
        | AatLayoutFeatureSelectorTLinguisticRearrangementOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT/@
        | AatLayoutFeatureSelectorTLinguisticRearrangementOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT/@
        | AatLayoutFeatureSelectorTMonospacedNumbers
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING/@
        | AatLayoutFeatureSelectorTProportionalNumbers
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING/@
        | AatLayoutFeatureSelectorTThirdWidthNumbers
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING/@
        | AatLayoutFeatureSelectorTQuarterWidthNumbers
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING/@
        | AatLayoutFeatureSelectorTWordInitialSwashesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE/@
        | AatLayoutFeatureSelectorTWordInitialSwashesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE/@
        | AatLayoutFeatureSelectorTWordFinalSwashesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE/@
        | AatLayoutFeatureSelectorTWordFinalSwashesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE/@
        | AatLayoutFeatureSelectorTLineInitialSwashesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE/@
        | AatLayoutFeatureSelectorTLineInitialSwashesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE/@
        | AatLayoutFeatureSelectorTLineFinalSwashesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE/@
        | AatLayoutFeatureSelectorTLineFinalSwashesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE/@
        | AatLayoutFeatureSelectorTNonFinalSwashesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE/@
        | AatLayoutFeatureSelectorTNonFinalSwashesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE/@
        | AatLayoutFeatureSelectorTShowDiacritics
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE/@
        | AatLayoutFeatureSelectorTHideDiacritics
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE/@
        | AatLayoutFeatureSelectorTDecomposeDiacritics
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE/@
        | AatLayoutFeatureSelectorTNormalPosition
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION/@
        | AatLayoutFeatureSelectorTSuperiors
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION/@
        | AatLayoutFeatureSelectorTInferiors
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION/@
        | AatLayoutFeatureSelectorTOrdinals
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION/@
        | AatLayoutFeatureSelectorTScientificInferiors
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION/@
        | AatLayoutFeatureSelectorTNoFractions
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS/@
        | AatLayoutFeatureSelectorTVerticalFractions
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS/@
        | AatLayoutFeatureSelectorTDiagonalFractions
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS/@
        | AatLayoutFeatureSelectorTPreventOverlapOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE/@
        | AatLayoutFeatureSelectorTPreventOverlapOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE/@
        | AatLayoutFeatureSelectorTHyphensToEmDashOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS/@
        | AatLayoutFeatureSelectorTHyphensToEmDashOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS/@
        | AatLayoutFeatureSelectorTHyphenToEnDashOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS/@
        | AatLayoutFeatureSelectorTHyphenToEnDashOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS/@
        | AatLayoutFeatureSelectorTSlashedZeroOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS/@
        | AatLayoutFeatureSelectorTSlashedZeroOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS/@
        | AatLayoutFeatureSelectorTFormInterrobangOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS/@
        | AatLayoutFeatureSelectorTFormInterrobangOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS/@
        | AatLayoutFeatureSelectorTSmartQuotesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS/@
        | AatLayoutFeatureSelectorTSmartQuotesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS/@
        | AatLayoutFeatureSelectorTPeriodsToEllipsisOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS/@
        | AatLayoutFeatureSelectorTPeriodsToEllipsisOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS/@
        | AatLayoutFeatureSelectorTHyphenToMinusOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS/@
        | AatLayoutFeatureSelectorTHyphenToMinusOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS/@
        | AatLayoutFeatureSelectorTAsteriskToMultiplyOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS/@
        | AatLayoutFeatureSelectorTAsteriskToMultiplyOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS/@
        | AatLayoutFeatureSelectorTSlashToDivideOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS/@
        | AatLayoutFeatureSelectorTSlashToDivideOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS/@
        | AatLayoutFeatureSelectorTInequalityLigaturesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS/@
        | AatLayoutFeatureSelectorTInequalityLigaturesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS/@
        | AatLayoutFeatureSelectorTExponentsOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS/@
        | AatLayoutFeatureSelectorTExponentsOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS/@
        | AatLayoutFeatureSelectorTMathematicalGreekOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS/@
        | AatLayoutFeatureSelectorTMathematicalGreekOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS/@
        | AatLayoutFeatureSelectorTNoOrnaments
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE/@
        | AatLayoutFeatureSelectorTDingbats
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE/@
        | AatLayoutFeatureSelectorTPiCharacters
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE/@
        | AatLayoutFeatureSelectorTFleurons
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE/@
        | AatLayoutFeatureSelectorTDecorativeBorders
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE/@
        | AatLayoutFeatureSelectorTInternationalSymbols
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE/@
        | AatLayoutFeatureSelectorTMathSymbols
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE/@
        | AatLayoutFeatureSelectorTNoAlternates
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTDesignLevel1
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE/@
        | AatLayoutFeatureSelectorTDesignLevel2
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE/@
        | AatLayoutFeatureSelectorTDesignLevel3
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE/@
        | AatLayoutFeatureSelectorTDesignLevel4
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE/@
        | AatLayoutFeatureSelectorTDesignLevel5
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE/@
        | AatLayoutFeatureSelectorTNoStyleOptions
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS/@
        | AatLayoutFeatureSelectorTDisplayText
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS/@
        | AatLayoutFeatureSelectorTEngravedText
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS/@
        | AatLayoutFeatureSelectorTIlluminatedCaps
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS/@
        | AatLayoutFeatureSelectorTTitlingCaps
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS/@
        | AatLayoutFeatureSelectorTTallCaps
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS/@
        | AatLayoutFeatureSelectorTTraditionalCharacters
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE/@
        | AatLayoutFeatureSelectorTSimplifiedCharacters
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE/@
        | AatLayoutFeatureSelectorTJis1978Characters
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE/@
        | AatLayoutFeatureSelectorTJis1983Characters
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE/@
        | AatLayoutFeatureSelectorTJis1990Characters
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE/@
        | AatLayoutFeatureSelectorTTraditionalAltOne
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE/@
        | AatLayoutFeatureSelectorTTraditionalAltTwo
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE/@
        | AatLayoutFeatureSelectorTTraditionalAltThree
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE/@
        | AatLayoutFeatureSelectorTTraditionalAltFour
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE/@
        | AatLayoutFeatureSelectorTTraditionalAltFive
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE/@
        | AatLayoutFeatureSelectorTExpertCharacters
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE/@
        | AatLayoutFeatureSelectorTJis2004Characters
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE/@
        | AatLayoutFeatureSelectorTHojoCharacters
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE/@
        | AatLayoutFeatureSelectorTNlccharacters
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE/@
        | AatLayoutFeatureSelectorTTraditionalNamesCharacters
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE/@
        | AatLayoutFeatureSelectorTLowerCaseNumbers
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE/@
        | AatLayoutFeatureSelectorTUpperCaseNumbers
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE/@
        | AatLayoutFeatureSelectorTProportionalText
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING/@
        | AatLayoutFeatureSelectorTMonospacedText
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING/@
        | AatLayoutFeatureSelectorTHalfWidthText
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING/@
        | AatLayoutFeatureSelectorTThirdWidthText
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING/@
        | AatLayoutFeatureSelectorTQuarterWidthText
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING/@
        | AatLayoutFeatureSelectorTAltProportionalText
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING/@
        | AatLayoutFeatureSelectorTAltHalfWidthText
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING/@
        | AatLayoutFeatureSelectorTNoTransliteration
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION/@
        | AatLayoutFeatureSelectorTHanjaToHangul
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION/@
        | AatLayoutFeatureSelectorTHiraganaToKatakana
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION/@
        | AatLayoutFeatureSelectorTKatakanaToHiragana
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION/@
        | AatLayoutFeatureSelectorTKanaToRomanization
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION/@
        | AatLayoutFeatureSelectorTRomanizationToHiragana
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION/@
        | AatLayoutFeatureSelectorTRomanizationToKatakana
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION/@
        | AatLayoutFeatureSelectorTHanjaToHangulAltOne
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION/@
        | AatLayoutFeatureSelectorTHanjaToHangulAltTwo
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION/@
        | AatLayoutFeatureSelectorTHanjaToHangulAltThree
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION/@
        | AatLayoutFeatureSelectorTNoAnnotation
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE/@
        | AatLayoutFeatureSelectorTBoxAnnotation
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE/@
        | AatLayoutFeatureSelectorTRoundedBoxAnnotation
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE/@
        | AatLayoutFeatureSelectorTCircleAnnotation
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE/@
        | AatLayoutFeatureSelectorTInvertedCircleAnnotation
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE/@
        | AatLayoutFeatureSelectorTParenthesisAnnotation
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE/@
        | AatLayoutFeatureSelectorTPeriodAnnotation
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE/@
        | AatLayoutFeatureSelectorTRomanNumeralAnnotation
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE/@
        | AatLayoutFeatureSelectorTDiamondAnnotation
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE/@
        | AatLayoutFeatureSelectorTInvertedBoxAnnotation
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE/@
        | AatLayoutFeatureSelectorTInvertedRoundedBoxAnnotation
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE/@
        | AatLayoutFeatureSelectorTFullWidthKana
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE/@
        | AatLayoutFeatureSelectorTProportionalKana
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE/@
        | AatLayoutFeatureSelectorTFullWidthIdeographs
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE/@
        | AatLayoutFeatureSelectorTProportionalIdeographs
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE/@
        | AatLayoutFeatureSelectorTHalfWidthIdeographs
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE/@
        | AatLayoutFeatureSelectorTCanonicalCompositionOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE/@
        | AatLayoutFeatureSelectorTCanonicalCompositionOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE/@
        | AatLayoutFeatureSelectorTCompatibilityCompositionOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE/@
        | AatLayoutFeatureSelectorTCompatibilityCompositionOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE/@
        | AatLayoutFeatureSelectorTTranscodingCompositionOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE/@
        | AatLayoutFeatureSelectorTTranscodingCompositionOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE/@
        | AatLayoutFeatureSelectorTNoRubyKana
        -- ^ Deprecated; use @/HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_OFF/@ instead
        | AatLayoutFeatureSelectorTRubyKana
        -- ^ Deprecated; use @/HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_ON/@ instead
        | AatLayoutFeatureSelectorTRubyKanaOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA/@
        | AatLayoutFeatureSelectorTRubyKanaOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA/@
        | AatLayoutFeatureSelectorTNoCjkSymbolAlternatives
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE/@
        | AatLayoutFeatureSelectorTCjkSymbolAltOne
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE/@
        | AatLayoutFeatureSelectorTCjkSymbolAltTwo
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE/@
        | AatLayoutFeatureSelectorTCjkSymbolAltThree
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE/@
        | AatLayoutFeatureSelectorTCjkSymbolAltFour
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE/@
        | AatLayoutFeatureSelectorTCjkSymbolAltFive
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE/@
        | AatLayoutFeatureSelectorTNoIdeographicAlternatives
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE/@
        | AatLayoutFeatureSelectorTIdeographicAltOne
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE/@
        | AatLayoutFeatureSelectorTIdeographicAltTwo
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE/@
        | AatLayoutFeatureSelectorTIdeographicAltThree
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE/@
        | AatLayoutFeatureSelectorTIdeographicAltFour
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE/@
        | AatLayoutFeatureSelectorTIdeographicAltFive
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE/@
        | AatLayoutFeatureSelectorTCjkVerticalRomanCentered
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE/@
        | AatLayoutFeatureSelectorTCjkVerticalRomanHbaseline
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE/@
        | AatLayoutFeatureSelectorTNoCjkItalicRoman
        -- ^ Deprecated; use @/HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_OFF/@ instead
        | AatLayoutFeatureSelectorTCjkItalicRoman
        -- ^ Deprecated; use @/HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_ON/@ instead
        | AatLayoutFeatureSelectorTCjkItalicRomanOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN/@
        | AatLayoutFeatureSelectorTCjkItalicRomanOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN/@
        | AatLayoutFeatureSelectorTCaseSensitiveLayoutOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT/@
        | AatLayoutFeatureSelectorTCaseSensitiveLayoutOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT/@
        | AatLayoutFeatureSelectorTCaseSensitiveSpacingOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT/@
        | AatLayoutFeatureSelectorTCaseSensitiveSpacingOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT/@
        | AatLayoutFeatureSelectorTAlternateHorizKanaOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA/@
        | AatLayoutFeatureSelectorTAlternateHorizKanaOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA/@
        | AatLayoutFeatureSelectorTAlternateVertKanaOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA/@
        | AatLayoutFeatureSelectorTAlternateVertKanaOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA/@
        | AatLayoutFeatureSelectorTNoStylisticAlternates
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltOneOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltOneOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltTwoOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltTwoOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltThreeOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltThreeOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltFourOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltFourOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltFiveOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltFiveOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltSixOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltSixOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltSevenOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltSevenOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltEightOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltEightOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltNineOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltNineOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltTenOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltTenOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltElevenOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltElevenOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltTwelveOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltTwelveOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltThirteenOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltThirteenOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltFourteenOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltFourteenOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltFifteenOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltFifteenOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltSixteenOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltSixteenOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltSeventeenOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltSeventeenOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltEighteenOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltEighteenOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltNineteenOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltNineteenOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltTwentyOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTStylisticAltTwentyOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTContextualAlternatesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTContextualAlternatesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTSwashAlternatesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTSwashAlternatesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTContextualSwashAlternatesOn
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTContextualSwashAlternatesOff
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES/@
        | AatLayoutFeatureSelectorTDefaultLowerCase
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE/@
        | AatLayoutFeatureSelectorTLowerCaseSmallCaps
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE/@
        | AatLayoutFeatureSelectorTLowerCasePetiteCaps
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE/@
        | AatLayoutFeatureSelectorTDefaultUpperCase
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE/@
        | AatLayoutFeatureSelectorTUpperCaseSmallCaps
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE/@
        | AatLayoutFeatureSelectorTUpperCasePetiteCaps
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE/@
        | AatLayoutFeatureSelectorTHalfWidthCjkRoman
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE/@
        | AatLayoutFeatureSelectorTProportionalCjkRoman
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE/@
        | AatLayoutFeatureSelectorTDefaultCjkRoman
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE/@
        | AatLayoutFeatureSelectorTFullWidthCjkRoman
        -- ^ for @/HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE/@
        | AnotherAatLayoutFeatureSelectorT Int
        -- ^ Catch-all for unknown values
        deriving (Int -> AatLayoutFeatureSelectorT -> ShowS
    [AatLayoutFeatureSelectorT] -> ShowS
    AatLayoutFeatureSelectorT -> String
    (Int -> AatLayoutFeatureSelectorT -> ShowS)
    -> (AatLayoutFeatureSelectorT -> String)
    -> ([AatLayoutFeatureSelectorT] -> ShowS)
    -> Show AatLayoutFeatureSelectorT
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> AatLayoutFeatureSelectorT -> ShowS
    showsPrec :: Int -> AatLayoutFeatureSelectorT -> ShowS
    $cshow :: AatLayoutFeatureSelectorT -> String
    show :: AatLayoutFeatureSelectorT -> String
    $cshowList :: [AatLayoutFeatureSelectorT] -> ShowS
    showList :: [AatLayoutFeatureSelectorT] -> ShowS
    Show, AatLayoutFeatureSelectorT -> AatLayoutFeatureSelectorT -> Bool
    (AatLayoutFeatureSelectorT -> AatLayoutFeatureSelectorT -> Bool)
    -> (AatLayoutFeatureSelectorT -> AatLayoutFeatureSelectorT -> Bool)
    -> Eq AatLayoutFeatureSelectorT
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: AatLayoutFeatureSelectorT -> AatLayoutFeatureSelectorT -> Bool
    == :: AatLayoutFeatureSelectorT -> AatLayoutFeatureSelectorT -> Bool
    $c/= :: AatLayoutFeatureSelectorT -> AatLayoutFeatureSelectorT -> Bool
    /= :: AatLayoutFeatureSelectorT -> AatLayoutFeatureSelectorT -> Bool
    Eq)

    instance P.Enum AatLayoutFeatureSelectorT where
        fromEnum :: AatLayoutFeatureSelectorT -> Int
    fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTInvalid = Int
    65535
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAllTypeFeaturesOn = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAllTypeFeaturesOff = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTRequiredLigaturesOn = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTRequiredLigaturesOff = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCommonLigaturesOn = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCommonLigaturesOff = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTRareLigaturesOn = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTRareLigaturesOff = Int
    5
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTLogosOn = Int
    6
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTLogosOff = Int
    7
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTRebusPicturesOn = Int
    8
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTRebusPicturesOff = Int
    9
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDiphthongLigaturesOn = Int
    10
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDiphthongLigaturesOff = Int
    11
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSquaredLigaturesOn = Int
    12
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSquaredLigaturesOff = Int
    13
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAbbrevSquaredLigaturesOn = Int
    14
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAbbrevSquaredLigaturesOff = Int
    15
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSymbolLigaturesOn = Int
    16
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSymbolLigaturesOff = Int
    17
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTContextualLigaturesOn = Int
    18
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTContextualLigaturesOff = Int
    19
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHistoricalLigaturesOn = Int
    20
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHistoricalLigaturesOff = Int
    21
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTUnconnected = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTPartiallyConnected = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCursive = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTUpperAndLowerCase = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAllCaps = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAllLowerCase = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSmallCaps = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTInitialCaps = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTInitialCapsAndSmallCaps = Int
    5
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSubstituteVerticalFormsOn = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSubstituteVerticalFormsOff = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTLinguisticRearrangementOn = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTLinguisticRearrangementOff = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTMonospacedNumbers = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTProportionalNumbers = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTThirdWidthNumbers = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTQuarterWidthNumbers = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTWordInitialSwashesOn = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTWordInitialSwashesOff = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTWordFinalSwashesOn = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTWordFinalSwashesOff = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTLineInitialSwashesOn = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTLineInitialSwashesOff = Int
    5
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTLineFinalSwashesOn = Int
    6
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTLineFinalSwashesOff = Int
    7
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTNonFinalSwashesOn = Int
    8
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTNonFinalSwashesOff = Int
    9
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTShowDiacritics = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHideDiacritics = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDecomposeDiacritics = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTNormalPosition = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSuperiors = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTInferiors = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTOrdinals = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTScientificInferiors = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTNoFractions = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTVerticalFractions = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDiagonalFractions = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTPreventOverlapOn = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTPreventOverlapOff = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHyphensToEmDashOn = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHyphensToEmDashOff = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHyphenToEnDashOn = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHyphenToEnDashOff = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSlashedZeroOn = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSlashedZeroOff = Int
    5
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTFormInterrobangOn = Int
    6
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTFormInterrobangOff = Int
    7
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSmartQuotesOn = Int
    8
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSmartQuotesOff = Int
    9
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTPeriodsToEllipsisOn = Int
    10
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTPeriodsToEllipsisOff = Int
    11
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHyphenToMinusOn = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHyphenToMinusOff = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAsteriskToMultiplyOn = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAsteriskToMultiplyOff = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSlashToDivideOn = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSlashToDivideOff = Int
    5
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTInequalityLigaturesOn = Int
    6
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTInequalityLigaturesOff = Int
    7
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTExponentsOn = Int
    8
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTExponentsOff = Int
    9
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTMathematicalGreekOn = Int
    10
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTMathematicalGreekOff = Int
    11
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTNoOrnaments = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDingbats = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTPiCharacters = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTFleurons = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDecorativeBorders = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTInternationalSymbols = Int
    5
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTMathSymbols = Int
    6
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTNoAlternates = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDesignLevel1 = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDesignLevel2 = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDesignLevel3 = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDesignLevel4 = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDesignLevel5 = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTNoStyleOptions = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDisplayText = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTEngravedText = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTIlluminatedCaps = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTTitlingCaps = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTTallCaps = Int
    5
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTTraditionalCharacters = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSimplifiedCharacters = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTJis1978Characters = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTJis1983Characters = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTJis1990Characters = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTTraditionalAltOne = Int
    5
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTTraditionalAltTwo = Int
    6
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTTraditionalAltThree = Int
    7
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTTraditionalAltFour = Int
    8
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTTraditionalAltFive = Int
    9
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTExpertCharacters = Int
    10
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTJis2004Characters = Int
    11
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHojoCharacters = Int
    12
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTNlccharacters = Int
    13
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTTraditionalNamesCharacters = Int
    14
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTLowerCaseNumbers = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTUpperCaseNumbers = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTProportionalText = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTMonospacedText = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHalfWidthText = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTThirdWidthText = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTQuarterWidthText = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAltProportionalText = Int
    5
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAltHalfWidthText = Int
    6
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTNoTransliteration = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHanjaToHangul = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHiraganaToKatakana = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTKatakanaToHiragana = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTKanaToRomanization = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTRomanizationToHiragana = Int
    5
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTRomanizationToKatakana = Int
    6
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHanjaToHangulAltOne = Int
    7
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHanjaToHangulAltTwo = Int
    8
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHanjaToHangulAltThree = Int
    9
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTNoAnnotation = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTBoxAnnotation = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTRoundedBoxAnnotation = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCircleAnnotation = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTInvertedCircleAnnotation = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTParenthesisAnnotation = Int
    5
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTPeriodAnnotation = Int
    6
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTRomanNumeralAnnotation = Int
    7
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDiamondAnnotation = Int
    8
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTInvertedBoxAnnotation = Int
    9
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTInvertedRoundedBoxAnnotation = Int
    10
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTFullWidthKana = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTProportionalKana = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTFullWidthIdeographs = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTProportionalIdeographs = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHalfWidthIdeographs = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCanonicalCompositionOn = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCanonicalCompositionOff = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCompatibilityCompositionOn = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCompatibilityCompositionOff = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTTranscodingCompositionOn = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTTranscodingCompositionOff = Int
    5
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTNoRubyKana = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTRubyKana = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTRubyKanaOn = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTRubyKanaOff = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTNoCjkSymbolAlternatives = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCjkSymbolAltOne = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCjkSymbolAltTwo = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCjkSymbolAltThree = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCjkSymbolAltFour = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCjkSymbolAltFive = Int
    5
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTNoIdeographicAlternatives = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTIdeographicAltOne = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTIdeographicAltTwo = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTIdeographicAltThree = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTIdeographicAltFour = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTIdeographicAltFive = Int
    5
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCjkVerticalRomanCentered = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCjkVerticalRomanHbaseline = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTNoCjkItalicRoman = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCjkItalicRoman = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCjkItalicRomanOn = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCjkItalicRomanOff = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCaseSensitiveLayoutOn = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCaseSensitiveLayoutOff = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCaseSensitiveSpacingOn = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCaseSensitiveSpacingOff = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAlternateHorizKanaOn = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAlternateHorizKanaOff = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAlternateVertKanaOn = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAlternateVertKanaOff = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTNoStylisticAlternates = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltOneOn = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltOneOff = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltTwoOn = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltTwoOff = Int
    5
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltThreeOn = Int
    6
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltThreeOff = Int
    7
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltFourOn = Int
    8
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltFourOff = Int
    9
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltFiveOn = Int
    10
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltFiveOff = Int
    11
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltSixOn = Int
    12
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltSixOff = Int
    13
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltSevenOn = Int
    14
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltSevenOff = Int
    15
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltEightOn = Int
    16
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltEightOff = Int
    17
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltNineOn = Int
    18
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltNineOff = Int
    19
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltTenOn = Int
    20
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltTenOff = Int
    21
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltElevenOn = Int
    22
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltElevenOff = Int
    23
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltTwelveOn = Int
    24
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltTwelveOff = Int
    25
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltThirteenOn = Int
    26
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltThirteenOff = Int
    27
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltFourteenOn = Int
    28
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltFourteenOff = Int
    29
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltFifteenOn = Int
    30
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltFifteenOff = Int
    31
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltSixteenOn = Int
    32
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltSixteenOff = Int
    33
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltSeventeenOn = Int
    34
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltSeventeenOff = Int
    35
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltEighteenOn = Int
    36
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltEighteenOff = Int
    37
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltNineteenOn = Int
    38
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltNineteenOff = Int
    39
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltTwentyOn = Int
    40
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltTwentyOff = Int
    41
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTContextualAlternatesOn = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTContextualAlternatesOff = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSwashAlternatesOn = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSwashAlternatesOff = Int
    3
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTContextualSwashAlternatesOn = Int
    4
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTContextualSwashAlternatesOff = Int
    5
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDefaultLowerCase = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTLowerCaseSmallCaps = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTLowerCasePetiteCaps = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDefaultUpperCase = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTUpperCaseSmallCaps = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTUpperCasePetiteCaps = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHalfWidthCjkRoman = Int
    0
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTProportionalCjkRoman = Int
    1
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDefaultCjkRoman = Int
    2
        fromEnum AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTFullWidthCjkRoman = Int
    3
        fromEnum (AnotherAatLayoutFeatureSelectorT Int
    k) = Int
    k

        toEnum :: Int -> AatLayoutFeatureSelectorT
    toEnum Int
    65535 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTInvalid
        toEnum Int
    0 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAllTypeFeaturesOn
        toEnum Int
    1 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAllTypeFeaturesOff
        toEnum Int
    2 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCommonLigaturesOn
        toEnum Int
    3 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTCommonLigaturesOff
        toEnum Int
    4 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTRareLigaturesOn
        toEnum Int
    5 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTRareLigaturesOff
        toEnum Int
    6 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTLogosOn
        toEnum Int
    7 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTLogosOff
        toEnum Int
    8 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTRebusPicturesOn
        toEnum Int
    9 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTRebusPicturesOff
        toEnum Int
    10 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDiphthongLigaturesOn
        toEnum Int
    11 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTDiphthongLigaturesOff
        toEnum Int
    12 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSquaredLigaturesOn
        toEnum Int
    13 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSquaredLigaturesOff
        toEnum Int
    14 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAbbrevSquaredLigaturesOn
        toEnum Int
    15 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTAbbrevSquaredLigaturesOff
        toEnum Int
    16 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSymbolLigaturesOn
        toEnum Int
    17 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTSymbolLigaturesOff
        toEnum Int
    18 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTContextualLigaturesOn
        toEnum Int
    19 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTContextualLigaturesOff
        toEnum Int
    20 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHistoricalLigaturesOn
        toEnum Int
    21 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTHistoricalLigaturesOff
        toEnum Int
    22 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltElevenOn
        toEnum Int
    23 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltElevenOff
        toEnum Int
    24 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltTwelveOn
        toEnum Int
    25 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltTwelveOff
        toEnum Int
    26 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltThirteenOn
        toEnum Int
    27 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltThirteenOff
        toEnum Int
    28 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltFourteenOn
        toEnum Int
    29 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltFourteenOff
        toEnum Int
    30 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltFifteenOn
        toEnum Int
    31 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltFifteenOff
        toEnum Int
    32 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltSixteenOn
        toEnum Int
    33 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltSixteenOff
        toEnum Int
    34 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltSeventeenOn
        toEnum Int
    35 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltSeventeenOff
        toEnum Int
    36 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltEighteenOn
        toEnum Int
    37 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltEighteenOff
        toEnum Int
    38 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltNineteenOn
        toEnum Int
    39 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltNineteenOff
        toEnum Int
    40 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltTwentyOn
        toEnum Int
    41 = AatLayoutFeatureSelectorT
    AatLayoutFeatureSelectorTStylisticAltTwentyOff
        toEnum Int
    k = Int -> AatLayoutFeatureSelectorT
    AnotherAatLayoutFeatureSelectorT Int
    k

    instance P.Ord AatLayoutFeatureSelectorT where
        compare :: AatLayoutFeatureSelectorT -> AatLayoutFeatureSelectorT -> Ordering
    compare AatLayoutFeatureSelectorT
    a AatLayoutFeatureSelectorT
    b = Int -> Int -> Ordering
    forall a. Ord a => a -> a -> Ordering
    P.compare (AatLayoutFeatureSelectorT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum AatLayoutFeatureSelectorT
    a) (AatLayoutFeatureSelectorT -> Int
    forall a. Enum a => a -> Int
    P.fromEnum AatLayoutFeatureSelectorT
    b)

    type instance O.ParentTypes AatLayoutFeatureSelectorT = '[]
    instance O.HasParentTypes AatLayoutFeatureSelectorT

    foreign import ccall "hb_gobject_aat_layout_feature_selector_get_type" c_hb_gobject_aat_layout_feature_selector_get_type ::
        IO GType

    instance B.Types.TypedObject AatLayoutFeatureSelectorT where
        glibType :: IO GType
    glibType = IO GType
    c_hb_gobject_aat_layout_feature_selector_get_type

    instance B.Types.BoxedEnum AatLayoutFeatureSelectorT