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

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !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(..)                       ,


-- ** ScriptT #enum:ScriptT#

    ScriptT(..)                             ,


-- ** 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.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.Text as T
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


-- 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
showList :: [UnicodeGeneralCategoryT] -> ShowS
$cshowList :: [UnicodeGeneralCategoryT] -> ShowS
show :: UnicodeGeneralCategoryT -> String
$cshow :: UnicodeGeneralCategoryT -> String
showsPrec :: Int -> UnicodeGeneralCategoryT -> ShowS
$cshowsPrec :: Int -> UnicodeGeneralCategoryT -> ShowS
Show, UnicodeGeneralCategoryT -> UnicodeGeneralCategoryT -> Bool
(UnicodeGeneralCategoryT -> UnicodeGeneralCategoryT -> Bool)
-> (UnicodeGeneralCategoryT -> UnicodeGeneralCategoryT -> Bool)
-> Eq UnicodeGeneralCategoryT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UnicodeGeneralCategoryT -> UnicodeGeneralCategoryT -> Bool
$c/= :: UnicodeGeneralCategoryT -> UnicodeGeneralCategoryT -> Bool
== :: UnicodeGeneralCategoryT -> UnicodeGeneralCategoryT -> Bool
$c== :: UnicodeGeneralCategoryT -> UnicodeGeneralCategoryT -> Bool
Eq)

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

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

instance P.Ord UnicodeGeneralCategoryT where
    compare :: UnicodeGeneralCategoryT -> UnicodeGeneralCategoryT -> Ordering
compare a :: UnicodeGeneralCategoryT
a b :: 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]
    | UnicodeCombiningClassTCcc133
    -- ^ [Tibetan]
    | 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
showList :: [UnicodeCombiningClassT] -> ShowS
$cshowList :: [UnicodeCombiningClassT] -> ShowS
show :: UnicodeCombiningClassT -> String
$cshow :: UnicodeCombiningClassT -> String
showsPrec :: Int -> UnicodeCombiningClassT -> ShowS
$cshowsPrec :: Int -> UnicodeCombiningClassT -> ShowS
Show, UnicodeCombiningClassT -> UnicodeCombiningClassT -> Bool
(UnicodeCombiningClassT -> UnicodeCombiningClassT -> Bool)
-> (UnicodeCombiningClassT -> UnicodeCombiningClassT -> Bool)
-> Eq UnicodeCombiningClassT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UnicodeCombiningClassT -> UnicodeCombiningClassT -> Bool
$c/= :: UnicodeCombiningClassT -> UnicodeCombiningClassT -> Bool
== :: UnicodeCombiningClassT -> UnicodeCombiningClassT -> Bool
$c== :: UnicodeCombiningClassT -> UnicodeCombiningClassT -> Bool
Eq)

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

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

instance P.Ord UnicodeCombiningClassT where
    compare :: UnicodeCombiningClassT -> UnicodeCombiningClassT -> Ordering
compare a :: UnicodeCombiningClassT
a b :: 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 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
    -- ^ HB_TAG (\'Z\',\'y\',\'y\',\'y\')
    | ScriptTInherited
    -- ^ HB_TAG (\'Z\',\'i\',\'n\',\'h\')
    | ScriptTUnknown
    -- ^ HB_TAG (\'Z\',\'z\',\'z\',\'z\')
    -- /@hBSCRIPTARABIC@/
    -- /@hBSCRIPTARMENIAN@/
    -- /@hBSCRIPTBENGALI@/
    -- /@hBSCRIPTCYRILLIC@/
    -- /@hBSCRIPTDEVANAGARI@/
    -- /@hBSCRIPTGEORGIAN@/
    -- /@hBSCRIPTGREEK@/
    -- /@hBSCRIPTGUJARATI@/
    -- /@hBSCRIPTGURMUKHI@/
    -- /@hBSCRIPTHANGUL@/
    -- /@hBSCRIPTHAN@/
    -- /@hBSCRIPTHEBREW@/
    -- /@hBSCRIPTHIRAGANA@/
    -- /@hBSCRIPTKANNADA@/
    -- /@hBSCRIPTKATAKANA@/
    -- /@hBSCRIPTLAO@/
    -- /@hBSCRIPTLATIN@/
    -- /@hBSCRIPTMALAYALAM@/
    -- /@hBSCRIPTORIYA@/
    -- /@hBSCRIPTTAMIL@/
    -- /@hBSCRIPTTELUGU@/
    -- /@hBSCRIPTTHAI@/
    -- /@hBSCRIPTTIBETAN@/
    -- /@hBSCRIPTBOPOMOFO@/
    -- /@hBSCRIPTBRAILLE@/
    -- /@hBSCRIPTCANADIANSYLLABICS@/
    -- /@hBSCRIPTCHEROKEE@/
    -- /@hBSCRIPTETHIOPIC@/
    -- /@hBSCRIPTKHMER@/
    -- /@hBSCRIPTMONGOLIAN@/
    -- /@hBSCRIPTMYANMAR@/
    -- /@hBSCRIPTOGHAM@/
    -- /@hBSCRIPTRUNIC@/
    -- /@hBSCRIPTSINHALA@/
    -- /@hBSCRIPTSYRIAC@/
    -- /@hBSCRIPTTHAANA@/
    -- /@hBSCRIPTYI@/
    -- /@hBSCRIPTDESERET@/
    -- /@hBSCRIPTGOTHIC@/
    -- /@hBSCRIPTOLDITALIC@/
    -- /@hBSCRIPTBUHID@/
    -- /@hBSCRIPTHANUNOO@/
    -- /@hBSCRIPTTAGALOG@/
    -- /@hBSCRIPTTAGBANWA@/
    -- /@hBSCRIPTCYPRIOT@/
    -- /@hBSCRIPTLIMBU@/
    -- /@hBSCRIPTLINEARB@/
    -- /@hBSCRIPTOSMANYA@/
    -- /@hBSCRIPTSHAVIAN@/
    -- /@hBSCRIPTTAILE@/
    -- /@hBSCRIPTUGARITIC@/
    -- /@hBSCRIPTBUGINESE@/
    -- /@hBSCRIPTCOPTIC@/
    -- /@hBSCRIPTGLAGOLITIC@/
    -- /@hBSCRIPTKHAROSHTHI@/
    -- /@hBSCRIPTNEWTAILUE@/
    -- /@hBSCRIPTOLDPERSIAN@/
    -- /@hBSCRIPTSYLOTINAGRI@/
    -- /@hBSCRIPTTIFINAGH@/
    -- /@hBSCRIPTBALINESE@/
    -- /@hBSCRIPTCUNEIFORM@/
    -- /@hBSCRIPTNKO@/
    -- /@hBSCRIPTPHAGSPA@/
    -- /@hBSCRIPTPHOENICIAN@/
    -- /@hBSCRIPTCARIAN@/
    -- /@hBSCRIPTCHAM@/
    -- /@hBSCRIPTKAYAHLI@/
    -- /@hBSCRIPTLEPCHA@/
    -- /@hBSCRIPTLYCIAN@/
    -- /@hBSCRIPTLYDIAN@/
    -- /@hBSCRIPTOLCHIKI@/
    -- /@hBSCRIPTREJANG@/
    -- /@hBSCRIPTSAURASHTRA@/
    -- /@hBSCRIPTSUNDANESE@/
    -- /@hBSCRIPTVAI@/
    -- /@hBSCRIPTAVESTAN@/
    -- /@hBSCRIPTBAMUM@/
    -- /@hBSCRIPTEGYPTIANHIEROGLYPHS@/
    -- /@hBSCRIPTIMPERIALARAMAIC@/
    -- /@hBSCRIPTINSCRIPTIONALPAHLAVI@/
    -- /@hBSCRIPTINSCRIPTIONALPARTHIAN@/
    -- /@hBSCRIPTJAVANESE@/
    -- /@hBSCRIPTKAITHI@/
    -- /@hBSCRIPTLISU@/
    -- /@hBSCRIPTMEETEIMAYEK@/
    -- /@hBSCRIPTOLDSOUTHARABIAN@/
    -- /@hBSCRIPTOLDTURKIC@/
    -- /@hBSCRIPTSAMARITAN@/
    -- /@hBSCRIPTTAITHAM@/
    -- /@hBSCRIPTTAIVIET@/
    -- /@hBSCRIPTBATAK@/
    -- /@hBSCRIPTBRAHMI@/
    -- /@hBSCRIPTMANDAIC@/
    -- /@hBSCRIPTCHAKMA@/
    -- /@hBSCRIPTMEROITICCURSIVE@/
    -- /@hBSCRIPTMEROITICHIEROGLYPHS@/
    -- /@hBSCRIPTMIAO@/
    -- /@hBSCRIPTSHARADA@/
    -- /@hBSCRIPTSORASOMPENG@/
    -- /@hBSCRIPTTAKRI@/
    -- /@hBSCRIPTBASSAVAH@/
    -- /@hBSCRIPTCAUCASIANALBANIAN@/
    -- /@hBSCRIPTDUPLOYAN@/
    -- /@hBSCRIPTELBASAN@/
    -- /@hBSCRIPTGRANTHA@/
    -- /@hBSCRIPTKHOJKI@/
    -- /@hBSCRIPTKHUDAWADI@/
    -- /@hBSCRIPTLINEARA@/
    -- /@hBSCRIPTMAHAJANI@/
    -- /@hBSCRIPTMANICHAEAN@/
    -- /@hBSCRIPTMENDEKIKAKUI@/
    -- /@hBSCRIPTMODI@/
    -- /@hBSCRIPTMRO@/
    -- /@hBSCRIPTNABATAEAN@/
    -- /@hBSCRIPTOLDNORTHARABIAN@/
    -- /@hBSCRIPTOLDPERMIC@/
    -- /@hBSCRIPTPAHAWHHMONG@/
    -- /@hBSCRIPTPALMYRENE@/
    -- /@hBSCRIPTPAUCINHAU@/
    -- /@hBSCRIPTPSALTERPAHLAVI@/
    -- /@hBSCRIPTSIDDHAM@/
    -- /@hBSCRIPTTIRHUTA@/
    -- /@hBSCRIPTWARANGCITI@/
    -- /@hBSCRIPTAHOM@/
    -- /@hBSCRIPTANATOLIANHIEROGLYPHS@/
    -- /@hBSCRIPTHATRAN@/
    -- /@hBSCRIPTMULTANI@/
    -- /@hBSCRIPTOLDHUNGARIAN@/
    -- /@hBSCRIPTSIGNWRITING@/
    -- /@hBSCRIPTADLAM@/
    -- /@hBSCRIPTBHAIKSUKI@/
    -- /@hBSCRIPTMARCHEN@/
    -- /@hBSCRIPTOSAGE@/
    -- /@hBSCRIPTTANGUT@/
    -- /@hBSCRIPTNEWA@/
    -- /@hBSCRIPTMASARAMGONDI@/
    -- /@hBSCRIPTNUSHU@/
    -- /@hBSCRIPTSOYOMBO@/
    -- /@hBSCRIPTZANABAZARSQUARE@/
    -- /@hBSCRIPTDOGRA@/
    -- /@hBSCRIPTGUNJALAGONDI@/
    -- /@hBSCRIPTHANIFIROHINGYA@/
    -- /@hBSCRIPTMAKASAR@/
    -- /@hBSCRIPTMEDEFAIDRIN@/
    -- /@hBSCRIPTOLDSOGDIAN@/
    -- /@hBSCRIPTSOGDIAN@/
    -- /@hBSCRIPTELYMAIC@/
    -- /@hBSCRIPTNANDINAGARI@/
    -- /@hBSCRIPTNYIAKENGPUACHUEHMONG@/
    -- /@hBSCRIPTWANCHO@/
    | ScriptTArabic
    -- ^ /No description available in the introspection data./
    | ScriptTArmenian
    -- ^ /No description available in the introspection data./
    | ScriptTBengali
    -- ^ /No description available in the introspection data./
    | ScriptTCyrillic
    -- ^ /No description available in the introspection data./
    | ScriptTDevanagari
    -- ^ /No description available in the introspection data./
    | ScriptTGeorgian
    -- ^ /No description available in the introspection data./
    | ScriptTGreek
    -- ^ /No description available in the introspection data./
    | ScriptTGujarati
    -- ^ /No description available in the introspection data./
    | ScriptTGurmukhi
    -- ^ /No description available in the introspection data./
    | ScriptTHangul
    -- ^ /No description available in the introspection data./
    | ScriptTHan
    -- ^ /No description available in the introspection data./
    | ScriptTHebrew
    -- ^ /No description available in the introspection data./
    | ScriptTHiragana
    -- ^ /No description available in the introspection data./
    | ScriptTKannada
    -- ^ /No description available in the introspection data./
    | ScriptTKatakana
    -- ^ /No description available in the introspection data./
    | ScriptTLao
    -- ^ /No description available in the introspection data./
    | ScriptTLatin
    -- ^ /No description available in the introspection data./
    | ScriptTMalayalam
    -- ^ /No description available in the introspection data./
    | ScriptTOriya
    -- ^ /No description available in the introspection data./
    | ScriptTTamil
    -- ^ /No description available in the introspection data./
    | ScriptTTelugu
    -- ^ /No description available in the introspection data./
    | ScriptTThai
    -- ^ /No description available in the introspection data./
    | ScriptTTibetan
    -- ^ /No description available in the introspection data./
    | ScriptTBopomofo
    -- ^ /No description available in the introspection data./
    | ScriptTBraille
    -- ^ /No description available in the introspection data./
    | ScriptTCanadianSyllabics
    -- ^ /No description available in the introspection data./
    | ScriptTCherokee
    -- ^ /No description available in the introspection data./
    | ScriptTEthiopic
    -- ^ /No description available in the introspection data./
    | ScriptTKhmer
    -- ^ /No description available in the introspection data./
    | ScriptTMongolian
    -- ^ /No description available in the introspection data./
    | ScriptTMyanmar
    -- ^ /No description available in the introspection data./
    | ScriptTOgham
    -- ^ /No description available in the introspection data./
    | ScriptTRunic
    -- ^ /No description available in the introspection data./
    | ScriptTSinhala
    -- ^ /No description available in the introspection data./
    | ScriptTSyriac
    -- ^ /No description available in the introspection data./
    | ScriptTThaana
    -- ^ /No description available in the introspection data./
    | ScriptTYi
    -- ^ /No description available in the introspection data./
    | ScriptTDeseret
    -- ^ /No description available in the introspection data./
    | ScriptTGothic
    -- ^ /No description available in the introspection data./
    | ScriptTOldItalic
    -- ^ /No description available in the introspection data./
    | ScriptTBuhid
    -- ^ /No description available in the introspection data./
    | ScriptTHanunoo
    -- ^ /No description available in the introspection data./
    | ScriptTTagalog
    -- ^ /No description available in the introspection data./
    | ScriptTTagbanwa
    -- ^ /No description available in the introspection data./
    | ScriptTCypriot
    -- ^ /No description available in the introspection data./
    | ScriptTLimbu
    -- ^ /No description available in the introspection data./
    | ScriptTLinearB
    -- ^ /No description available in the introspection data./
    | ScriptTOsmanya
    -- ^ /No description available in the introspection data./
    | ScriptTShavian
    -- ^ /No description available in the introspection data./
    | ScriptTTaiLe
    -- ^ /No description available in the introspection data./
    | ScriptTUgaritic
    -- ^ /No description available in the introspection data./
    | ScriptTBuginese
    -- ^ /No description available in the introspection data./
    | ScriptTCoptic
    -- ^ /No description available in the introspection data./
    | ScriptTGlagolitic
    -- ^ /No description available in the introspection data./
    | ScriptTKharoshthi
    -- ^ /No description available in the introspection data./
    | ScriptTNewTaiLue
    -- ^ /No description available in the introspection data./
    | ScriptTOldPersian
    -- ^ /No description available in the introspection data./
    | ScriptTSylotiNagri
    -- ^ /No description available in the introspection data./
    | ScriptTTifinagh
    -- ^ /No description available in the introspection data./
    | ScriptTBalinese
    -- ^ /No description available in the introspection data./
    | ScriptTCuneiform
    -- ^ /No description available in the introspection data./
    | ScriptTNko
    -- ^ /No description available in the introspection data./
    | ScriptTPhagsPa
    -- ^ /No description available in the introspection data./
    | ScriptTPhoenician
    -- ^ /No description available in the introspection data./
    | ScriptTCarian
    -- ^ /No description available in the introspection data./
    | ScriptTCham
    -- ^ /No description available in the introspection data./
    | ScriptTKayahLi
    -- ^ /No description available in the introspection data./
    | ScriptTLepcha
    -- ^ /No description available in the introspection data./
    | ScriptTLycian
    -- ^ /No description available in the introspection data./
    | ScriptTLydian
    -- ^ /No description available in the introspection data./
    | ScriptTOlChiki
    -- ^ /No description available in the introspection data./
    | ScriptTRejang
    -- ^ /No description available in the introspection data./
    | ScriptTSaurashtra
    -- ^ /No description available in the introspection data./
    | ScriptTSundanese
    -- ^ /No description available in the introspection data./
    | ScriptTVai
    -- ^ /No description available in the introspection data./
    | ScriptTAvestan
    -- ^ /No description available in the introspection data./
    | ScriptTBamum
    -- ^ /No description available in the introspection data./
    | ScriptTEgyptianHieroglyphs
    -- ^ /No description available in the introspection data./
    | ScriptTImperialAramaic
    -- ^ /No description available in the introspection data./
    | ScriptTInscriptionalPahlavi
    -- ^ /No description available in the introspection data./
    | ScriptTInscriptionalParthian
    -- ^ /No description available in the introspection data./
    | ScriptTJavanese
    -- ^ /No description available in the introspection data./
    | ScriptTKaithi
    -- ^ /No description available in the introspection data./
    | ScriptTLisu
    -- ^ /No description available in the introspection data./
    | ScriptTMeeteiMayek
    -- ^ /No description available in the introspection data./
    | ScriptTOldSouthArabian
    -- ^ /No description available in the introspection data./
    | ScriptTOldTurkic
    -- ^ /No description available in the introspection data./
    | ScriptTSamaritan
    -- ^ /No description available in the introspection data./
    | ScriptTTaiTham
    -- ^ /No description available in the introspection data./
    | ScriptTTaiViet
    -- ^ /No description available in the introspection data./
    | ScriptTBatak
    -- ^ /No description available in the introspection data./
    | ScriptTBrahmi
    -- ^ /No description available in the introspection data./
    | ScriptTMandaic
    -- ^ /No description available in the introspection data./
    | ScriptTChakma
    -- ^ /No description available in the introspection data./
    | ScriptTMeroiticCursive
    -- ^ /No description available in the introspection data./
    | ScriptTMeroiticHieroglyphs
    -- ^ /No description available in the introspection data./
    | ScriptTMiao
    -- ^ /No description available in the introspection data./
    | ScriptTSharada
    -- ^ /No description available in the introspection data./
    | ScriptTSoraSompeng
    -- ^ /No description available in the introspection data./
    | ScriptTTakri
    -- ^ /No description available in the introspection data./
    | ScriptTBassaVah
    -- ^ /No description available in the introspection data./
    | ScriptTCaucasianAlbanian
    -- ^ /No description available in the introspection data./
    | ScriptTDuployan
    -- ^ /No description available in the introspection data./
    | ScriptTElbasan
    -- ^ /No description available in the introspection data./
    | ScriptTGrantha
    -- ^ /No description available in the introspection data./
    | ScriptTKhojki
    -- ^ /No description available in the introspection data./
    | ScriptTKhudawadi
    -- ^ /No description available in the introspection data./
    | ScriptTLinearA
    -- ^ /No description available in the introspection data./
    | ScriptTMahajani
    -- ^ /No description available in the introspection data./
    | ScriptTManichaean
    -- ^ /No description available in the introspection data./
    | ScriptTMendeKikakui
    -- ^ /No description available in the introspection data./
    | ScriptTModi
    -- ^ /No description available in the introspection data./
    | ScriptTMro
    -- ^ /No description available in the introspection data./
    | ScriptTNabataean
    -- ^ /No description available in the introspection data./
    | ScriptTOldNorthArabian
    -- ^ /No description available in the introspection data./
    | ScriptTOldPermic
    -- ^ /No description available in the introspection data./
    | ScriptTPahawhHmong
    -- ^ /No description available in the introspection data./
    | ScriptTPalmyrene
    -- ^ /No description available in the introspection data./
    | ScriptTPauCinHau
    -- ^ /No description available in the introspection data./
    | ScriptTPsalterPahlavi
    -- ^ /No description available in the introspection data./
    | ScriptTSiddham
    -- ^ /No description available in the introspection data./
    | ScriptTTirhuta
    -- ^ /No description available in the introspection data./
    | ScriptTWarangCiti
    -- ^ /No description available in the introspection data./
    | ScriptTAhom
    -- ^ /No description available in the introspection data./
    | ScriptTAnatolianHieroglyphs
    -- ^ /No description available in the introspection data./
    | ScriptTHatran
    -- ^ /No description available in the introspection data./
    | ScriptTMultani
    -- ^ /No description available in the introspection data./
    | ScriptTOldHungarian
    -- ^ /No description available in the introspection data./
    | ScriptTSignwriting
    -- ^ /No description available in the introspection data./
    | ScriptTAdlam
    -- ^ /No description available in the introspection data./
    | ScriptTBhaiksuki
    -- ^ /No description available in the introspection data./
    | ScriptTMarchen
    -- ^ /No description available in the introspection data./
    | ScriptTOsage
    -- ^ /No description available in the introspection data./
    | ScriptTTangut
    -- ^ /No description available in the introspection data./
    | ScriptTNewa
    -- ^ /No description available in the introspection data./
    | ScriptTMasaramGondi
    -- ^ /No description available in the introspection data./
    | ScriptTNushu
    -- ^ /No description available in the introspection data./
    | ScriptTSoyombo
    -- ^ /No description available in the introspection data./
    | ScriptTZanabazarSquare
    -- ^ /No description available in the introspection data./
    | ScriptTDogra
    -- ^ /No description available in the introspection data./
    | ScriptTGunjalaGondi
    -- ^ /No description available in the introspection data./
    | ScriptTHanifiRohingya
    -- ^ /No description available in the introspection data./
    | ScriptTMakasar
    -- ^ /No description available in the introspection data./
    | ScriptTMedefaidrin
    -- ^ /No description available in the introspection data./
    | ScriptTOldSogdian
    -- ^ /No description available in the introspection data./
    | ScriptTSogdian
    -- ^ /No description available in the introspection data./
    | ScriptTElymaic
    -- ^ /No description available in the introspection data./
    | ScriptTNandinagari
    -- ^ /No description available in the introspection data./
    | ScriptTNyiakengPuachueHmong
    -- ^ /No description available in the introspection data./
    | ScriptTWancho
    -- ^ /No description available in the introspection data./
    | ScriptTChorasmian
    -- ^ /No description available in the introspection data./
    | ScriptTDivesAkuru
    -- ^ /No description available in the introspection data./
    | ScriptTKhitanSmallScript
    -- ^ /No description available in the introspection data./
    | ScriptTYezidi
    -- ^ /No description available in the introspection data./
    | ScriptTInvalid
    -- ^ @/HB_TAG_NONE/@
    | 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
showList :: [ScriptT] -> ShowS
$cshowList :: [ScriptT] -> ShowS
show :: ScriptT -> String
$cshow :: ScriptT -> String
showsPrec :: Int -> ScriptT -> ShowS
$cshowsPrec :: Int -> ScriptT -> ShowS
Show, ScriptT -> ScriptT -> Bool
(ScriptT -> ScriptT -> Bool)
-> (ScriptT -> ScriptT -> Bool) -> Eq ScriptT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ScriptT -> ScriptT -> Bool
$c/= :: ScriptT -> ScriptT -> Bool
== :: ScriptT -> ScriptT -> Bool
$c== :: ScriptT -> ScriptT -> Bool
Eq)

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

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

instance P.Ord ScriptT where
    compare :: ScriptT -> ScriptT -> Ordering
compare a :: ScriptT
a b :: 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 ot_metrics_tag_t
-- | From https:\/\/docs.microsoft.com\/en-us\/typography\/opentype\/spec\/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
showList :: [OtMetricsTagT] -> ShowS
$cshowList :: [OtMetricsTagT] -> ShowS
show :: OtMetricsTagT -> String
$cshow :: OtMetricsTagT -> String
showsPrec :: Int -> OtMetricsTagT -> ShowS
$cshowsPrec :: Int -> OtMetricsTagT -> ShowS
Show, OtMetricsTagT -> OtMetricsTagT -> Bool
(OtMetricsTagT -> OtMetricsTagT -> Bool)
-> (OtMetricsTagT -> OtMetricsTagT -> Bool) -> Eq OtMetricsTagT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OtMetricsTagT -> OtMetricsTagT -> Bool
$c/= :: OtMetricsTagT -> OtMetricsTagT -> Bool
== :: OtMetricsTagT -> OtMetricsTagT -> Bool
$c== :: OtMetricsTagT -> OtMetricsTagT -> Bool
Eq)

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

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

instance P.Ord OtMetricsTagT where
    compare :: OtMetricsTagT -> OtMetricsTagT -> Ordering
compare a :: OtMetricsTagT
a b :: 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
showList :: [OtMetaTagT] -> ShowS
$cshowList :: [OtMetaTagT] -> ShowS
show :: OtMetaTagT -> String
$cshow :: OtMetaTagT -> String
showsPrec :: Int -> OtMetaTagT -> ShowS
$cshowsPrec :: Int -> OtMetaTagT -> ShowS
Show, OtMetaTagT -> OtMetaTagT -> Bool
(OtMetaTagT -> OtMetaTagT -> Bool)
-> (OtMetaTagT -> OtMetaTagT -> Bool) -> Eq OtMetaTagT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OtMetaTagT -> OtMetaTagT -> Bool
$c/= :: OtMetaTagT -> OtMetaTagT -> Bool
== :: OtMetaTagT -> OtMetaTagT -> Bool
$c== :: OtMetaTagT -> OtMetaTagT -> Bool
Eq)

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

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

instance P.Ord OtMetaTagT where
    compare :: OtMetaTagT -> OtMetaTagT -> Ordering
compare a :: OtMetaTagT
a b :: 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
    -- ^ /No description available in the introspection data./
    | OtMathKernTTopLeft
    -- ^ /No description available in the introspection data./
    | OtMathKernTBottomRight
    -- ^ /No description available in the introspection data./
    | OtMathKernTBottomLeft
    -- ^ /No description available in the introspection data./
    | 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
showList :: [OtMathKernT] -> ShowS
$cshowList :: [OtMathKernT] -> ShowS
show :: OtMathKernT -> String
$cshow :: OtMathKernT -> String
showsPrec :: Int -> OtMathKernT -> ShowS
$cshowsPrec :: Int -> OtMathKernT -> ShowS
Show, OtMathKernT -> OtMathKernT -> Bool
(OtMathKernT -> OtMathKernT -> Bool)
-> (OtMathKernT -> OtMathKernT -> Bool) -> Eq OtMathKernT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OtMathKernT -> OtMathKernT -> Bool
$c/= :: OtMathKernT -> OtMathKernT -> Bool
== :: OtMathKernT -> OtMathKernT -> Bool
$c== :: OtMathKernT -> OtMathKernT -> Bool
Eq)

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

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

instance P.Ord OtMathKernT where
    compare :: OtMathKernT -> OtMathKernT -> Ordering
compare a :: OtMathKernT
a b :: 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 specified at
-- https:\/\/docs.microsoft.com\/en-us\/typography\/opentype\/spec\/math
-- 
-- /Since: 1.3.3/
data OtMathConstantT = 
      OtMathConstantTScriptPercentScaleDown
    -- ^ /No description available in the introspection data./
    | OtMathConstantTScriptScriptPercentScaleDown
    -- ^ /No description available in the introspection data./
    | OtMathConstantTDelimitedSubFormulaMinHeight
    -- ^ /No description available in the introspection data./
    | OtMathConstantTDisplayOperatorMinHeight
    -- ^ /No description available in the introspection data./
    | OtMathConstantTMathLeading
    -- ^ /No description available in the introspection data./
    | OtMathConstantTAxisHeight
    -- ^ /No description available in the introspection data./
    | OtMathConstantTAccentBaseHeight
    -- ^ /No description available in the introspection data./
    | OtMathConstantTFlattenedAccentBaseHeight
    -- ^ /No description available in the introspection data./
    | OtMathConstantTSubscriptShiftDown
    -- ^ /No description available in the introspection data./
    | OtMathConstantTSubscriptTopMax
    -- ^ /No description available in the introspection data./
    | OtMathConstantTSubscriptBaselineDropMin
    -- ^ /No description available in the introspection data./
    | OtMathConstantTSuperscriptShiftUp
    -- ^ /No description available in the introspection data./
    | OtMathConstantTSuperscriptShiftUpCramped
    -- ^ /No description available in the introspection data./
    | OtMathConstantTSuperscriptBottomMin
    -- ^ /No description available in the introspection data./
    | OtMathConstantTSuperscriptBaselineDropMax
    -- ^ /No description available in the introspection data./
    | OtMathConstantTSubSuperscriptGapMin
    -- ^ /No description available in the introspection data./
    | OtMathConstantTSuperscriptBottomMaxWithSubscript
    -- ^ /No description available in the introspection data./
    | OtMathConstantTSpaceAfterScript
    -- ^ /No description available in the introspection data./
    | OtMathConstantTUpperLimitGapMin
    -- ^ /No description available in the introspection data./
    | OtMathConstantTUpperLimitBaselineRiseMin
    -- ^ /No description available in the introspection data./
    | OtMathConstantTLowerLimitGapMin
    -- ^ /No description available in the introspection data./
    | OtMathConstantTLowerLimitBaselineDropMin
    -- ^ /No description available in the introspection data./
    | OtMathConstantTStackTopShiftUp
    -- ^ /No description available in the introspection data./
    | OtMathConstantTStackTopDisplayStyleShiftUp
    -- ^ /No description available in the introspection data./
    | OtMathConstantTStackBottomShiftDown
    -- ^ /No description available in the introspection data./
    | OtMathConstantTStackBottomDisplayStyleShiftDown
    -- ^ /No description available in the introspection data./
    | OtMathConstantTStackGapMin
    -- ^ /No description available in the introspection data./
    | OtMathConstantTStackDisplayStyleGapMin
    -- ^ /No description available in the introspection data./
    | OtMathConstantTStretchStackTopShiftUp
    -- ^ /No description available in the introspection data./
    | OtMathConstantTStretchStackBottomShiftDown
    -- ^ /No description available in the introspection data./
    | OtMathConstantTStretchStackGapAboveMin
    -- ^ /No description available in the introspection data./
    | OtMathConstantTStretchStackGapBelowMin
    -- ^ /No description available in the introspection data./
    | OtMathConstantTFractionNumeratorShiftUp
    -- ^ /No description available in the introspection data./
    | OtMathConstantTFractionNumeratorDisplayStyleShiftUp
    -- ^ /No description available in the introspection data./
    | OtMathConstantTFractionDenominatorShiftDown
    -- ^ /No description available in the introspection data./
    | OtMathConstantTFractionDenominatorDisplayStyleShiftDown
    -- ^ /No description available in the introspection data./
    | OtMathConstantTFractionNumeratorGapMin
    -- ^ /No description available in the introspection data./
    | OtMathConstantTFractionNumDisplayStyleGapMin
    -- ^ /No description available in the introspection data./
    | OtMathConstantTFractionRuleThickness
    -- ^ /No description available in the introspection data./
    | OtMathConstantTFractionDenominatorGapMin
    -- ^ /No description available in the introspection data./
    | OtMathConstantTFractionDenomDisplayStyleGapMin
    -- ^ /No description available in the introspection data./
    | OtMathConstantTSkewedFractionHorizontalGap
    -- ^ /No description available in the introspection data./
    | OtMathConstantTSkewedFractionVerticalGap
    -- ^ /No description available in the introspection data./
    | OtMathConstantTOverbarVerticalGap
    -- ^ /No description available in the introspection data./
    | OtMathConstantTOverbarRuleThickness
    -- ^ /No description available in the introspection data./
    | OtMathConstantTOverbarExtraAscender
    -- ^ /No description available in the introspection data./
    | OtMathConstantTUnderbarVerticalGap
    -- ^ /No description available in the introspection data./
    | OtMathConstantTUnderbarRuleThickness
    -- ^ /No description available in the introspection data./
    | OtMathConstantTUnderbarExtraDescender
    -- ^ /No description available in the introspection data./
    | OtMathConstantTRadicalVerticalGap
    -- ^ /No description available in the introspection data./
    | OtMathConstantTRadicalDisplayStyleVerticalGap
    -- ^ /No description available in the introspection data./
    | OtMathConstantTRadicalRuleThickness
    -- ^ /No description available in the introspection data./
    | OtMathConstantTRadicalExtraAscender
    -- ^ /No description available in the introspection data./
    | OtMathConstantTRadicalKernBeforeDegree
    -- ^ /No description available in the introspection data./
    | OtMathConstantTRadicalKernAfterDegree
    -- ^ /No description available in the introspection data./
    | OtMathConstantTRadicalDegreeBottomRaisePercent
    -- ^ /No description available in the introspection data./
    | 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
showList :: [OtMathConstantT] -> ShowS
$cshowList :: [OtMathConstantT] -> ShowS
show :: OtMathConstantT -> String
$cshow :: OtMathConstantT -> String
showsPrec :: Int -> OtMathConstantT -> ShowS
$cshowsPrec :: Int -> OtMathConstantT -> ShowS
Show, OtMathConstantT -> OtMathConstantT -> Bool
(OtMathConstantT -> OtMathConstantT -> Bool)
-> (OtMathConstantT -> OtMathConstantT -> Bool)
-> Eq OtMathConstantT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OtMathConstantT -> OtMathConstantT -> Bool
$c/= :: OtMathConstantT -> OtMathConstantT -> Bool
== :: OtMathConstantT -> OtMathConstantT -> Bool
$c== :: OtMathConstantT -> OtMathConstantT -> Bool
Eq)

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

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

instance P.Ord OtMathConstantT where
    compare :: OtMathConstantT -> OtMathConstantT -> Ordering
compare a :: OtMathConstantT
a b :: 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
showList :: [OtLayoutGlyphClassT] -> ShowS
$cshowList :: [OtLayoutGlyphClassT] -> ShowS
show :: OtLayoutGlyphClassT -> String
$cshow :: OtLayoutGlyphClassT -> String
showsPrec :: Int -> OtLayoutGlyphClassT -> ShowS
$cshowsPrec :: Int -> OtLayoutGlyphClassT -> ShowS
Show, OtLayoutGlyphClassT -> OtLayoutGlyphClassT -> Bool
(OtLayoutGlyphClassT -> OtLayoutGlyphClassT -> Bool)
-> (OtLayoutGlyphClassT -> OtLayoutGlyphClassT -> Bool)
-> Eq OtLayoutGlyphClassT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OtLayoutGlyphClassT -> OtLayoutGlyphClassT -> Bool
$c/= :: OtLayoutGlyphClassT -> OtLayoutGlyphClassT -> Bool
== :: OtLayoutGlyphClassT -> OtLayoutGlyphClassT -> Bool
$c== :: OtLayoutGlyphClassT -> OtLayoutGlyphClassT -> Bool
Eq)

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

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

instance P.Ord OtLayoutGlyphClassT where
    compare :: OtLayoutGlyphClassT -> OtLayoutGlyphClassT -> Ordering
compare a :: OtLayoutGlyphClassT
a b :: 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
-- 
-- /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.
    | 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,
    -- 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
showList :: [OtLayoutBaselineTagT] -> ShowS
$cshowList :: [OtLayoutBaselineTagT] -> ShowS
show :: OtLayoutBaselineTagT -> String
$cshow :: OtLayoutBaselineTagT -> String
showsPrec :: Int -> OtLayoutBaselineTagT -> ShowS
$cshowsPrec :: Int -> OtLayoutBaselineTagT -> ShowS
Show, OtLayoutBaselineTagT -> OtLayoutBaselineTagT -> Bool
(OtLayoutBaselineTagT -> OtLayoutBaselineTagT -> Bool)
-> (OtLayoutBaselineTagT -> OtLayoutBaselineTagT -> Bool)
-> Eq OtLayoutBaselineTagT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OtLayoutBaselineTagT -> OtLayoutBaselineTagT -> Bool
$c/= :: OtLayoutBaselineTagT -> OtLayoutBaselineTagT -> Bool
== :: OtLayoutBaselineTagT -> OtLayoutBaselineTagT -> Bool
$c== :: OtLayoutBaselineTagT -> OtLayoutBaselineTagT -> Bool
Eq)

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

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

instance P.Ord OtLayoutBaselineTagT where
    compare :: OtLayoutBaselineTagT -> OtLayoutBaselineTagT -> Ordering
compare a :: OtLayoutBaselineTagT
a b :: 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
-- | /@hBMEMORYMODEDUPLICATE@/
-- /@hBMEMORYMODEREADONLY@/
-- /@hBMEMORYMODEWRITABLE@/
-- /@hBMEMORYMODEREADONLYMAYMAKEWRITABLE@/
-- 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
-- /@hBMEMORYREADONLYMAYMAKEWRITABLE@/, however, using that mode
-- correctly is very tricky.  Use /@hBMEMORYMODEREADONLY@/ instead.
data MemoryModeT = 
      MemoryModeTDuplicate
    -- ^ /No description available in the introspection data./
    | MemoryModeTReadonly
    -- ^ /No description available in the introspection data./
    | MemoryModeTWritable
    -- ^ /No description available in the introspection data./
    | MemoryModeTReadonlyMayMakeWritable
    -- ^ /No description available in the introspection data./
    | 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
showList :: [MemoryModeT] -> ShowS
$cshowList :: [MemoryModeT] -> ShowS
show :: MemoryModeT -> String
$cshow :: MemoryModeT -> String
showsPrec :: Int -> MemoryModeT -> ShowS
$cshowsPrec :: Int -> MemoryModeT -> ShowS
Show, MemoryModeT -> MemoryModeT -> Bool
(MemoryModeT -> MemoryModeT -> Bool)
-> (MemoryModeT -> MemoryModeT -> Bool) -> Eq MemoryModeT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MemoryModeT -> MemoryModeT -> Bool
$c/= :: MemoryModeT -> MemoryModeT -> Bool
== :: MemoryModeT -> MemoryModeT -> Bool
$c== :: MemoryModeT -> MemoryModeT -> Bool
Eq)

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

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

instance P.Ord MemoryModeT where
    compare :: MemoryModeT -> MemoryModeT -> Ordering
compare a :: MemoryModeT
a b :: 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
showList :: [DirectionT] -> ShowS
$cshowList :: [DirectionT] -> ShowS
show :: DirectionT -> String
$cshow :: DirectionT -> String
showsPrec :: Int -> DirectionT -> ShowS
$cshowsPrec :: Int -> DirectionT -> ShowS
Show, DirectionT -> DirectionT -> Bool
(DirectionT -> DirectionT -> Bool)
-> (DirectionT -> DirectionT -> Bool) -> Eq DirectionT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DirectionT -> DirectionT -> Bool
$c/= :: DirectionT -> DirectionT -> Bool
== :: DirectionT -> DirectionT -> Bool
$c== :: DirectionT -> DirectionT -> Bool
Eq)

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

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

instance P.Ord DirectionT where
    compare :: DirectionT -> DirectionT -> Ordering
compare a :: DirectionT
a b :: 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
showList :: [BufferSerializeFormatT] -> ShowS
$cshowList :: [BufferSerializeFormatT] -> ShowS
show :: BufferSerializeFormatT -> String
$cshow :: BufferSerializeFormatT -> String
showsPrec :: Int -> BufferSerializeFormatT -> ShowS
$cshowsPrec :: Int -> BufferSerializeFormatT -> ShowS
Show, BufferSerializeFormatT -> BufferSerializeFormatT -> Bool
(BufferSerializeFormatT -> BufferSerializeFormatT -> Bool)
-> (BufferSerializeFormatT -> BufferSerializeFormatT -> Bool)
-> Eq BufferSerializeFormatT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BufferSerializeFormatT -> BufferSerializeFormatT -> Bool
$c/= :: BufferSerializeFormatT -> BufferSerializeFormatT -> Bool
== :: BufferSerializeFormatT -> BufferSerializeFormatT -> Bool
$c== :: BufferSerializeFormatT -> BufferSerializeFormatT -> Bool
Eq)

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

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

instance P.Ord BufferSerializeFormatT where
    compare :: BufferSerializeFormatT -> BufferSerializeFormatT -> Ordering
compare a :: BufferSerializeFormatT
a b :: 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
-- | /No description available in the introspection data./
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
showList :: [BufferContentTypeT] -> ShowS
$cshowList :: [BufferContentTypeT] -> ShowS
show :: BufferContentTypeT -> String
$cshow :: BufferContentTypeT -> String
showsPrec :: Int -> BufferContentTypeT -> ShowS
$cshowsPrec :: Int -> BufferContentTypeT -> ShowS
Show, BufferContentTypeT -> BufferContentTypeT -> Bool
(BufferContentTypeT -> BufferContentTypeT -> Bool)
-> (BufferContentTypeT -> BufferContentTypeT -> Bool)
-> Eq BufferContentTypeT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BufferContentTypeT -> BufferContentTypeT -> Bool
$c/= :: BufferContentTypeT -> BufferContentTypeT -> Bool
== :: BufferContentTypeT -> BufferContentTypeT -> Bool
$c== :: BufferContentTypeT -> BufferContentTypeT -> Bool
Eq)

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

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

instance P.Ord BufferContentTypeT where
    compare :: BufferContentTypeT -> BufferContentTypeT -> Ordering
compare a :: BufferContentTypeT
a b :: 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
showList :: [BufferClusterLevelT] -> ShowS
$cshowList :: [BufferClusterLevelT] -> ShowS
show :: BufferClusterLevelT -> String
$cshow :: BufferClusterLevelT -> String
showsPrec :: Int -> BufferClusterLevelT -> ShowS
$cshowsPrec :: Int -> BufferClusterLevelT -> ShowS
Show, BufferClusterLevelT -> BufferClusterLevelT -> Bool
(BufferClusterLevelT -> BufferClusterLevelT -> Bool)
-> (BufferClusterLevelT -> BufferClusterLevelT -> Bool)
-> Eq BufferClusterLevelT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BufferClusterLevelT -> BufferClusterLevelT -> Bool
$c/= :: BufferClusterLevelT -> BufferClusterLevelT -> Bool
== :: BufferClusterLevelT -> BufferClusterLevelT -> Bool
$c== :: BufferClusterLevelT -> BufferClusterLevelT -> Bool
Eq)

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

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

instance P.Ord BufferClusterLevelT where
    compare :: BufferClusterLevelT -> BufferClusterLevelT -> Ordering
compare a :: BufferClusterLevelT
a b :: 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.
-- 
-- /Since: 2.2.0/
data AatLayoutFeatureTypeT = 
      AatLayoutFeatureTypeTInvalid
    -- ^ Initial, unset feature type
    | AatLayoutFeatureTypeTAllTypographic
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTLigatures
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTCurisveConnection
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTLetterCase
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTVerticalSubstitution
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTLinguisticRearrangement
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTNumberSpacing
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTSmartSwashType
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTDiacriticsType
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTVerticalPosition
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTFractions
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTOverlappingCharactersType
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTTypographicExtras
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTMathematicalExtras
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTOrnamentSetsType
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTCharacterAlternatives
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTDesignComplexityType
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTStyleOptions
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTCharacterShape
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTNumberCase
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTTextSpacing
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTTransliteration
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTAnnotationType
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTKanaSpacingType
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTIdeographicSpacingType
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTUnicodeDecompositionType
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTRubyKana
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTCjkSymbolAlternativesType
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTIdeographicAlternativesType
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTCjkVerticalRomanPlacementType
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTItalicCjkRoman
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTCaseSensitiveLayout
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTAlternateKana
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTStylisticAlternatives
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTContextualAlternatives
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTLowerCase
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTUpperCase
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTLanguageTagType
    -- ^ /No description available in the introspection data./
    | AatLayoutFeatureTypeTCjkRomanSpacingType
    -- ^ /No description available in the introspection data./
    | 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
showList :: [AatLayoutFeatureTypeT] -> ShowS
$cshowList :: [AatLayoutFeatureTypeT] -> ShowS
show :: AatLayoutFeatureTypeT -> String
$cshow :: AatLayoutFeatureTypeT -> String
showsPrec :: Int -> AatLayoutFeatureTypeT -> ShowS
$cshowsPrec :: Int -> AatLayoutFeatureTypeT -> ShowS
Show, AatLayoutFeatureTypeT -> AatLayoutFeatureTypeT -> Bool
(AatLayoutFeatureTypeT -> AatLayoutFeatureTypeT -> Bool)
-> (AatLayoutFeatureTypeT -> AatLayoutFeatureTypeT -> Bool)
-> Eq AatLayoutFeatureTypeT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AatLayoutFeatureTypeT -> AatLayoutFeatureTypeT -> Bool
$c/= :: AatLayoutFeatureTypeT -> AatLayoutFeatureTypeT -> Bool
== :: AatLayoutFeatureTypeT -> AatLayoutFeatureTypeT -> Bool
$c== :: AatLayoutFeatureTypeT -> AatLayoutFeatureTypeT -> Bool
Eq)

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

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

instance P.Ord AatLayoutFeatureTypeT where
    compare :: AatLayoutFeatureTypeT -> AatLayoutFeatureTypeT -> Ordering
compare a :: AatLayoutFeatureTypeT
a b :: 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
showList :: [AatLayoutFeatureSelectorT] -> ShowS
$cshowList :: [AatLayoutFeatureSelectorT] -> ShowS
show :: AatLayoutFeatureSelectorT -> String
$cshow :: AatLayoutFeatureSelectorT -> String
showsPrec :: Int -> AatLayoutFeatureSelectorT -> ShowS
$cshowsPrec :: Int -> AatLayoutFeatureSelectorT -> ShowS
Show, AatLayoutFeatureSelectorT -> AatLayoutFeatureSelectorT -> Bool
(AatLayoutFeatureSelectorT -> AatLayoutFeatureSelectorT -> Bool)
-> (AatLayoutFeatureSelectorT -> AatLayoutFeatureSelectorT -> Bool)
-> Eq AatLayoutFeatureSelectorT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AatLayoutFeatureSelectorT -> AatLayoutFeatureSelectorT -> Bool
$c/= :: AatLayoutFeatureSelectorT -> AatLayoutFeatureSelectorT -> Bool
== :: AatLayoutFeatureSelectorT -> AatLayoutFeatureSelectorT -> Bool
$c== :: AatLayoutFeatureSelectorT -> AatLayoutFeatureSelectorT -> Bool
Eq)

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

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

instance P.Ord AatLayoutFeatureSelectorT where
    compare :: AatLayoutFeatureSelectorT -> AatLayoutFeatureSelectorT -> Ordering
compare a :: AatLayoutFeatureSelectorT
a b :: 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