-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | HarfBuzz bindings
--   
--   Bindings for HarfBuzz, autogenerated by haskell-gi.
@package gi-harfbuzz
@version 0.0.10

-- | Build time configuration used during code generation.
module GI.HarfBuzz.Config

-- | Overrides used when generating these bindings.
overrides :: Text

module GI.HarfBuzz.Constants

-- | No description available in the introspection data.
pattern VERSION_STRING :: Text

-- | No description available in the introspection data.
pattern VERSION_MINOR :: Int32

-- | No description available in the introspection data.
pattern VERSION_MICRO :: Int32

-- | No description available in the introspection data.
pattern VERSION_MAJOR :: Int32

-- | See Unicode 6.1 for details on the maximum decomposition length.

-- | Deprecated: (Since version 2.0.0)
pattern UNICODE_MAX_DECOMPOSITION_LEN :: Int32

-- | Maximum valid Unicode code point.
--   
--   Since: 1.9.0
pattern UNICODE_MAX :: Int32

-- | 
--   
- Tibetan
--   

-- | Deprecated: (Since version 7.2.0)
pattern UNICODE_COMBINING_CLASS_CCC133 :: Int32

-- | Do not use.
--   
--   Since: 1.4.2

-- | Deprecated: (Since version 2.2.0)
pattern OT_VAR_NO_AXIS_INDEX :: Int32

-- | Maximum number of OpenType tags that can correspond to a give
--   ScriptT.
--   
--   Since: 2.0.0
pattern OT_MAX_TAGS_PER_SCRIPT :: Int32

-- | Maximum number of OpenType tags that can correspond to a give
--   LanguageT.
--   
--   Since: 2.0.0
pattern OT_MAX_TAGS_PER_LANGUAGE :: Int32

-- | Special value for variations index indicating unsupported variation.
pattern OT_LAYOUT_NO_VARIATIONS_INDEX :: Int32

-- | Special value for script index indicating unsupported script.
pattern OT_LAYOUT_NO_SCRIPT_INDEX :: Int32

-- | Special value for feature index indicating unsupported feature.
pattern OT_LAYOUT_NO_FEATURE_INDEX :: Int32

-- | Special value for language index indicating default or unsupported
--   language.
pattern OT_LAYOUT_DEFAULT_LANGUAGE_INDEX :: Int32

-- | Constant signifying that a font does not have any named-instance index
--   set. This is the default of a font.
--   
--   Since: 7.0.0
pattern FONT_NO_VAR_NAMED_INSTANCE :: Int32

-- | Special setting for FeatureT.start to apply the
--   feature from the start of the buffer.
--   
--   Since: 2.0.0
pattern FEATURE_GLOBAL_START :: Int32

-- | Unused hb_codepoint_t value.
--   
--   Since: 8.0.0
pattern CODEPOINT_INVALID :: Word32

-- | The default code point for replacing invalid characters in a given
--   encoding. Set to U+FFFD REPLACEMENT CHARACTER.
--   
--   Since: 0.9.31
pattern BUFFER_REPLACEMENT_CODEPOINT_DEFAULT :: Int32

-- | Used when getting or setting AAT feature selectors. Indicates that
--   there is no selector index corresponding to the selector of interest.
pattern AAT_LAYOUT_NO_SELECTOR_INDEX :: Int32

module GI.HarfBuzz.Enums

-- | The selectors defined for specifying AAT feature settings.
--   
--   Since: 2.2.0
data AatLayoutFeatureSelectorT

-- | Initial, unset feature selector
AatLayoutFeatureSelectorTInvalid :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC
AatLayoutFeatureSelectorTAllTypeFeaturesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC
AatLayoutFeatureSelectorTAllTypeFeaturesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTRequiredLigaturesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTRequiredLigaturesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTCommonLigaturesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTCommonLigaturesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTRareLigaturesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTRareLigaturesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTLogosOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTLogosOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTRebusPicturesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTRebusPicturesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTDiphthongLigaturesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTDiphthongLigaturesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTSquaredLigaturesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTSquaredLigaturesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTAbbrevSquaredLigaturesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTAbbrevSquaredLigaturesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTSymbolLigaturesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTSymbolLigaturesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTContextualLigaturesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTContextualLigaturesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTHistoricalLigaturesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTHistoricalLigaturesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTUnconnected :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTPartiallyConnected :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
AatLayoutFeatureSelectorTCursive :: AatLayoutFeatureSelectorT

-- | Deprecated
AatLayoutFeatureSelectorTUpperAndLowerCase :: AatLayoutFeatureSelectorT

-- | Deprecated
AatLayoutFeatureSelectorTAllCaps :: AatLayoutFeatureSelectorT

-- | Deprecated
AatLayoutFeatureSelectorTAllLowerCase :: AatLayoutFeatureSelectorT

-- | Deprecated
AatLayoutFeatureSelectorTSmallCaps :: AatLayoutFeatureSelectorT

-- | Deprecated
AatLayoutFeatureSelectorTInitialCaps :: AatLayoutFeatureSelectorT

-- | Deprecated
AatLayoutFeatureSelectorTInitialCapsAndSmallCaps :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION
AatLayoutFeatureSelectorTSubstituteVerticalFormsOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION
AatLayoutFeatureSelectorTSubstituteVerticalFormsOff :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT
AatLayoutFeatureSelectorTLinguisticRearrangementOn :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT
AatLayoutFeatureSelectorTLinguisticRearrangementOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING
AatLayoutFeatureSelectorTMonospacedNumbers :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING
AatLayoutFeatureSelectorTProportionalNumbers :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING
AatLayoutFeatureSelectorTThirdWidthNumbers :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING
AatLayoutFeatureSelectorTQuarterWidthNumbers :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
AatLayoutFeatureSelectorTWordInitialSwashesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
AatLayoutFeatureSelectorTWordInitialSwashesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
AatLayoutFeatureSelectorTWordFinalSwashesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
AatLayoutFeatureSelectorTWordFinalSwashesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
AatLayoutFeatureSelectorTLineInitialSwashesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
AatLayoutFeatureSelectorTLineInitialSwashesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
AatLayoutFeatureSelectorTLineFinalSwashesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
AatLayoutFeatureSelectorTLineFinalSwashesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
AatLayoutFeatureSelectorTNonFinalSwashesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
AatLayoutFeatureSelectorTNonFinalSwashesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE
AatLayoutFeatureSelectorTShowDiacritics :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE
AatLayoutFeatureSelectorTHideDiacritics :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE
AatLayoutFeatureSelectorTDecomposeDiacritics :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION
AatLayoutFeatureSelectorTNormalPosition :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION
AatLayoutFeatureSelectorTSuperiors :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION
AatLayoutFeatureSelectorTInferiors :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION
AatLayoutFeatureSelectorTOrdinals :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION
AatLayoutFeatureSelectorTScientificInferiors :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS
AatLayoutFeatureSelectorTNoFractions :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS
AatLayoutFeatureSelectorTVerticalFractions :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS
AatLayoutFeatureSelectorTDiagonalFractions :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE
AatLayoutFeatureSelectorTPreventOverlapOn :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE
AatLayoutFeatureSelectorTPreventOverlapOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
AatLayoutFeatureSelectorTHyphensToEmDashOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
AatLayoutFeatureSelectorTHyphensToEmDashOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
AatLayoutFeatureSelectorTHyphenToEnDashOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
AatLayoutFeatureSelectorTHyphenToEnDashOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
AatLayoutFeatureSelectorTSlashedZeroOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
AatLayoutFeatureSelectorTSlashedZeroOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
AatLayoutFeatureSelectorTFormInterrobangOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
AatLayoutFeatureSelectorTFormInterrobangOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
AatLayoutFeatureSelectorTSmartQuotesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
AatLayoutFeatureSelectorTSmartQuotesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
AatLayoutFeatureSelectorTPeriodsToEllipsisOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
AatLayoutFeatureSelectorTPeriodsToEllipsisOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
AatLayoutFeatureSelectorTHyphenToMinusOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
AatLayoutFeatureSelectorTHyphenToMinusOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
AatLayoutFeatureSelectorTAsteriskToMultiplyOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
AatLayoutFeatureSelectorTAsteriskToMultiplyOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
AatLayoutFeatureSelectorTSlashToDivideOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
AatLayoutFeatureSelectorTSlashToDivideOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
AatLayoutFeatureSelectorTInequalityLigaturesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
AatLayoutFeatureSelectorTInequalityLigaturesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
AatLayoutFeatureSelectorTExponentsOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
AatLayoutFeatureSelectorTExponentsOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
AatLayoutFeatureSelectorTMathematicalGreekOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
AatLayoutFeatureSelectorTMathematicalGreekOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
AatLayoutFeatureSelectorTNoOrnaments :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
AatLayoutFeatureSelectorTDingbats :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
AatLayoutFeatureSelectorTPiCharacters :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
AatLayoutFeatureSelectorTFleurons :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
AatLayoutFeatureSelectorTDecorativeBorders :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
AatLayoutFeatureSelectorTInternationalSymbols :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
AatLayoutFeatureSelectorTMathSymbols :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_ALTERNATIVES
AatLayoutFeatureSelectorTNoAlternates :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE
AatLayoutFeatureSelectorTDesignLevel1 :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE
AatLayoutFeatureSelectorTDesignLevel2 :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE
AatLayoutFeatureSelectorTDesignLevel3 :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE
AatLayoutFeatureSelectorTDesignLevel4 :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE
AatLayoutFeatureSelectorTDesignLevel5 :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
AatLayoutFeatureSelectorTNoStyleOptions :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
AatLayoutFeatureSelectorTDisplayText :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
AatLayoutFeatureSelectorTEngravedText :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
AatLayoutFeatureSelectorTIlluminatedCaps :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
AatLayoutFeatureSelectorTTitlingCaps :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
AatLayoutFeatureSelectorTTallCaps :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
AatLayoutFeatureSelectorTTraditionalCharacters :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
AatLayoutFeatureSelectorTSimplifiedCharacters :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
AatLayoutFeatureSelectorTJis1978Characters :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
AatLayoutFeatureSelectorTJis1983Characters :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
AatLayoutFeatureSelectorTJis1990Characters :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
AatLayoutFeatureSelectorTTraditionalAltOne :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
AatLayoutFeatureSelectorTTraditionalAltTwo :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
AatLayoutFeatureSelectorTTraditionalAltThree :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
AatLayoutFeatureSelectorTTraditionalAltFour :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
AatLayoutFeatureSelectorTTraditionalAltFive :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
AatLayoutFeatureSelectorTExpertCharacters :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
AatLayoutFeatureSelectorTJis2004Characters :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
AatLayoutFeatureSelectorTHojoCharacters :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
AatLayoutFeatureSelectorTNlccharacters :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
AatLayoutFeatureSelectorTTraditionalNamesCharacters :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE
AatLayoutFeatureSelectorTLowerCaseNumbers :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE
AatLayoutFeatureSelectorTUpperCaseNumbers :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
AatLayoutFeatureSelectorTProportionalText :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
AatLayoutFeatureSelectorTMonospacedText :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
AatLayoutFeatureSelectorTHalfWidthText :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
AatLayoutFeatureSelectorTThirdWidthText :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
AatLayoutFeatureSelectorTQuarterWidthText :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
AatLayoutFeatureSelectorTAltProportionalText :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
AatLayoutFeatureSelectorTAltHalfWidthText :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
AatLayoutFeatureSelectorTNoTransliteration :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
AatLayoutFeatureSelectorTHanjaToHangul :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
AatLayoutFeatureSelectorTHiraganaToKatakana :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
AatLayoutFeatureSelectorTKatakanaToHiragana :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
AatLayoutFeatureSelectorTKanaToRomanization :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
AatLayoutFeatureSelectorTRomanizationToHiragana :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
AatLayoutFeatureSelectorTRomanizationToKatakana :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
AatLayoutFeatureSelectorTHanjaToHangulAltOne :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
AatLayoutFeatureSelectorTHanjaToHangulAltTwo :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
AatLayoutFeatureSelectorTHanjaToHangulAltThree :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
AatLayoutFeatureSelectorTNoAnnotation :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
AatLayoutFeatureSelectorTBoxAnnotation :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
AatLayoutFeatureSelectorTRoundedBoxAnnotation :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
AatLayoutFeatureSelectorTCircleAnnotation :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
AatLayoutFeatureSelectorTInvertedCircleAnnotation :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
AatLayoutFeatureSelectorTParenthesisAnnotation :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
AatLayoutFeatureSelectorTPeriodAnnotation :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
AatLayoutFeatureSelectorTRomanNumeralAnnotation :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
AatLayoutFeatureSelectorTDiamondAnnotation :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
AatLayoutFeatureSelectorTInvertedBoxAnnotation :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
AatLayoutFeatureSelectorTInvertedRoundedBoxAnnotation :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE
AatLayoutFeatureSelectorTFullWidthKana :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE
AatLayoutFeatureSelectorTProportionalKana :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE
AatLayoutFeatureSelectorTFullWidthIdeographs :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE
AatLayoutFeatureSelectorTProportionalIdeographs :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE
AatLayoutFeatureSelectorTHalfWidthIdeographs :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
AatLayoutFeatureSelectorTCanonicalCompositionOn :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
AatLayoutFeatureSelectorTCanonicalCompositionOff :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
AatLayoutFeatureSelectorTCompatibilityCompositionOn :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
AatLayoutFeatureSelectorTCompatibilityCompositionOff :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
AatLayoutFeatureSelectorTTranscodingCompositionOn :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
AatLayoutFeatureSelectorTTranscodingCompositionOff :: AatLayoutFeatureSelectorT

-- | Deprecated; use
--   HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_OFF instead
AatLayoutFeatureSelectorTNoRubyKana :: AatLayoutFeatureSelectorT

-- | Deprecated; use
--   HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_ON instead
AatLayoutFeatureSelectorTRubyKana :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA
AatLayoutFeatureSelectorTRubyKanaOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA
AatLayoutFeatureSelectorTRubyKanaOff :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
AatLayoutFeatureSelectorTNoCjkSymbolAlternatives :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
AatLayoutFeatureSelectorTCjkSymbolAltOne :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
AatLayoutFeatureSelectorTCjkSymbolAltTwo :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
AatLayoutFeatureSelectorTCjkSymbolAltThree :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
AatLayoutFeatureSelectorTCjkSymbolAltFour :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
AatLayoutFeatureSelectorTCjkSymbolAltFive :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
AatLayoutFeatureSelectorTNoIdeographicAlternatives :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
AatLayoutFeatureSelectorTIdeographicAltOne :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
AatLayoutFeatureSelectorTIdeographicAltTwo :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
AatLayoutFeatureSelectorTIdeographicAltThree :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
AatLayoutFeatureSelectorTIdeographicAltFour :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
AatLayoutFeatureSelectorTIdeographicAltFive :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE
AatLayoutFeatureSelectorTCjkVerticalRomanCentered :: AatLayoutFeatureSelectorT

-- | for
--   HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE
AatLayoutFeatureSelectorTCjkVerticalRomanHbaseline :: AatLayoutFeatureSelectorT

-- | Deprecated; use
--   HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_OFF
--   instead
AatLayoutFeatureSelectorTNoCjkItalicRoman :: AatLayoutFeatureSelectorT

-- | Deprecated; use
--   HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_ON
--   instead
AatLayoutFeatureSelectorTCjkItalicRoman :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN
AatLayoutFeatureSelectorTCjkItalicRomanOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN
AatLayoutFeatureSelectorTCjkItalicRomanOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT
AatLayoutFeatureSelectorTCaseSensitiveLayoutOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT
AatLayoutFeatureSelectorTCaseSensitiveLayoutOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT
AatLayoutFeatureSelectorTCaseSensitiveSpacingOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT
AatLayoutFeatureSelectorTCaseSensitiveSpacingOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA
AatLayoutFeatureSelectorTAlternateHorizKanaOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA
AatLayoutFeatureSelectorTAlternateHorizKanaOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA
AatLayoutFeatureSelectorTAlternateVertKanaOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA
AatLayoutFeatureSelectorTAlternateVertKanaOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTNoStylisticAlternates :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltOneOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltOneOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltTwoOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltTwoOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltThreeOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltThreeOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltFourOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltFourOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltFiveOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltFiveOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltSixOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltSixOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltSevenOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltSevenOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltEightOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltEightOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltNineOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltNineOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltTenOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltTenOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltElevenOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltElevenOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltTwelveOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltTwelveOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltThirteenOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltThirteenOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltFourteenOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltFourteenOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltFifteenOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltFifteenOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltSixteenOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltSixteenOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltSeventeenOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltSeventeenOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltEighteenOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltEighteenOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltNineteenOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltNineteenOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltTwentyOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
AatLayoutFeatureSelectorTStylisticAltTwentyOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
AatLayoutFeatureSelectorTContextualAlternatesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
AatLayoutFeatureSelectorTContextualAlternatesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
AatLayoutFeatureSelectorTSwashAlternatesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
AatLayoutFeatureSelectorTSwashAlternatesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
AatLayoutFeatureSelectorTContextualSwashAlternatesOn :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
AatLayoutFeatureSelectorTContextualSwashAlternatesOff :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE
AatLayoutFeatureSelectorTDefaultLowerCase :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE
AatLayoutFeatureSelectorTLowerCaseSmallCaps :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE
AatLayoutFeatureSelectorTLowerCasePetiteCaps :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE
AatLayoutFeatureSelectorTDefaultUpperCase :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE
AatLayoutFeatureSelectorTUpperCaseSmallCaps :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE
AatLayoutFeatureSelectorTUpperCasePetiteCaps :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE
AatLayoutFeatureSelectorTHalfWidthCjkRoman :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE
AatLayoutFeatureSelectorTProportionalCjkRoman :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE
AatLayoutFeatureSelectorTDefaultCjkRoman :: AatLayoutFeatureSelectorT

-- | for HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE
AatLayoutFeatureSelectorTFullWidthCjkRoman :: AatLayoutFeatureSelectorT

-- | Catch-all for unknown values
AnotherAatLayoutFeatureSelectorT :: Int -> AatLayoutFeatureSelectorT

-- | The possible feature types defined for AAT shaping, from Apple Font
--   Feature Registry.
--   
--   Since: 2.2.0
data AatLayoutFeatureTypeT

-- | Initial, unset feature type
AatLayoutFeatureTypeTInvalid :: AatLayoutFeatureTypeT

-- | All Typographic Features
AatLayoutFeatureTypeTAllTypographic :: AatLayoutFeatureTypeT

-- | Ligatures
AatLayoutFeatureTypeTLigatures :: AatLayoutFeatureTypeT

-- | Cursive Connection
AatLayoutFeatureTypeTCursiveConnection :: AatLayoutFeatureTypeT

-- | Letter Case
AatLayoutFeatureTypeTLetterCase :: AatLayoutFeatureTypeT

-- | Vertical Substitution
AatLayoutFeatureTypeTVerticalSubstitution :: AatLayoutFeatureTypeT

-- | Linguistic Rearrangement
AatLayoutFeatureTypeTLinguisticRearrangement :: AatLayoutFeatureTypeT

-- | Number Spacing
AatLayoutFeatureTypeTNumberSpacing :: AatLayoutFeatureTypeT

-- | Smart Swash
AatLayoutFeatureTypeTSmartSwashType :: AatLayoutFeatureTypeT

-- | Diacritics
AatLayoutFeatureTypeTDiacriticsType :: AatLayoutFeatureTypeT

-- | Vertical Position
AatLayoutFeatureTypeTVerticalPosition :: AatLayoutFeatureTypeT

-- | Fractions
AatLayoutFeatureTypeTFractions :: AatLayoutFeatureTypeT

-- | Overlapping Characters
AatLayoutFeatureTypeTOverlappingCharactersType :: AatLayoutFeatureTypeT

-- | Typographic Extras
AatLayoutFeatureTypeTTypographicExtras :: AatLayoutFeatureTypeT

-- | Mathematical Extras
AatLayoutFeatureTypeTMathematicalExtras :: AatLayoutFeatureTypeT

-- | Ornament Sets
AatLayoutFeatureTypeTOrnamentSetsType :: AatLayoutFeatureTypeT

-- | Character Alternatives
AatLayoutFeatureTypeTCharacterAlternatives :: AatLayoutFeatureTypeT

-- | Design Complexity
AatLayoutFeatureTypeTDesignComplexityType :: AatLayoutFeatureTypeT

-- | Style Options
AatLayoutFeatureTypeTStyleOptions :: AatLayoutFeatureTypeT

-- | Character Shape
AatLayoutFeatureTypeTCharacterShape :: AatLayoutFeatureTypeT

-- | Number Case
AatLayoutFeatureTypeTNumberCase :: AatLayoutFeatureTypeT

-- | Text Spacing
AatLayoutFeatureTypeTTextSpacing :: AatLayoutFeatureTypeT

-- | Transliteration
AatLayoutFeatureTypeTTransliteration :: AatLayoutFeatureTypeT

-- | Annotation
AatLayoutFeatureTypeTAnnotationType :: AatLayoutFeatureTypeT

-- | Kana Spacing
AatLayoutFeatureTypeTKanaSpacingType :: AatLayoutFeatureTypeT

-- | Ideographic Spacing
AatLayoutFeatureTypeTIdeographicSpacingType :: AatLayoutFeatureTypeT

-- | Unicode Decomposition
AatLayoutFeatureTypeTUnicodeDecompositionType :: AatLayoutFeatureTypeT

-- | Ruby Kana
AatLayoutFeatureTypeTRubyKana :: AatLayoutFeatureTypeT

-- | CJK Symbol Alternatives
AatLayoutFeatureTypeTCjkSymbolAlternativesType :: AatLayoutFeatureTypeT

-- | Ideographic Alternatives
AatLayoutFeatureTypeTIdeographicAlternativesType :: AatLayoutFeatureTypeT

-- | CJK Vertical Roman Placement
AatLayoutFeatureTypeTCjkVerticalRomanPlacementType :: AatLayoutFeatureTypeT

-- | Italic CJK Roman
AatLayoutFeatureTypeTItalicCjkRoman :: AatLayoutFeatureTypeT

-- | Case Sensitive Layout
AatLayoutFeatureTypeTCaseSensitiveLayout :: AatLayoutFeatureTypeT

-- | Alternate Kana
AatLayoutFeatureTypeTAlternateKana :: AatLayoutFeatureTypeT

-- | Stylistic Alternatives
AatLayoutFeatureTypeTStylisticAlternatives :: AatLayoutFeatureTypeT

-- | Contextual Alternatives
AatLayoutFeatureTypeTContextualAlternatives :: AatLayoutFeatureTypeT

-- | Lower Case
AatLayoutFeatureTypeTLowerCase :: AatLayoutFeatureTypeT

-- | Upper Case
AatLayoutFeatureTypeTUpperCase :: AatLayoutFeatureTypeT

-- | Language Tag
AatLayoutFeatureTypeTLanguageTagType :: AatLayoutFeatureTypeT

-- | CJK Roman Spacing
AatLayoutFeatureTypeTCjkRomanSpacingType :: AatLayoutFeatureTypeT

-- | Catch-all for unknown values
AnotherAatLayoutFeatureTypeT :: Int -> AatLayoutFeatureTypeT

-- | 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

-- | Return cluster values grouped by graphemes into monotone order.
BufferClusterLevelTMonotoneGraphemes :: BufferClusterLevelT

-- | Return cluster values grouped into monotone order.
BufferClusterLevelTMonotoneCharacters :: BufferClusterLevelT

-- | Don't group cluster values.
BufferClusterLevelTCharacters :: BufferClusterLevelT

-- | Default cluster level, equal to
--   hBBUFFERCLUSTERLEVELMONOTONEGRAPHEMES.
BufferClusterLevelTDefault :: BufferClusterLevelT

-- | Catch-all for unknown values
AnotherBufferClusterLevelT :: Int -> BufferClusterLevelT

-- | The type of BufferT contents.
data BufferContentTypeT

-- | Initial value for new buffer.
BufferContentTypeTInvalid :: BufferContentTypeT

-- | The buffer contains input characters (before shaping).
BufferContentTypeTUnicode :: BufferContentTypeT

-- | The buffer contains output glyphs (after shaping).
BufferContentTypeTGlyphs :: BufferContentTypeT

-- | Catch-all for unknown values
AnotherBufferContentTypeT :: Int -> BufferContentTypeT

-- | The buffer serialization and de-serialization format used in
--   bufferSerializeGlyphs and bufferDeserializeGlyphs.
--   
--   Since: 0.9.2
data BufferSerializeFormatT

-- | a human-readable, plain text format.
BufferSerializeFormatTText :: BufferSerializeFormatT

-- | a machine-readable JSON format.
BufferSerializeFormatTJson :: BufferSerializeFormatT

-- | invalid format.
BufferSerializeFormatTInvalid :: BufferSerializeFormatT

-- | Catch-all for unknown values
AnotherBufferSerializeFormatT :: Int -> BufferSerializeFormatT

-- | 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

-- | Initial, unset direction.
DirectionTInvalid :: DirectionT

-- | Text is set horizontally from left to right.
DirectionTLtr :: DirectionT

-- | Text is set horizontally from right to left.
DirectionTRtl :: DirectionT

-- | Text is set vertically from top to bottom.
DirectionTTtb :: DirectionT

-- | Text is set vertically from bottom to top.
DirectionTBtt :: DirectionT

-- | Catch-all for unknown values
AnotherDirectionT :: Int -> DirectionT

-- | Data type holding the memory modes available to client programs.
--   
--   Regarding these various memory-modes:
--   
--   
--   
- In no case shall the HarfBuzz client modify memory that is passed
--   to HarfBuzz in a blob. If there is any such possibility,
--   hBMEMORYMODEDUPLICATE should be used such that
--   HarfBuzz makes a copy immediately,
--   
- Use hBMEMORYMODEREADONLY otherwise, unless you
--   really really really know what you are doing,
--   
- hBMEMORYMODEWRITABLE is appropriate if you really
--   made a copy of data solely for the purpose of passing to HarfBuzz and
--   doing that just once (no reuse!),
--   
- If the font is mmap()ed, it's okay to use
--   hBMEMORYMODEREADONLYMAYMAKEWRITABLE, however, using
--   that mode correctly is very tricky. Use
--   hBMEMORYMODEREADONLY instead.
--   
data MemoryModeT

-- | HarfBuzz immediately makes a copy of the data.
MemoryModeTDuplicate :: MemoryModeT

-- | HarfBuzz client will never modify the data, and HarfBuzz will never
--   modify the data.
MemoryModeTReadonly :: MemoryModeT

-- | HarfBuzz client made a copy of the data solely for HarfBuzz, so
--   HarfBuzz may modify the data.
MemoryModeTWritable :: MemoryModeT

-- | See above
MemoryModeTReadonlyMayMakeWritable :: MemoryModeT

-- | Catch-all for unknown values
AnotherMemoryModeT :: Int -> MemoryModeT

-- | Baseline tags from Baseline Tags registry.
--   
--   Since: 2.6.0
data OtLayoutBaselineTagT

-- | 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.)
OtLayoutBaselineTagTRoman :: OtLayoutBaselineTagT

-- | 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.
OtLayoutBaselineTagTHanging :: OtLayoutBaselineTagT

-- | Ideographic character face bottom or left edge, if the direction is
--   horizontal or vertical, respectively.
OtLayoutBaselineTagTIdeoFaceBottomOrLeft :: OtLayoutBaselineTagT

-- | Ideographic character face top or right edge, if the direction is
--   horizontal or vertical, respectively.
OtLayoutBaselineTagTIdeoFaceTopOrRight :: OtLayoutBaselineTagT

-- | The center of the ideographic character face. Since: 4.0.0
OtLayoutBaselineTagTIdeoFaceCentral :: OtLayoutBaselineTagT

-- | Ideographic em-box bottom or left edge, if the direction is horizontal
--   or vertical, respectively.
OtLayoutBaselineTagTIdeoEmboxBottomOrLeft :: OtLayoutBaselineTagT

-- | Ideographic em-box top or right edge baseline,
OtLayoutBaselineTagTIdeoEmboxTopOrRight :: OtLayoutBaselineTagT

-- | The center of the ideographic em-box. Since: 4.0.0 if the direction is
--   horizontal or vertical, respectively.
OtLayoutBaselineTagTIdeoEmboxCentral :: OtLayoutBaselineTagT

-- | The baseline about which mathematical characters are centered. In
--   vertical writing mode when mathematical characters rotated 90 degrees
--   clockwise, are centered.
OtLayoutBaselineTagTMath :: OtLayoutBaselineTagT

-- | Catch-all for unknown values
AnotherOtLayoutBaselineTagT :: Int -> OtLayoutBaselineTagT

-- | The GDEF classes defined for glyphs.
data OtLayoutGlyphClassT

-- | Glyphs not matching the other classifications
OtLayoutGlyphClassTUnclassified :: OtLayoutGlyphClassT

-- | Spacing, single characters, capable of accepting marks
OtLayoutGlyphClassTBaseGlyph :: OtLayoutGlyphClassT

-- | Glyphs that represent ligation of multiple characters
OtLayoutGlyphClassTLigature :: OtLayoutGlyphClassT

-- | Non-spacing, combining glyphs that represent marks
OtLayoutGlyphClassTMark :: OtLayoutGlyphClassT

-- | Spacing glyphs that represent part of a single character
OtLayoutGlyphClassTComponent :: OtLayoutGlyphClassT

-- | Catch-all for unknown values
AnotherOtLayoutGlyphClassT :: Int -> OtLayoutGlyphClassT

-- | The 'MATH' table constants, refer to OpenType documentation For
--   more explanations.
--   
--   Since: 1.3.3
data OtMathConstantT

-- | scriptPercentScaleDown
OtMathConstantTScriptPercentScaleDown :: OtMathConstantT

-- | scriptScriptPercentScaleDown
OtMathConstantTScriptScriptPercentScaleDown :: OtMathConstantT

-- | delimitedSubFormulaMinHeight
OtMathConstantTDelimitedSubFormulaMinHeight :: OtMathConstantT

-- | displayOperatorMinHeight
OtMathConstantTDisplayOperatorMinHeight :: OtMathConstantT

-- | mathLeading
OtMathConstantTMathLeading :: OtMathConstantT

-- | axisHeight
OtMathConstantTAxisHeight :: OtMathConstantT

-- | accentBaseHeight
OtMathConstantTAccentBaseHeight :: OtMathConstantT

-- | flattenedAccentBaseHeight
OtMathConstantTFlattenedAccentBaseHeight :: OtMathConstantT

-- | subscriptShiftDown
OtMathConstantTSubscriptShiftDown :: OtMathConstantT

-- | subscriptTopMax
OtMathConstantTSubscriptTopMax :: OtMathConstantT

-- | subscriptBaselineDropMin
OtMathConstantTSubscriptBaselineDropMin :: OtMathConstantT

-- | superscriptShiftUp
OtMathConstantTSuperscriptShiftUp :: OtMathConstantT

-- | superscriptShiftUpCramped
OtMathConstantTSuperscriptShiftUpCramped :: OtMathConstantT

-- | superscriptBottomMin
OtMathConstantTSuperscriptBottomMin :: OtMathConstantT

-- | superscriptBaselineDropMax
OtMathConstantTSuperscriptBaselineDropMax :: OtMathConstantT

-- | subSuperscriptGapMin
OtMathConstantTSubSuperscriptGapMin :: OtMathConstantT

-- | superscriptBottomMaxWithSubscript
OtMathConstantTSuperscriptBottomMaxWithSubscript :: OtMathConstantT

-- | spaceAfterScript
OtMathConstantTSpaceAfterScript :: OtMathConstantT

-- | upperLimitGapMin
OtMathConstantTUpperLimitGapMin :: OtMathConstantT

-- | upperLimitBaselineRiseMin
OtMathConstantTUpperLimitBaselineRiseMin :: OtMathConstantT

-- | lowerLimitGapMin
OtMathConstantTLowerLimitGapMin :: OtMathConstantT

-- | lowerLimitBaselineDropMin
OtMathConstantTLowerLimitBaselineDropMin :: OtMathConstantT

-- | stackTopShiftUp
OtMathConstantTStackTopShiftUp :: OtMathConstantT

-- | stackTopDisplayStyleShiftUp
OtMathConstantTStackTopDisplayStyleShiftUp :: OtMathConstantT

-- | stackBottomShiftDown
OtMathConstantTStackBottomShiftDown :: OtMathConstantT

-- | stackBottomDisplayStyleShiftDown
OtMathConstantTStackBottomDisplayStyleShiftDown :: OtMathConstantT

-- | stackGapMin
OtMathConstantTStackGapMin :: OtMathConstantT

-- | stackDisplayStyleGapMin
OtMathConstantTStackDisplayStyleGapMin :: OtMathConstantT

-- | stretchStackTopShiftUp
OtMathConstantTStretchStackTopShiftUp :: OtMathConstantT

-- | stretchStackBottomShiftDown
OtMathConstantTStretchStackBottomShiftDown :: OtMathConstantT

-- | stretchStackGapAboveMin
OtMathConstantTStretchStackGapAboveMin :: OtMathConstantT

-- | stretchStackGapBelowMin
OtMathConstantTStretchStackGapBelowMin :: OtMathConstantT

-- | fractionNumeratorShiftUp
OtMathConstantTFractionNumeratorShiftUp :: OtMathConstantT

-- | fractionNumeratorDisplayStyleShiftUp
OtMathConstantTFractionNumeratorDisplayStyleShiftUp :: OtMathConstantT

-- | fractionDenominatorShiftDown
OtMathConstantTFractionDenominatorShiftDown :: OtMathConstantT

-- | fractionDenominatorDisplayStyleShiftDown
OtMathConstantTFractionDenominatorDisplayStyleShiftDown :: OtMathConstantT

-- | fractionNumeratorGapMin
OtMathConstantTFractionNumeratorGapMin :: OtMathConstantT

-- | fractionNumDisplayStyleGapMin
OtMathConstantTFractionNumDisplayStyleGapMin :: OtMathConstantT

-- | fractionRuleThickness
OtMathConstantTFractionRuleThickness :: OtMathConstantT

-- | fractionDenominatorGapMin
OtMathConstantTFractionDenominatorGapMin :: OtMathConstantT

-- | fractionDenomDisplayStyleGapMin
OtMathConstantTFractionDenomDisplayStyleGapMin :: OtMathConstantT

-- | skewedFractionHorizontalGap
OtMathConstantTSkewedFractionHorizontalGap :: OtMathConstantT

-- | skewedFractionVerticalGap
OtMathConstantTSkewedFractionVerticalGap :: OtMathConstantT

-- | overbarVerticalGap
OtMathConstantTOverbarVerticalGap :: OtMathConstantT

-- | overbarRuleThickness
OtMathConstantTOverbarRuleThickness :: OtMathConstantT

-- | overbarExtraAscender
OtMathConstantTOverbarExtraAscender :: OtMathConstantT

-- | underbarVerticalGap
OtMathConstantTUnderbarVerticalGap :: OtMathConstantT

-- | underbarRuleThickness
OtMathConstantTUnderbarRuleThickness :: OtMathConstantT

-- | underbarExtraDescender
OtMathConstantTUnderbarExtraDescender :: OtMathConstantT

-- | radicalVerticalGap
OtMathConstantTRadicalVerticalGap :: OtMathConstantT

-- | radicalDisplayStyleVerticalGap
OtMathConstantTRadicalDisplayStyleVerticalGap :: OtMathConstantT

-- | radicalRuleThickness
OtMathConstantTRadicalRuleThickness :: OtMathConstantT

-- | radicalExtraAscender
OtMathConstantTRadicalExtraAscender :: OtMathConstantT

-- | radicalKernBeforeDegree
OtMathConstantTRadicalKernBeforeDegree :: OtMathConstantT

-- | radicalKernAfterDegree
OtMathConstantTRadicalKernAfterDegree :: OtMathConstantT

-- | radicalDegreeBottomRaisePercent
OtMathConstantTRadicalDegreeBottomRaisePercent :: OtMathConstantT

-- | Catch-all for unknown values
AnotherOtMathConstantT :: Int -> OtMathConstantT

-- | The math kerning-table types defined for the four corners of a glyph.
--   
--   Since: 1.3.3
data OtMathKernT

-- | The top right corner of the glyph.
OtMathKernTTopRight :: OtMathKernT

-- | The top left corner of the glyph.
OtMathKernTTopLeft :: OtMathKernT

-- | The bottom right corner of the glyph.
OtMathKernTBottomRight :: OtMathKernT

-- | The bottom left corner of the glyph.
OtMathKernTBottomLeft :: OtMathKernT

-- | Catch-all for unknown values
AnotherOtMathKernT :: Int -> OtMathKernT

-- | Known metadata tags from
--   https://docs.microsoft.com/en-us/typography/opentype/spec/meta
--   
--   Since: 2.6.0
data OtMetaTagT

-- | 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.
OtMetaTagTDesignLanguages :: OtMetaTagT

-- | Supported languages. Text, using only Basic Latin (ASCII) characters.
--   Indicates languages and/or scripts that the font is declared to be
--   capable of supporting.
OtMetaTagTSupportedLanguages :: OtMetaTagT

-- | Catch-all for unknown values
AnotherOtMetaTagT :: Int -> OtMetaTagT

-- | Metric tags corresponding to
--   <https://docs.microsoft.com/en-us/typography/opentype/spec/mvar#value-tags
--   MVAR Value Tags>
--   
--   Since: 2.6.0
data OtMetricsTagT

-- | horizontal ascender.
OtMetricsTagTHorizontalAscender :: OtMetricsTagT

-- | horizontal descender.
OtMetricsTagTHorizontalDescender :: OtMetricsTagT

-- | horizontal line gap.
OtMetricsTagTHorizontalLineGap :: OtMetricsTagT

-- | horizontal clipping ascent.
OtMetricsTagTHorizontalClippingAscent :: OtMetricsTagT

-- | horizontal clipping descent.
OtMetricsTagTHorizontalClippingDescent :: OtMetricsTagT

-- | vertical ascender.
OtMetricsTagTVerticalAscender :: OtMetricsTagT

-- | vertical descender.
OtMetricsTagTVerticalDescender :: OtMetricsTagT

-- | vertical line gap.
OtMetricsTagTVerticalLineGap :: OtMetricsTagT

-- | horizontal caret rise.
OtMetricsTagTHorizontalCaretRise :: OtMetricsTagT

-- | horizontal caret run.
OtMetricsTagTHorizontalCaretRun :: OtMetricsTagT

-- | horizontal caret offset.
OtMetricsTagTHorizontalCaretOffset :: OtMetricsTagT

-- | vertical caret rise.
OtMetricsTagTVerticalCaretRise :: OtMetricsTagT

-- | vertical caret run.
OtMetricsTagTVerticalCaretRun :: OtMetricsTagT

-- | vertical caret offset.
OtMetricsTagTVerticalCaretOffset :: OtMetricsTagT

-- | x height.
OtMetricsTagTXHeight :: OtMetricsTagT

-- | cap height.
OtMetricsTagTCapHeight :: OtMetricsTagT

-- | subscript em x size.
OtMetricsTagTSubscriptEmXSize :: OtMetricsTagT

-- | subscript em y size.
OtMetricsTagTSubscriptEmYSize :: OtMetricsTagT

-- | subscript em x offset.
OtMetricsTagTSubscriptEmXOffset :: OtMetricsTagT

-- | subscript em y offset.
OtMetricsTagTSubscriptEmYOffset :: OtMetricsTagT

-- | superscript em x size.
OtMetricsTagTSuperscriptEmXSize :: OtMetricsTagT

-- | superscript em y size.
OtMetricsTagTSuperscriptEmYSize :: OtMetricsTagT

-- | superscript em x offset.
OtMetricsTagTSuperscriptEmXOffset :: OtMetricsTagT

-- | superscript em y offset.
OtMetricsTagTSuperscriptEmYOffset :: OtMetricsTagT

-- | strikeout size.
OtMetricsTagTStrikeoutSize :: OtMetricsTagT

-- | strikeout offset.
OtMetricsTagTStrikeoutOffset :: OtMetricsTagT

-- | underline size.
OtMetricsTagTUnderlineSize :: OtMetricsTagT

-- | underline offset.
OtMetricsTagTUnderlineOffset :: OtMetricsTagT

-- | Catch-all for unknown values
AnotherOtMetricsTagT :: Int -> OtMetricsTagT

-- | An enum type representing the pre-defined name IDs.
--   
--   For more information on these fields, see the OpenType spec.
--   
--   Since: 7.0.0
data OtNameIdPredefinedT

-- | Copyright notice
OtNameIdPredefinedTCopyright :: OtNameIdPredefinedT

-- | Font Family name
OtNameIdPredefinedTFontFamily :: OtNameIdPredefinedT

-- | Font Subfamily name
OtNameIdPredefinedTFontSubfamily :: OtNameIdPredefinedT

-- | Unique font identifier
OtNameIdPredefinedTUniqueId :: OtNameIdPredefinedT

-- | Full font name that reflects all family and relevant subfamily
--   descriptors
OtNameIdPredefinedTFullName :: OtNameIdPredefinedT

-- | Version string
OtNameIdPredefinedTVersionString :: OtNameIdPredefinedT

-- | PostScript name for the font
OtNameIdPredefinedTPostscriptName :: OtNameIdPredefinedT

-- | Trademark
OtNameIdPredefinedTTrademark :: OtNameIdPredefinedT

-- | Manufacturer Name
OtNameIdPredefinedTManufacturer :: OtNameIdPredefinedT

-- | Designer
OtNameIdPredefinedTDesigner :: OtNameIdPredefinedT

-- | Description
OtNameIdPredefinedTDescription :: OtNameIdPredefinedT

-- | URL of font vendor
OtNameIdPredefinedTVendorUrl :: OtNameIdPredefinedT

-- | URL of typeface designer
OtNameIdPredefinedTDesignerUrl :: OtNameIdPredefinedT

-- | License Description
OtNameIdPredefinedTLicense :: OtNameIdPredefinedT

-- | URL where additional licensing information can be found
OtNameIdPredefinedTLicenseUrl :: OtNameIdPredefinedT

-- | Typographic Family name
OtNameIdPredefinedTTypographicFamily :: OtNameIdPredefinedT

-- | Typographic Subfamily name
OtNameIdPredefinedTTypographicSubfamily :: OtNameIdPredefinedT

-- | Compatible Full Name for MacOS
OtNameIdPredefinedTMacFullName :: OtNameIdPredefinedT

-- | Sample text
OtNameIdPredefinedTSampleText :: OtNameIdPredefinedT

-- | PostScript CID findfont name
OtNameIdPredefinedTCidFindfontName :: OtNameIdPredefinedT

-- | WWS Family Name
OtNameIdPredefinedTWwsFamily :: OtNameIdPredefinedT

-- | WWS Subfamily Name
OtNameIdPredefinedTWwsSubfamily :: OtNameIdPredefinedT

-- | Light Background Palette
OtNameIdPredefinedTLightBackground :: OtNameIdPredefinedT

-- | Dark Background Palette
OtNameIdPredefinedTDarkBackground :: OtNameIdPredefinedT

-- | Variations PostScript Name Prefix
OtNameIdPredefinedTVariationsPsPrefix :: OtNameIdPredefinedT

-- | Value to represent a nonexistent name ID.
OtNameIdPredefinedTInvalid :: OtNameIdPredefinedT

-- | Catch-all for unknown values
AnotherOtNameIdPredefinedT :: Int -> OtNameIdPredefinedT

-- | The values of this enumeration describe the compositing modes that can
--   be used when combining temporary redirected drawing with the backdrop.
--   
--   See the OpenType spec COLR section for details.
--   
--   Since: 7.0.0
data PaintCompositeModeT

-- | clear destination layer (bounded)
PaintCompositeModeTClear :: PaintCompositeModeT

-- | replace destination layer (bounded)
PaintCompositeModeTSrc :: PaintCompositeModeT

-- | ignore the source
PaintCompositeModeTDest :: PaintCompositeModeT

-- | draw source layer on top of destination layer (bounded)
PaintCompositeModeTSrcOver :: PaintCompositeModeT

-- | draw destination on top of source
PaintCompositeModeTDestOver :: PaintCompositeModeT

-- | draw source where there was destination content (unbounded)
PaintCompositeModeTSrcIn :: PaintCompositeModeT

-- | leave destination only where there was source content (unbounded)
PaintCompositeModeTDestIn :: PaintCompositeModeT

-- | draw source where there was no destination content (unbounded)
PaintCompositeModeTSrcOut :: PaintCompositeModeT

-- | leave destination only where there was no source content
PaintCompositeModeTDestOut :: PaintCompositeModeT

-- | draw source on top of destination content and only there
PaintCompositeModeTSrcAtop :: PaintCompositeModeT

-- | leave destination on top of source content and only there (unbounded)
PaintCompositeModeTDestAtop :: PaintCompositeModeT

-- | source and destination are shown where there is only one of them
PaintCompositeModeTXor :: PaintCompositeModeT

-- | source and destination layers are accumulated
PaintCompositeModeTPlus :: PaintCompositeModeT

-- | source and destination are complemented and multiplied. This causes
--   the result to be at least as light as the lighter inputs.
PaintCompositeModeTScreen :: PaintCompositeModeT

-- | multiplies or screens, depending on the lightness of the destination
--   color.
PaintCompositeModeTOverlay :: PaintCompositeModeT

-- | replaces the destination with the source if it is darker, otherwise
--   keeps the source.
PaintCompositeModeTDarken :: PaintCompositeModeT

-- | replaces the destination with the source if it is lighter, otherwise
--   keeps the source.
PaintCompositeModeTLighten :: PaintCompositeModeT

-- | brightens the destination color to reflect the source color.
PaintCompositeModeTColorDodge :: PaintCompositeModeT

-- | darkens the destination color to reflect the source color.
PaintCompositeModeTColorBurn :: PaintCompositeModeT

-- | Multiplies or screens, dependent on source color.
PaintCompositeModeTHardLight :: PaintCompositeModeT

-- | Darkens or lightens, dependent on source color.
PaintCompositeModeTSoftLight :: PaintCompositeModeT

-- | Takes the difference of the source and destination color.
PaintCompositeModeTDifference :: PaintCompositeModeT

-- | Produces an effect similar to difference, but with lower contrast.
PaintCompositeModeTExclusion :: PaintCompositeModeT

-- | source and destination layers are multiplied. This causes the result
--   to be at least as dark as the darker inputs.
PaintCompositeModeTMultiply :: PaintCompositeModeT

-- | Creates a color with the hue of the source and the saturation and
--   luminosity of the target.
PaintCompositeModeTHslHue :: PaintCompositeModeT

-- | Creates a color with the saturation of the source and the hue and
--   luminosity of the target. Painting with this mode onto a gray area
--   produces no change.
PaintCompositeModeTHslSaturation :: PaintCompositeModeT

-- | Creates a color with the hue and saturation of the source and the
--   luminosity of the target. This preserves the gray levels of the target
--   and is useful for coloring monochrome images or tinting color images.
PaintCompositeModeTHslColor :: PaintCompositeModeT

-- | Creates a color with the luminosity of the source and the hue and
--   saturation of the target. This produces an inverse effect to
--   hBPAINTCOMPOSITEMODEHSLCOLOR.
PaintCompositeModeTHslLuminosity :: PaintCompositeModeT

-- | Catch-all for unknown values
AnotherPaintCompositeModeT :: Int -> PaintCompositeModeT

-- | The values of this enumeration determine how color values outside the
--   minimum and maximum defined offset on a ColorLineT are
--   determined.
--   
--   See the OpenType spec COLR section for details.
--   
--   Since: 7.0.0
data PaintExtendT

-- | Outside the defined interval, the color of the closest color stop is
--   used.
PaintExtendTPad :: PaintExtendT

-- | The color line is repeated over repeated multiples of the defined
--   interval
PaintExtendTRepeat :: PaintExtendT

-- | The color line is repeated over repeated intervals, as for the repeat
--   mode. However, in each repeated interval, the ordering of color stops
--   is the reverse of the adjacent interval.
PaintExtendTReflect :: PaintExtendT

-- | Catch-all for unknown values
AnotherPaintExtendT :: Int -> PaintExtendT

-- | Data type for scripts. Each ScriptT's value is an
--   hb_tag_t corresponding to the four-letter values
--   defined by ISO 15924.
--   
--   See also the Script (sc) property of the Unicode Character Database.
data ScriptT

-- | 
--   Zyyy
--   
ScriptTCommon :: ScriptT

-- | 
--   Zinh
--   
ScriptTInherited :: ScriptT

-- | 
--   Zzzz
--   
ScriptTUnknown :: ScriptT

-- | 
--   Arab
--   
ScriptTArabic :: ScriptT

-- | 
--   Armn
--   
ScriptTArmenian :: ScriptT

-- | 
--   Beng
--   
ScriptTBengali :: ScriptT

-- | 
--   Cyrl
--   
ScriptTCyrillic :: ScriptT

-- | 
--   Deva
--   
ScriptTDevanagari :: ScriptT

-- | 
--   Geor
--   
ScriptTGeorgian :: ScriptT

-- | 
--   Grek
--   
ScriptTGreek :: ScriptT

-- | 
--   Gujr
--   
ScriptTGujarati :: ScriptT

-- | 
--   Guru
--   
ScriptTGurmukhi :: ScriptT

-- | 
--   Hang
--   
ScriptTHangul :: ScriptT

-- | 
--   Hani
--   
ScriptTHan :: ScriptT

-- | 
--   Hebr
--   
ScriptTHebrew :: ScriptT

-- | 
--   Hira
--   
ScriptTHiragana :: ScriptT

-- | 
--   Knda
--   
ScriptTKannada :: ScriptT

-- | 
--   Kana
--   
ScriptTKatakana :: ScriptT

-- | 
--   Laoo
--   
ScriptTLao :: ScriptT

-- | 
--   Latn
--   
ScriptTLatin :: ScriptT

-- | 
--   Mlym
--   
ScriptTMalayalam :: ScriptT

-- | 
--   Orya
--   
ScriptTOriya :: ScriptT

-- | 
--   Taml
--   
ScriptTTamil :: ScriptT

-- | 
--   Telu
--   
ScriptTTelugu :: ScriptT

-- | 
--   Thai
--   
ScriptTThai :: ScriptT

-- | 
--   Tibt
--   
ScriptTTibetan :: ScriptT

-- | 
--   Bopo
--   
ScriptTBopomofo :: ScriptT

-- | 
--   Brai
--   
ScriptTBraille :: ScriptT

-- | 
--   Cans
--   
ScriptTCanadianSyllabics :: ScriptT

-- | 
--   Cher
--   
ScriptTCherokee :: ScriptT

-- | 
--   Ethi
--   
ScriptTEthiopic :: ScriptT

-- | 
--   Khmr
--   
ScriptTKhmer :: ScriptT

-- | 
--   Mong
--   
ScriptTMongolian :: ScriptT

-- | 
--   Mymr
--   
ScriptTMyanmar :: ScriptT

-- | 
--   Ogam
--   
ScriptTOgham :: ScriptT

-- | 
--   Runr
--   
ScriptTRunic :: ScriptT

-- | 
--   Sinh
--   
ScriptTSinhala :: ScriptT

-- | 
--   Syrc
--   
ScriptTSyriac :: ScriptT

-- | 
--   Thaa
--   
ScriptTThaana :: ScriptT

-- | 
--   Yiii
--   
ScriptTYi :: ScriptT

-- | 
--   Dsrt
--   
ScriptTDeseret :: ScriptT

-- | 
--   Goth
--   
ScriptTGothic :: ScriptT

-- | 
--   Ital
--   
ScriptTOldItalic :: ScriptT

-- | 
--   Buhd
--   
ScriptTBuhid :: ScriptT

-- | 
--   Hano
--   
ScriptTHanunoo :: ScriptT

-- | 
--   Tglg
--   
ScriptTTagalog :: ScriptT

-- | 
--   Tagb
--   
ScriptTTagbanwa :: ScriptT

-- | 
--   Cprt
--   
ScriptTCypriot :: ScriptT

-- | 
--   Limb
--   
ScriptTLimbu :: ScriptT

-- | 
--   Linb
--   
ScriptTLinearB :: ScriptT

-- | 
--   Osma
--   
ScriptTOsmanya :: ScriptT

-- | 
--   Shaw
--   
ScriptTShavian :: ScriptT

-- | 
--   Tale
--   
ScriptTTaiLe :: ScriptT

-- | 
--   Ugar
--   
ScriptTUgaritic :: ScriptT

-- | 
--   Bugi
--   
ScriptTBuginese :: ScriptT

-- | 
--   Copt
--   
ScriptTCoptic :: ScriptT

-- | 
--   Glag
--   
ScriptTGlagolitic :: ScriptT

-- | 
--   Khar
--   
ScriptTKharoshthi :: ScriptT

-- | 
--   Talu
--   
ScriptTNewTaiLue :: ScriptT

-- | 
--   Xpeo
--   
ScriptTOldPersian :: ScriptT

-- | 
--   Sylo
--   
ScriptTSylotiNagri :: ScriptT

-- | 
--   Tfng
--   
ScriptTTifinagh :: ScriptT

-- | 
--   Bali
--   
ScriptTBalinese :: ScriptT

-- | 
--   Xsux
--   
ScriptTCuneiform :: ScriptT

-- | 
--   Nkoo
--   
ScriptTNko :: ScriptT

-- | 
--   Phag
--   
ScriptTPhagsPa :: ScriptT

-- | 
--   Phnx
--   
ScriptTPhoenician :: ScriptT

-- | 
--   Cari
--   
ScriptTCarian :: ScriptT

-- | 
--   Cham
--   
ScriptTCham :: ScriptT

-- | 
--   Kali
--   
ScriptTKayahLi :: ScriptT

-- | 
--   Lepc
--   
ScriptTLepcha :: ScriptT

-- | 
--   Lyci
--   
ScriptTLycian :: ScriptT

-- | 
--   Lydi
--   
ScriptTLydian :: ScriptT

-- | 
--   Olck
--   
ScriptTOlChiki :: ScriptT

-- | 
--   Rjng
--   
ScriptTRejang :: ScriptT

-- | 
--   Saur
--   
ScriptTSaurashtra :: ScriptT

-- | 
--   Sund
--   
ScriptTSundanese :: ScriptT

-- | 
--   Vaii
--   
ScriptTVai :: ScriptT

-- | 
--   Avst
--   
ScriptTAvestan :: ScriptT

-- | 
--   Bamu
--   
ScriptTBamum :: ScriptT

-- | 
--   Egyp
--   
ScriptTEgyptianHieroglyphs :: ScriptT

-- | 
--   Armi
--   
ScriptTImperialAramaic :: ScriptT

-- | 
--   Phli
--   
ScriptTInscriptionalPahlavi :: ScriptT

-- | 
--   Prti
--   
ScriptTInscriptionalParthian :: ScriptT

-- | 
--   Java
--   
ScriptTJavanese :: ScriptT

-- | 
--   Kthi
--   
ScriptTKaithi :: ScriptT

-- | 
--   Lisu
--   
ScriptTLisu :: ScriptT

-- | 
--   Mtei
--   
ScriptTMeeteiMayek :: ScriptT

-- | 
--   Sarb
--   
ScriptTOldSouthArabian :: ScriptT

-- | 
--   Orkh
--   
ScriptTOldTurkic :: ScriptT

-- | 
--   Samr
--   
ScriptTSamaritan :: ScriptT

-- | 
--   Lana
--   
ScriptTTaiTham :: ScriptT

-- | 
--   Tavt
--   
ScriptTTaiViet :: ScriptT

-- | 
--   Batk
--   
ScriptTBatak :: ScriptT

-- | 
--   Brah
--   
ScriptTBrahmi :: ScriptT

-- | 
--   Mand
--   
ScriptTMandaic :: ScriptT

-- | 
--   Cakm
--   
ScriptTChakma :: ScriptT

-- | 
--   Merc
--   
ScriptTMeroiticCursive :: ScriptT

-- | 
--   Mero
--   
ScriptTMeroiticHieroglyphs :: ScriptT

-- | 
--   Plrd
--   
ScriptTMiao :: ScriptT

-- | 
--   Shrd
--   
ScriptTSharada :: ScriptT

-- | 
--   Sora
--   
ScriptTSoraSompeng :: ScriptT

-- | 
--   Takr
--   
ScriptTTakri :: ScriptT

-- | Bass, Since: 0.9.30
ScriptTBassaVah :: ScriptT

-- | Aghb, Since: 0.9.30
ScriptTCaucasianAlbanian :: ScriptT

-- | Dupl, Since: 0.9.30
ScriptTDuployan :: ScriptT

-- | Elba, Since: 0.9.30
ScriptTElbasan :: ScriptT

-- | Gran, Since: 0.9.30
ScriptTGrantha :: ScriptT

-- | Khoj, Since: 0.9.30
ScriptTKhojki :: ScriptT

-- | Sind, Since: 0.9.30
ScriptTKhudawadi :: ScriptT

-- | Lina, Since: 0.9.30
ScriptTLinearA :: ScriptT

-- | Mahj, Since: 0.9.30
ScriptTMahajani :: ScriptT

-- | Mani, Since: 0.9.30
ScriptTManichaean :: ScriptT

-- | Mend, Since: 0.9.30
ScriptTMendeKikakui :: ScriptT

-- | Modi, Since: 0.9.30
ScriptTModi :: ScriptT

-- | Mroo, Since: 0.9.30
ScriptTMro :: ScriptT

-- | Nbat, Since: 0.9.30
ScriptTNabataean :: ScriptT

-- | Narb, Since: 0.9.30
ScriptTOldNorthArabian :: ScriptT

-- | Perm, Since: 0.9.30
ScriptTOldPermic :: ScriptT

-- | Hmng, Since: 0.9.30
ScriptTPahawhHmong :: ScriptT

-- | Palm, Since: 0.9.30
ScriptTPalmyrene :: ScriptT

-- | Pauc, Since: 0.9.30
ScriptTPauCinHau :: ScriptT

-- | Phlp, Since: 0.9.30
ScriptTPsalterPahlavi :: ScriptT

-- | Sidd, Since: 0.9.30
ScriptTSiddham :: ScriptT

-- | Tirh, Since: 0.9.30
ScriptTTirhuta :: ScriptT

-- | Wara, Since: 0.9.30
ScriptTWarangCiti :: ScriptT

-- | Ahom, Since: 0.9.30
ScriptTAhom :: ScriptT

-- | Hluw, Since: 0.9.30
ScriptTAnatolianHieroglyphs :: ScriptT

-- | Hatr, Since: 0.9.30
ScriptTHatran :: ScriptT

-- | Mult, Since: 0.9.30
ScriptTMultani :: ScriptT

-- | Hung, Since: 0.9.30
ScriptTOldHungarian :: ScriptT

-- | Sgnw, Since: 0.9.30
ScriptTSignwriting :: ScriptT

-- | Adlm, Since: 1.3.0
ScriptTAdlam :: ScriptT

-- | Bhks, Since: 1.3.0
ScriptTBhaiksuki :: ScriptT

-- | Marc, Since: 1.3.0
ScriptTMarchen :: ScriptT

-- | Osge, Since: 1.3.0
ScriptTOsage :: ScriptT

-- | Tang, Since: 1.3.0
ScriptTTangut :: ScriptT

-- | Newa, Since: 1.3.0
ScriptTNewa :: ScriptT

-- | Gonm, Since: 1.6.0
ScriptTMasaramGondi :: ScriptT

-- | Nshu, Since: 1.6.0
ScriptTNushu :: ScriptT

-- | Soyo, Since: 1.6.0
ScriptTSoyombo :: ScriptT

-- | Zanb, Since: 1.6.0
ScriptTZanabazarSquare :: ScriptT

-- | Dogr, Since: 1.8.0
ScriptTDogra :: ScriptT

-- | Gong, Since: 1.8.0
ScriptTGunjalaGondi :: ScriptT

-- | Rohg, Since: 1.8.0
ScriptTHanifiRohingya :: ScriptT

-- | Maka, Since: 1.8.0
ScriptTMakasar :: ScriptT

-- | Medf, Since: 1.8.0
ScriptTMedefaidrin :: ScriptT

-- | Sogo, Since: 1.8.0
ScriptTOldSogdian :: ScriptT

-- | Sogd, Since: 1.8.0
ScriptTSogdian :: ScriptT

-- | Elym, Since: 2.4.0
ScriptTElymaic :: ScriptT

-- | Nand, Since: 2.4.0
ScriptTNandinagari :: ScriptT

-- | Hmnp, Since: 2.4.0
ScriptTNyiakengPuachueHmong :: ScriptT

-- | Wcho, Since: 2.4.0
ScriptTWancho :: ScriptT

-- | Chrs, Since: 2.6.7
ScriptTChorasmian :: ScriptT

-- | Diak, Since: 2.6.7
ScriptTDivesAkuru :: ScriptT

-- | Kits, Since: 2.6.7
ScriptTKhitanSmallScript :: ScriptT

-- | Yezi, Since: 2.6.7
ScriptTYezidi :: ScriptT

-- | Cpmn, Since: 3.0.0
ScriptTCyproMinoan :: ScriptT

-- | Ougr, Since: 3.0.0
ScriptTOldUyghur :: ScriptT

-- | Tnsa, Since: 3.0.0
ScriptTTangsa :: ScriptT

-- | Toto, Since: 3.0.0
ScriptTToto :: ScriptT

-- | Vith, Since: 3.0.0
ScriptTVithkuqi :: ScriptT

-- | Zmth, Since: 3.4.0
ScriptTMath :: ScriptT

-- | Kawi, Since: 5.2.0
ScriptTKawi :: ScriptT

-- | Nagm, Since: 5.2.0
ScriptTNagMundari :: ScriptT

-- | Gara, Since: 10.0.0
ScriptTGaray :: ScriptT

-- | Gukh, Since: 10.0.0
ScriptTGurungKhema :: ScriptT

-- | Krai, Since: 10.0.0
ScriptTKiratRai :: ScriptT

-- | Onao, Since: 10.0.0
ScriptTOlOnal :: ScriptT

-- | Sunu, Since: 10.0.0
ScriptTSunuwar :: ScriptT

-- | Todr, Since: 10.0.0
ScriptTTodhri :: ScriptT

-- | Tutg, Since: 10.0.0
ScriptTTuluTigalari :: ScriptT

-- | No script set
ScriptTInvalid :: ScriptT

-- | Catch-all for unknown values
AnotherScriptT :: Int -> ScriptT

-- | Defined by OpenType Design-Variation Axis Tag Registry.
--   
--   Since: 3.0.0
data StyleTagT

-- | Used to vary between non-italic and italic. A value of 0 can be
--   interpreted as "Roman" (non-italic); a value of 1 can be interpreted
--   as (fully) italic.
StyleTagTItalic :: StyleTagT

-- | Used to vary design to suit different text sizes. Non-zero. Values can
--   be interpreted as text size, in points.
StyleTagTOpticalSize :: StyleTagT

-- | Used to vary between upright and slanted text. Values must be greater
--   than -90 and less than +90. Values can be interpreted as the angle, in
--   counter-clockwise degrees, of oblique slant from whatever the designer
--   considers to be upright for that font design. Typical right-leaning
--   Italic fonts have a negative slant angle (typically around -12)
StyleTagTSlantAngle :: StyleTagT

-- | same as hBSTYLETAGSLANTANGLE expression as ratio.
--   Typical right-leaning Italic fonts have a positive slant ratio
--   (typically around 0.2)
StyleTagTSlantRatio :: StyleTagT

-- | Used to vary width of text from narrower to wider. Non-zero. Values
--   can be interpreted as a percentage of whatever the font designer
--   considers “normal width” for that font design.
StyleTagTWidth :: StyleTagT

-- | Used to vary stroke thicknesses or other design details to give
--   variation from lighter to blacker. Values can be interpreted in direct
--   comparison to values for usWeightClass in the OS/2 table, or the CSS
--   font-weight property.
StyleTagTWeight :: StyleTagT

-- | Catch-all for unknown values
AnotherStyleTagT :: Int -> StyleTagT

-- | 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 unicodeCombiningClass.</note>
data UnicodeCombiningClassT

-- | Spacing and enclosing marks; also many vowel and consonant signs, even
--   if nonspacing
UnicodeCombiningClassTNotReordered :: UnicodeCombiningClassT

-- | Marks which overlay a base letter or symbol
UnicodeCombiningClassTOverlay :: UnicodeCombiningClassT

-- | Diacritic nukta marks in Brahmi-derived scripts
UnicodeCombiningClassTNukta :: UnicodeCombiningClassT

-- | Hiragana/Katakana voicing marks
UnicodeCombiningClassTKanaVoicing :: UnicodeCombiningClassT

-- | Viramas
UnicodeCombiningClassTVirama :: UnicodeCombiningClassT

-- | 
--   
- Hebrew
--   
UnicodeCombiningClassTCcc10 :: UnicodeCombiningClassT

-- | 
--   
- Hebrew
--   
UnicodeCombiningClassTCcc11 :: UnicodeCombiningClassT

-- | 
--   
- Hebrew
--   
UnicodeCombiningClassTCcc12 :: UnicodeCombiningClassT

-- | 
--   
- Hebrew
--   
UnicodeCombiningClassTCcc13 :: UnicodeCombiningClassT

-- | 
--   
- Hebrew
--   
UnicodeCombiningClassTCcc14 :: UnicodeCombiningClassT

-- | 
--   
- Hebrew
--   
UnicodeCombiningClassTCcc15 :: UnicodeCombiningClassT

-- | 
--   
- Hebrew
--   
UnicodeCombiningClassTCcc16 :: UnicodeCombiningClassT

-- | 
--   
- Hebrew
--   
UnicodeCombiningClassTCcc17 :: UnicodeCombiningClassT

-- | 
--   
- Hebrew
--   
UnicodeCombiningClassTCcc18 :: UnicodeCombiningClassT

-- | 
--   
- Hebrew
--   
UnicodeCombiningClassTCcc19 :: UnicodeCombiningClassT

-- | 
--   
- Hebrew
--   
UnicodeCombiningClassTCcc20 :: UnicodeCombiningClassT

-- | 
--   
- Hebrew
--   
UnicodeCombiningClassTCcc21 :: UnicodeCombiningClassT

-- | 
--   
- Hebrew
--   
UnicodeCombiningClassTCcc22 :: UnicodeCombiningClassT

-- | 
--   
- Hebrew
--   
UnicodeCombiningClassTCcc23 :: UnicodeCombiningClassT

-- | 
--   
- Hebrew
--   
UnicodeCombiningClassTCcc24 :: UnicodeCombiningClassT

-- | 
--   
- Hebrew
--   
UnicodeCombiningClassTCcc25 :: UnicodeCombiningClassT

-- | 
--   
- Hebrew
--   
UnicodeCombiningClassTCcc26 :: UnicodeCombiningClassT

-- | 
--   
- Arabic
--   
UnicodeCombiningClassTCcc27 :: UnicodeCombiningClassT

-- | 
--   
- Arabic
--   
UnicodeCombiningClassTCcc28 :: UnicodeCombiningClassT

-- | 
--   
- Arabic
--   
UnicodeCombiningClassTCcc29 :: UnicodeCombiningClassT

-- | 
--   
- Arabic
--   
UnicodeCombiningClassTCcc30 :: UnicodeCombiningClassT

-- | 
--   
- Arabic
--   
UnicodeCombiningClassTCcc31 :: UnicodeCombiningClassT

-- | 
--   
- Arabic
--   
UnicodeCombiningClassTCcc32 :: UnicodeCombiningClassT

-- | 
--   
- Arabic
--   
UnicodeCombiningClassTCcc33 :: UnicodeCombiningClassT

-- | 
--   
- Arabic
--   
UnicodeCombiningClassTCcc34 :: UnicodeCombiningClassT

-- | 
--   
- Arabic
--   
UnicodeCombiningClassTCcc35 :: UnicodeCombiningClassT

-- | 
--   
- Syriac
--   
UnicodeCombiningClassTCcc36 :: UnicodeCombiningClassT

-- | 
--   
- Telugu
--   
UnicodeCombiningClassTCcc84 :: UnicodeCombiningClassT

-- | 
--   
- Telugu
--   
UnicodeCombiningClassTCcc91 :: UnicodeCombiningClassT

-- | 
--   
- Thai
--   
UnicodeCombiningClassTCcc103 :: UnicodeCombiningClassT

-- | 
--   
- Thai
--   
UnicodeCombiningClassTCcc107 :: UnicodeCombiningClassT

-- | 
--   
- Lao
--   
UnicodeCombiningClassTCcc118 :: UnicodeCombiningClassT

-- | 
--   
- Lao
--   
UnicodeCombiningClassTCcc122 :: UnicodeCombiningClassT

-- | 
--   
- Tibetan
--   
UnicodeCombiningClassTCcc129 :: UnicodeCombiningClassT

-- | 
--   
- Tibetan
--   
UnicodeCombiningClassTCcc130 :: UnicodeCombiningClassT

-- | 
--   
- Tibetan Since: 7.2.0
--   
UnicodeCombiningClassTCcc132 :: UnicodeCombiningClassT

-- | Marks attached at the bottom left
UnicodeCombiningClassTAttachedBelowLeft :: UnicodeCombiningClassT

-- | Marks attached directly below
UnicodeCombiningClassTAttachedBelow :: UnicodeCombiningClassT

-- | Marks attached directly above
UnicodeCombiningClassTAttachedAbove :: UnicodeCombiningClassT

-- | Marks attached at the top right
UnicodeCombiningClassTAttachedAboveRight :: UnicodeCombiningClassT

-- | Distinct marks at the bottom left
UnicodeCombiningClassTBelowLeft :: UnicodeCombiningClassT

-- | Distinct marks directly below
UnicodeCombiningClassTBelow :: UnicodeCombiningClassT

-- | Distinct marks at the bottom right
UnicodeCombiningClassTBelowRight :: UnicodeCombiningClassT

-- | Distinct marks to the left
UnicodeCombiningClassTLeft :: UnicodeCombiningClassT

-- | Distinct marks to the right
UnicodeCombiningClassTRight :: UnicodeCombiningClassT

-- | Distinct marks at the top left
UnicodeCombiningClassTAboveLeft :: UnicodeCombiningClassT

-- | Distinct marks directly above
UnicodeCombiningClassTAbove :: UnicodeCombiningClassT

-- | Distinct marks at the top right
UnicodeCombiningClassTAboveRight :: UnicodeCombiningClassT

-- | Distinct marks subtending two bases
UnicodeCombiningClassTDoubleBelow :: UnicodeCombiningClassT

-- | Distinct marks extending above two bases
UnicodeCombiningClassTDoubleAbove :: UnicodeCombiningClassT

-- | Greek iota subscript only
UnicodeCombiningClassTIotaSubscript :: UnicodeCombiningClassT

-- | Invalid combining class
UnicodeCombiningClassTInvalid :: UnicodeCombiningClassT

-- | Catch-all for unknown values
AnotherUnicodeCombiningClassT :: Int -> UnicodeCombiningClassT

-- | Data type for the "General_Category" (gc) property from the Unicode
--   Character Database.
data UnicodeGeneralCategoryT

-- | 
--   
- Cc
--   
UnicodeGeneralCategoryTControl :: UnicodeGeneralCategoryT

-- | 
--   
- Cf
--   
UnicodeGeneralCategoryTFormat :: UnicodeGeneralCategoryT

-- | 
--   
- Cn
--   
UnicodeGeneralCategoryTUnassigned :: UnicodeGeneralCategoryT

-- | 
--   
- Co
--   
UnicodeGeneralCategoryTPrivateUse :: UnicodeGeneralCategoryT

-- | 
--   
- Cs
--   
UnicodeGeneralCategoryTSurrogate :: UnicodeGeneralCategoryT

-- | 
--   
- Ll
--   
UnicodeGeneralCategoryTLowercaseLetter :: UnicodeGeneralCategoryT

-- | 
--   
- Lm
--   
UnicodeGeneralCategoryTModifierLetter :: UnicodeGeneralCategoryT

-- | 
--   
- Lo
--   
UnicodeGeneralCategoryTOtherLetter :: UnicodeGeneralCategoryT

-- | 
--   
- Lt
--   
UnicodeGeneralCategoryTTitlecaseLetter :: UnicodeGeneralCategoryT

-- | 
--   
- Lu
--   
UnicodeGeneralCategoryTUppercaseLetter :: UnicodeGeneralCategoryT

-- | 
--   
- Mc
--   
UnicodeGeneralCategoryTSpacingMark :: UnicodeGeneralCategoryT

-- | 
--   
- Me
--   
UnicodeGeneralCategoryTEnclosingMark :: UnicodeGeneralCategoryT

-- | 
--   
- Mn
--   
UnicodeGeneralCategoryTNonSpacingMark :: UnicodeGeneralCategoryT

-- | 
--   
- Nd
--   
UnicodeGeneralCategoryTDecimalNumber :: UnicodeGeneralCategoryT

-- | 
--   
- Nl
--   
UnicodeGeneralCategoryTLetterNumber :: UnicodeGeneralCategoryT

-- | 
--   
- No
--   
UnicodeGeneralCategoryTOtherNumber :: UnicodeGeneralCategoryT

-- | 
--   
- Pc
--   
UnicodeGeneralCategoryTConnectPunctuation :: UnicodeGeneralCategoryT

-- | 
--   
- Pd
--   
UnicodeGeneralCategoryTDashPunctuation :: UnicodeGeneralCategoryT

-- | 
--   
- Pe
--   
UnicodeGeneralCategoryTClosePunctuation :: UnicodeGeneralCategoryT

-- | 
--   
- Pf
--   
UnicodeGeneralCategoryTFinalPunctuation :: UnicodeGeneralCategoryT

-- | 
--   
- Pi
--   
UnicodeGeneralCategoryTInitialPunctuation :: UnicodeGeneralCategoryT

-- | 
--   
- Po
--   
UnicodeGeneralCategoryTOtherPunctuation :: UnicodeGeneralCategoryT

-- | 
--   
- Ps
--   
UnicodeGeneralCategoryTOpenPunctuation :: UnicodeGeneralCategoryT

-- | 
--   
- Sc
--   
UnicodeGeneralCategoryTCurrencySymbol :: UnicodeGeneralCategoryT

-- | 
--   
- Sk
--   
UnicodeGeneralCategoryTModifierSymbol :: UnicodeGeneralCategoryT

-- | 
--   
- Sm
--   
UnicodeGeneralCategoryTMathSymbol :: UnicodeGeneralCategoryT

-- | 
--   
- So
--   
UnicodeGeneralCategoryTOtherSymbol :: UnicodeGeneralCategoryT

-- | 
--   
- Zl
--   
UnicodeGeneralCategoryTLineSeparator :: UnicodeGeneralCategoryT

-- | 
--   
- Zp
--   
UnicodeGeneralCategoryTParagraphSeparator :: UnicodeGeneralCategoryT

-- | 
--   
- Zs
--   
UnicodeGeneralCategoryTSpaceSeparator :: UnicodeGeneralCategoryT

-- | Catch-all for unknown values
AnotherUnicodeGeneralCategoryT :: Int -> UnicodeGeneralCategoryT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.UnicodeGeneralCategoryT
instance GHC.Show.Show GI.HarfBuzz.Enums.UnicodeGeneralCategoryT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.UnicodeCombiningClassT
instance GHC.Show.Show GI.HarfBuzz.Enums.UnicodeCombiningClassT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.StyleTagT
instance GHC.Show.Show GI.HarfBuzz.Enums.StyleTagT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.ScriptT
instance GHC.Show.Show GI.HarfBuzz.Enums.ScriptT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.PaintExtendT
instance GHC.Show.Show GI.HarfBuzz.Enums.PaintExtendT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.PaintCompositeModeT
instance GHC.Show.Show GI.HarfBuzz.Enums.PaintCompositeModeT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.OtNameIdPredefinedT
instance GHC.Show.Show GI.HarfBuzz.Enums.OtNameIdPredefinedT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.OtMetricsTagT
instance GHC.Show.Show GI.HarfBuzz.Enums.OtMetricsTagT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.OtMetaTagT
instance GHC.Show.Show GI.HarfBuzz.Enums.OtMetaTagT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.OtMathKernT
instance GHC.Show.Show GI.HarfBuzz.Enums.OtMathKernT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.OtMathConstantT
instance GHC.Show.Show GI.HarfBuzz.Enums.OtMathConstantT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.OtLayoutGlyphClassT
instance GHC.Show.Show GI.HarfBuzz.Enums.OtLayoutGlyphClassT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.OtLayoutBaselineTagT
instance GHC.Show.Show GI.HarfBuzz.Enums.OtLayoutBaselineTagT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.MemoryModeT
instance GHC.Show.Show GI.HarfBuzz.Enums.MemoryModeT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.DirectionT
instance GHC.Show.Show GI.HarfBuzz.Enums.DirectionT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.BufferSerializeFormatT
instance GHC.Show.Show GI.HarfBuzz.Enums.BufferSerializeFormatT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.BufferContentTypeT
instance GHC.Show.Show GI.HarfBuzz.Enums.BufferContentTypeT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.BufferClusterLevelT
instance GHC.Show.Show GI.HarfBuzz.Enums.BufferClusterLevelT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.AatLayoutFeatureTypeT
instance GHC.Show.Show GI.HarfBuzz.Enums.AatLayoutFeatureTypeT
instance GHC.Classes.Eq GI.HarfBuzz.Enums.AatLayoutFeatureSelectorT
instance GHC.Show.Show GI.HarfBuzz.Enums.AatLayoutFeatureSelectorT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.AatLayoutFeatureSelectorT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.AatLayoutFeatureSelectorT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.AatLayoutFeatureSelectorT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.AatLayoutFeatureSelectorT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.AatLayoutFeatureSelectorT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.AatLayoutFeatureTypeT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.AatLayoutFeatureTypeT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.AatLayoutFeatureTypeT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.AatLayoutFeatureTypeT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.AatLayoutFeatureTypeT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.BufferClusterLevelT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.BufferClusterLevelT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.BufferClusterLevelT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.BufferClusterLevelT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.BufferClusterLevelT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.BufferContentTypeT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.BufferContentTypeT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.BufferContentTypeT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.BufferContentTypeT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.BufferContentTypeT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.BufferSerializeFormatT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.BufferSerializeFormatT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.BufferSerializeFormatT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.BufferSerializeFormatT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.BufferSerializeFormatT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.DirectionT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.DirectionT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.DirectionT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.DirectionT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.DirectionT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.MemoryModeT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.MemoryModeT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.MemoryModeT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.MemoryModeT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.MemoryModeT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.OtLayoutBaselineTagT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.OtLayoutBaselineTagT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.OtLayoutBaselineTagT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.OtLayoutBaselineTagT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.OtLayoutBaselineTagT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.OtLayoutGlyphClassT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.OtLayoutGlyphClassT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.OtLayoutGlyphClassT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.OtLayoutGlyphClassT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.OtLayoutGlyphClassT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.OtMathConstantT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.OtMathConstantT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.OtMathConstantT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.OtMathConstantT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.OtMathConstantT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.OtMathKernT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.OtMathKernT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.OtMathKernT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.OtMathKernT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.OtMathKernT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.OtMetaTagT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.OtMetaTagT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.OtMetaTagT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.OtMetaTagT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.OtMetaTagT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.OtMetricsTagT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.OtMetricsTagT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.OtMetricsTagT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.OtMetricsTagT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.OtMetricsTagT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.OtNameIdPredefinedT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.OtNameIdPredefinedT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.OtNameIdPredefinedT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.OtNameIdPredefinedT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.OtNameIdPredefinedT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.PaintCompositeModeT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.PaintCompositeModeT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.PaintCompositeModeT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.PaintCompositeModeT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.PaintCompositeModeT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.PaintExtendT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.PaintExtendT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.PaintExtendT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.PaintExtendT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.PaintExtendT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.ScriptT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.ScriptT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.ScriptT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.ScriptT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.ScriptT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.StyleTagT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.StyleTagT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.StyleTagT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.StyleTagT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.StyleTagT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.UnicodeCombiningClassT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.UnicodeCombiningClassT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.UnicodeCombiningClassT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.UnicodeCombiningClassT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.UnicodeCombiningClassT
instance GHC.Enum.Enum GI.HarfBuzz.Enums.UnicodeGeneralCategoryT
instance GHC.Classes.Ord GI.HarfBuzz.Enums.UnicodeGeneralCategoryT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Enums.UnicodeGeneralCategoryT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Enums.UnicodeGeneralCategoryT
instance Data.GI.Base.BasicTypes.BoxedEnum GI.HarfBuzz.Enums.UnicodeGeneralCategoryT

module GI.HarfBuzz.Flags

-- | Flags from comparing two BufferT's.
--   
--   Buffer with different BufferContentTypeT cannot be meaningfully
--   compared in any further detail.
--   
--   For buffers with differing length, the per-glyph comparison is not
--   attempted, though we do still scan reference buffer for dotted circle
--   and .notdef glyphs.
--   
--   If the buffers have the same length, we compare them glyph-by-glyph
--   and report which aspect(s) of the glyph info/position are different.
--   
--   Since: 1.5.0
data BufferDiffFlagsT

-- | equal buffers.
BufferDiffFlagsTEqual :: BufferDiffFlagsT

-- | buffers with different BufferContentTypeT.
BufferDiffFlagsTContentTypeMismatch :: BufferDiffFlagsT

-- | buffers with differing length.
BufferDiffFlagsTLengthMismatch :: BufferDiffFlagsT

-- | .notdef glyph is present in the reference buffer.
BufferDiffFlagsTNotdefPresent :: BufferDiffFlagsT

-- | dotted circle glyph is present in the reference buffer.
BufferDiffFlagsTDottedCirclePresent :: BufferDiffFlagsT

-- | difference in GlyphInfoT.codepoint
BufferDiffFlagsTCodepointMismatch :: BufferDiffFlagsT

-- | difference in GlyphInfoT.cluster
BufferDiffFlagsTClusterMismatch :: BufferDiffFlagsT

-- | difference in GlyphFlagsT.
BufferDiffFlagsTGlyphFlagsMismatch :: BufferDiffFlagsT

-- | difference in GlyphPositionT.
BufferDiffFlagsTPositionMismatch :: BufferDiffFlagsT

-- | Catch-all for unknown values
AnotherBufferDiffFlagsT :: Int -> BufferDiffFlagsT

-- | Flags for BufferT.
--   
--   Since: 0.9.20
data BufferFlagsT

-- | the default buffer flag.
BufferFlagsTDefault :: BufferFlagsT

-- | flag indicating that special handling of the beginning of text
--   paragraph can be applied to this buffer. Should usually be set, unless
--   you are passing to the buffer only part of the text without the full
--   context.
BufferFlagsTBot :: BufferFlagsT

-- | flag indicating that special handling of the end of text paragraph can
--   be applied to this buffer, similar to hBBUFFERFLAGBOT.
BufferFlagsTEot :: BufferFlagsT

-- | flag indication that character with Default_Ignorable Unicode property
--   should use the corresponding glyph from the font, instead of hiding
--   them (done by replacing them with the space glyph and zeroing the
--   advance width.) This flag takes precedence over
--   hBBUFFERFLAGREMOVEDEFAULTIGNORABLES.
BufferFlagsTPreserveDefaultIgnorables :: BufferFlagsT

-- | flag indication that character with Default_Ignorable Unicode property
--   should be removed from glyph string instead of hiding them (done by
--   replacing them with the space glyph and zeroing the advance width.)
--   hBBUFFERFLAGPRESERVEDEFAULTIGNORABLES takes precedence
--   over this flag. Since: 1.8.0
BufferFlagsTRemoveDefaultIgnorables :: BufferFlagsT

-- | flag indicating that a dotted circle should not be inserted in the
--   rendering of incorrect character sequences (such at <0905
--   093E>). Since: 2.4.0
BufferFlagsTDoNotInsertDottedCircle :: BufferFlagsT

-- | flag indicating that the shape call and its variants should
--   perform various verification processes on the results of the shaping
--   operation on the buffer. If the verification fails, then either a
--   buffer message is sent, if a message handler is installed on the
--   buffer, or a message is written to standard error. In either case, the
--   shaping result might be modified to show the failed output. Since:
--   3.4.0
BufferFlagsTVerify :: BufferFlagsT

-- | flag indicating that the hBGLYPHFLAGUNSAFETOCONCAT
--   glyph-flag should be produced by the shaper. By default it will not be
--   produced since it incurs a cost. Since: 4.0.0
BufferFlagsTProduceUnsafeToConcat :: BufferFlagsT

-- | flag indicating that the
--   hBGLYPHFLAGSAFETOINSERTTATWEEL glyph-flag should be
--   produced by the shaper. By default it will not be produced. Since:
--   5.1.0
BufferFlagsTProduceSafeToInsertTatweel :: BufferFlagsT

-- | All currently defined flags: Since: 4.4.0
BufferFlagsTDefined :: BufferFlagsT

-- | Catch-all for unknown values
AnotherBufferFlagsT :: Int -> BufferFlagsT

-- | Flags that control what glyph information are serialized in
--   bufferSerializeGlyphs.
--   
--   Since: 0.9.20
data BufferSerializeFlagsT

-- | serialize glyph names, clusters and positions.
BufferSerializeFlagsTDefault :: BufferSerializeFlagsT

-- | do not serialize glyph cluster.
BufferSerializeFlagsTNoClusters :: BufferSerializeFlagsT

-- | do not serialize glyph position information.
BufferSerializeFlagsTNoPositions :: BufferSerializeFlagsT

-- | do no serialize glyph name.
BufferSerializeFlagsTNoGlyphNames :: BufferSerializeFlagsT

-- | serialize glyph extents.
BufferSerializeFlagsTGlyphExtents :: BufferSerializeFlagsT

-- | serialize glyph flags. Since: 1.5.0
BufferSerializeFlagsTGlyphFlags :: BufferSerializeFlagsT

-- | do not serialize glyph advances, glyph offsets will reflect absolute
--   glyph positions. Since: 1.8.0
BufferSerializeFlagsTNoAdvances :: BufferSerializeFlagsT

-- | All currently defined flags. Since: 4.4.0
BufferSerializeFlagsTDefined :: BufferSerializeFlagsT

-- | Catch-all for unknown values
AnotherBufferSerializeFlagsT :: Int -> BufferSerializeFlagsT

-- | Flags for GlyphInfoT.
--   
--   Since: 1.5.0
data GlyphFlagsT

-- | Indicates that if input text is broken at the beginning of the cluster
--   this glyph is part of, then both sides need to be re-shaped, as the
--   result might be different. On the flip side, it means that when this
--   flag is not present, then it is safe to break the glyph-run at the
--   beginning of this cluster, and the two sides will represent the exact
--   same result one would get if breaking input text at the beginning of
--   this cluster and shaping the two sides separately. This can be used to
--   optimize paragraph layout, by avoiding re-shaping of each line after
--   line-breaking.
GlyphFlagsTUnsafeToBreak :: GlyphFlagsT

-- | Indicates that if input text is changed on one side of the beginning
--   of the cluster this glyph is part of, then the shaping results for the
--   other side might change. Note that the absence of this flag will NOT
--   by itself mean that it IS safe to concat text. Only two pieces of text
--   both of which clear of this flag can be concatenated safely. This can
--   be used to optimize paragraph layout, by avoiding re-shaping of each
--   line after line-breaking, by limiting the reshaping to a small piece
--   around the breaking position only, even if the breaking position
--   carries the HB_GLYPH_FLAG_UNSAFE_TO_BREAK or when
--   hyphenation or other text transformation happens at line-break
--   position, in the following way: 1. Iterate back from the line-break
--   position until the first cluster start position that is NOT
--   unsafe-to-concat, 2. shape the segment from there till the end of
--   line, 3. check whether the resulting glyph-run also is clear of the
--   unsafe-to-concat at its start-of-text position; if it is, just splice
--   it into place and the line is shaped; If not, move on to a position
--   further back that is clear of unsafe-to-concat and retry from there,
--   and repeat. At the start of next line a similar algorithm can be
--   implemented. That is: 1. Iterate forward from the line-break position
--   until the first cluster start position that is NOT unsafe-to-concat,
--   2. shape the segment from beginning of the line to that position, 3.
--   check whether the resulting glyph-run also is clear of the
--   unsafe-to-concat at its end-of-text position; if it is, just splice it
--   into place and the beginning is shaped; If not, move on to a position
--   further forward that is clear of unsafe-to-concat and retry up to
--   there, and repeat. A slight complication will arise in the
--   implementation of the algorithm above, because while our buffer API
--   has a way to return flags for position corresponding to start-of-text,
--   there is currently no position corresponding to end-of-text. This
--   limitation can be alleviated by shaping more text than needed and
--   looking for unsafe-to-concat flag within text clusters. The
--   HB_GLYPH_FLAG_UNSAFE_TO_BREAK flag will always imply
--   this flag. To use this flag, you must enable the buffer flag
--   hBBUFFERFLAGPRODUCEUNSAFETOCONCAT during shaping,
--   otherwise the buffer flag will not be reliably produced. Since: 4.0.0
GlyphFlagsTUnsafeToConcat :: GlyphFlagsT

-- | In scripts that use elongation (Arabic, Mongolian, Syriac, etc.), this
--   flag signifies that it is safe to insert a U+0640 TATWEEL character
--   before this cluster for elongation. This flag does not determine the
--   script-specific elongation places, but only when it is safe to do the
--   elongation without interrupting text shaping. Since: 5.1.0
GlyphFlagsTSafeToInsertTatweel :: GlyphFlagsT

-- | All the currently defined flags.
GlyphFlagsTDefined :: GlyphFlagsT

-- | Catch-all for unknown values
AnotherGlyphFlagsT :: Int -> GlyphFlagsT

-- | Flags that describe the properties of color palette.
--   
--   Since: 2.1.0
data OtColorPaletteFlagsT

-- | Default indicating that there is nothing special to note about a color
--   palette.
OtColorPaletteFlagsTDefault :: OtColorPaletteFlagsT

-- | Flag indicating that the color palette is appropriate to use when
--   displaying the font on a light background such as white.
OtColorPaletteFlagsTUsableWithLightBackground :: OtColorPaletteFlagsT

-- | Flag indicating that the color palette is appropriate to use when
--   displaying the font on a dark background such as black.
OtColorPaletteFlagsTUsableWithDarkBackground :: OtColorPaletteFlagsT

-- | Catch-all for unknown values
AnotherOtColorPaletteFlagsT :: Int -> OtColorPaletteFlagsT

-- | Flags for math glyph parts.
--   
--   Since: 1.3.3
data OtMathGlyphPartFlagsT

-- | This is an extender glyph part that can be repeated to reach the
--   desired length.
OtMathGlyphPartFlagsTExtender :: OtMathGlyphPartFlagsT

-- | Catch-all for unknown values
AnotherOtMathGlyphPartFlagsT :: Int -> OtMathGlyphPartFlagsT

-- | Flags for OtVarAxisInfoT.
--   
--   Since: 2.2.0
data OtVarAxisFlagsT

-- | The axis should not be exposed directly in user interfaces.
OtVarAxisFlagsTHidden :: OtVarAxisFlagsT

-- | Catch-all for unknown values
AnotherOtVarAxisFlagsT :: Int -> OtVarAxisFlagsT
instance GHC.Classes.Eq GI.HarfBuzz.Flags.OtVarAxisFlagsT
instance GHC.Show.Show GI.HarfBuzz.Flags.OtVarAxisFlagsT
instance GHC.Classes.Eq GI.HarfBuzz.Flags.OtMathGlyphPartFlagsT
instance GHC.Show.Show GI.HarfBuzz.Flags.OtMathGlyphPartFlagsT
instance GHC.Classes.Eq GI.HarfBuzz.Flags.OtColorPaletteFlagsT
instance GHC.Show.Show GI.HarfBuzz.Flags.OtColorPaletteFlagsT
instance GHC.Classes.Eq GI.HarfBuzz.Flags.GlyphFlagsT
instance GHC.Show.Show GI.HarfBuzz.Flags.GlyphFlagsT
instance GHC.Classes.Eq GI.HarfBuzz.Flags.BufferSerializeFlagsT
instance GHC.Show.Show GI.HarfBuzz.Flags.BufferSerializeFlagsT
instance GHC.Classes.Eq GI.HarfBuzz.Flags.BufferFlagsT
instance GHC.Show.Show GI.HarfBuzz.Flags.BufferFlagsT
instance GHC.Classes.Eq GI.HarfBuzz.Flags.BufferDiffFlagsT
instance GHC.Show.Show GI.HarfBuzz.Flags.BufferDiffFlagsT
instance GHC.Enum.Enum GI.HarfBuzz.Flags.BufferDiffFlagsT
instance GHC.Classes.Ord GI.HarfBuzz.Flags.BufferDiffFlagsT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Flags.BufferDiffFlagsT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Flags.BufferDiffFlagsT
instance Data.GI.Base.BasicTypes.BoxedFlags GI.HarfBuzz.Flags.BufferDiffFlagsT
instance Data.GI.Base.BasicTypes.IsGFlag GI.HarfBuzz.Flags.BufferDiffFlagsT
instance GHC.Enum.Enum GI.HarfBuzz.Flags.BufferFlagsT
instance GHC.Classes.Ord GI.HarfBuzz.Flags.BufferFlagsT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Flags.BufferFlagsT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Flags.BufferFlagsT
instance Data.GI.Base.BasicTypes.BoxedFlags GI.HarfBuzz.Flags.BufferFlagsT
instance Data.GI.Base.BasicTypes.IsGFlag GI.HarfBuzz.Flags.BufferFlagsT
instance GHC.Enum.Enum GI.HarfBuzz.Flags.BufferSerializeFlagsT
instance GHC.Classes.Ord GI.HarfBuzz.Flags.BufferSerializeFlagsT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Flags.BufferSerializeFlagsT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Flags.BufferSerializeFlagsT
instance Data.GI.Base.BasicTypes.BoxedFlags GI.HarfBuzz.Flags.BufferSerializeFlagsT
instance Data.GI.Base.BasicTypes.IsGFlag GI.HarfBuzz.Flags.BufferSerializeFlagsT
instance GHC.Enum.Enum GI.HarfBuzz.Flags.GlyphFlagsT
instance GHC.Classes.Ord GI.HarfBuzz.Flags.GlyphFlagsT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Flags.GlyphFlagsT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Flags.GlyphFlagsT
instance Data.GI.Base.BasicTypes.BoxedFlags GI.HarfBuzz.Flags.GlyphFlagsT
instance Data.GI.Base.BasicTypes.IsGFlag GI.HarfBuzz.Flags.GlyphFlagsT
instance GHC.Enum.Enum GI.HarfBuzz.Flags.OtColorPaletteFlagsT
instance GHC.Classes.Ord GI.HarfBuzz.Flags.OtColorPaletteFlagsT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Flags.OtColorPaletteFlagsT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Flags.OtColorPaletteFlagsT
instance Data.GI.Base.BasicTypes.BoxedFlags GI.HarfBuzz.Flags.OtColorPaletteFlagsT
instance Data.GI.Base.BasicTypes.IsGFlag GI.HarfBuzz.Flags.OtColorPaletteFlagsT
instance GHC.Enum.Enum GI.HarfBuzz.Flags.OtMathGlyphPartFlagsT
instance GHC.Classes.Ord GI.HarfBuzz.Flags.OtMathGlyphPartFlagsT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Flags.OtMathGlyphPartFlagsT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Flags.OtMathGlyphPartFlagsT
instance Data.GI.Base.BasicTypes.BoxedFlags GI.HarfBuzz.Flags.OtMathGlyphPartFlagsT
instance Data.GI.Base.BasicTypes.IsGFlag GI.HarfBuzz.Flags.OtMathGlyphPartFlagsT
instance GHC.Enum.Enum GI.HarfBuzz.Flags.OtVarAxisFlagsT
instance GHC.Classes.Ord GI.HarfBuzz.Flags.OtVarAxisFlagsT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Flags.OtVarAxisFlagsT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Flags.OtVarAxisFlagsT
instance Data.GI.Base.BasicTypes.BoxedFlags GI.HarfBuzz.Flags.OtVarAxisFlagsT
instance Data.GI.Base.BasicTypes.IsGFlag GI.HarfBuzz.Flags.OtVarAxisFlagsT

-- | Structure representing a setting for an AatLayoutFeatureTypeT.
module GI.HarfBuzz.Structs.AatLayoutFeatureSelectorInfoT

-- | Memory-managed wrapper type.
newtype AatLayoutFeatureSelectorInfoT
AatLayoutFeatureSelectorInfoT :: ManagedPtr AatLayoutFeatureSelectorInfoT -> AatLayoutFeatureSelectorInfoT

-- | Construct a AatLayoutFeatureSelectorInfoT struct initialized to
--   zero.
newZeroAatLayoutFeatureSelectorInfoT :: MonadIO m => m AatLayoutFeatureSelectorInfoT

-- | Get the value of the “disable” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get aatLayoutFeatureSelectorInfoT #disable
--   
getAatLayoutFeatureSelectorInfoTDisable :: MonadIO m => AatLayoutFeatureSelectorInfoT -> m AatLayoutFeatureSelectorT

-- | Set the value of the “disable” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set aatLayoutFeatureSelectorInfoT [ #disable := value ]
--   
setAatLayoutFeatureSelectorInfoTDisable :: MonadIO m => AatLayoutFeatureSelectorInfoT -> AatLayoutFeatureSelectorT -> m ()

-- | Get the value of the “enable” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get aatLayoutFeatureSelectorInfoT #enable
--   
getAatLayoutFeatureSelectorInfoTEnable :: MonadIO m => AatLayoutFeatureSelectorInfoT -> m AatLayoutFeatureSelectorT

-- | Set the value of the “enable” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set aatLayoutFeatureSelectorInfoT [ #enable := value ]
--   
setAatLayoutFeatureSelectorInfoTEnable :: MonadIO m => AatLayoutFeatureSelectorInfoT -> AatLayoutFeatureSelectorT -> m ()

-- | Get the value of the “name_id” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get aatLayoutFeatureSelectorInfoT #nameId
--   
getAatLayoutFeatureSelectorInfoTNameId :: MonadIO m => AatLayoutFeatureSelectorInfoT -> m Word32

-- | Set the value of the “name_id” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set aatLayoutFeatureSelectorInfoT [ #nameId := value ]
--   
setAatLayoutFeatureSelectorInfoTNameId :: MonadIO m => AatLayoutFeatureSelectorInfoT -> Word32 -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.AatLayoutFeatureSelectorInfoT.AatLayoutFeatureSelectorInfoT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.AatLayoutFeatureSelectorInfoT.AatLayoutFeatureSelectorInfoT
instance Data.GI.Base.BasicTypes.BoxedPtr GI.HarfBuzz.Structs.AatLayoutFeatureSelectorInfoT.AatLayoutFeatureSelectorInfoT
instance Data.GI.Base.BasicTypes.CallocPtr GI.HarfBuzz.Structs.AatLayoutFeatureSelectorInfoT.AatLayoutFeatureSelectorInfoT
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.AatLayoutFeatureSelectorInfoT.AatLayoutFeatureSelectorInfoT tag

-- | Data type for blobs. A blob wraps a chunk of binary data and
--   facilitates its lifecycle management between a client program and
--   HarfBuzz.
module GI.HarfBuzz.Structs.BlobT

-- | Memory-managed wrapper type.
newtype BlobT
BlobT :: ManagedPtr BlobT -> BlobT
instance GHC.Classes.Eq GI.HarfBuzz.Structs.BlobT.BlobT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.BlobT.BlobT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.BlobT.BlobT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.BlobT.BlobT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.BlobT.BlobT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.BlobT.BlobT)

-- | The main structure holding the input text and its properties before
--   shaping, and output glyphs and their information after shaping.
module GI.HarfBuzz.Structs.BufferT

-- | Memory-managed wrapper type.
newtype BufferT
BufferT :: ManagedPtr BufferT -> BufferT
instance GHC.Classes.Eq GI.HarfBuzz.Structs.BufferT.BufferT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.BufferT.BufferT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.BufferT.BufferT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.BufferT.BufferT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.BufferT.BufferT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.BufferT.BufferT)

-- | Information about a color stop on a color line.
--   
--   Color lines typically have offsets ranging between 0 and 1, but that
--   is not required.
--   
--   Note: despite color being unpremultiplied here,
--   interpolation in gradients shall happen in premultiplied space. See
--   the OpenType spec COLR section for details.
--   
--   Since: 7.0.0
module GI.HarfBuzz.Structs.ColorStopT

-- | Memory-managed wrapper type.
newtype ColorStopT
ColorStopT :: ManagedPtr ColorStopT -> ColorStopT

-- | Construct a ColorStopT struct initialized to zero.
newZeroColorStopT :: MonadIO m => m ColorStopT

-- | Get the value of the “color” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get colorStopT #color
--   
getColorStopTColor :: MonadIO m => ColorStopT -> m Word32

-- | Set the value of the “color” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set colorStopT [ #color := value ]
--   
setColorStopTColor :: MonadIO m => ColorStopT -> Word32 -> m ()

-- | Get the value of the “is_foreground” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorStopT #isForeground
--   
getColorStopTIsForeground :: MonadIO m => ColorStopT -> m Int32

-- | Set the value of the “is_foreground” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorStopT [ #isForeground := value ]
--   
setColorStopTIsForeground :: MonadIO m => ColorStopT -> Int32 -> m ()

-- | Get the value of the “offset” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get colorStopT #offset
--   
getColorStopTOffset :: MonadIO m => ColorStopT -> m Float

-- | Set the value of the “offset” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set colorStopT [ #offset := value ]
--   
setColorStopTOffset :: MonadIO m => ColorStopT -> Float -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.ColorStopT.ColorStopT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.ColorStopT.ColorStopT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.ColorStopT.ColorStopT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.ColorStopT.ColorStopT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.ColorStopT.ColorStopT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.ColorStopT.ColorStopT)
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.ColorStopT.ColorStopT tag

-- | Glyph draw callbacks.
--   
--   DrawMoveToFuncT, DrawLineToFuncT and
--   DrawCubicToFuncT calls are necessary to be defined but we
--   translate DrawQuadraticToFuncT calls to DrawCubicToFuncT
--   if the callback isn't defined.
--   
--   Since: 4.0.0
module GI.HarfBuzz.Structs.DrawFuncsT

-- | Memory-managed wrapper type.
newtype DrawFuncsT
DrawFuncsT :: ManagedPtr DrawFuncsT -> DrawFuncsT
instance GHC.Classes.Eq GI.HarfBuzz.Structs.DrawFuncsT.DrawFuncsT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.DrawFuncsT.DrawFuncsT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.DrawFuncsT.DrawFuncsT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.DrawFuncsT.DrawFuncsT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.DrawFuncsT.DrawFuncsT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.DrawFuncsT.DrawFuncsT)

-- | Current drawing state.
--   
--   Since: 4.0.0
module GI.HarfBuzz.Structs.DrawStateT

-- | Memory-managed wrapper type.
newtype DrawStateT
DrawStateT :: ManagedPtr DrawStateT -> DrawStateT

-- | Construct a DrawStateT struct initialized to zero.
newZeroDrawStateT :: MonadIO m => m DrawStateT

-- | Get the value of the “current_x” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get drawStateT #currentX
--   
getDrawStateTCurrentX :: MonadIO m => DrawStateT -> m Float

-- | Set the value of the “current_x” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set drawStateT [ #currentX := value ]
--   
setDrawStateTCurrentX :: MonadIO m => DrawStateT -> Float -> m ()

-- | Get the value of the “current_y” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get drawStateT #currentY
--   
getDrawStateTCurrentY :: MonadIO m => DrawStateT -> m Float

-- | Set the value of the “current_y” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set drawStateT [ #currentY := value ]
--   
setDrawStateTCurrentY :: MonadIO m => DrawStateT -> Float -> m ()

-- | Get the value of the “path_open” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get drawStateT #pathOpen
--   
getDrawStateTPathOpen :: MonadIO m => DrawStateT -> m Int32

-- | Set the value of the “path_open” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set drawStateT [ #pathOpen := value ]
--   
setDrawStateTPathOpen :: MonadIO m => DrawStateT -> Int32 -> m ()

-- | Get the value of the “path_start_x” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get drawStateT #pathStartX
--   
getDrawStateTPathStartX :: MonadIO m => DrawStateT -> m Float

-- | Set the value of the “path_start_x” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set drawStateT [ #pathStartX := value ]
--   
setDrawStateTPathStartX :: MonadIO m => DrawStateT -> Float -> m ()

-- | Get the value of the “path_start_y” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get drawStateT #pathStartY
--   
getDrawStateTPathStartY :: MonadIO m => DrawStateT -> m Float

-- | Set the value of the “path_start_y” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set drawStateT [ #pathStartY := value ]
--   
setDrawStateTPathStartY :: MonadIO m => DrawStateT -> Float -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.DrawStateT.DrawStateT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.DrawStateT.DrawStateT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.DrawStateT.DrawStateT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.DrawStateT.DrawStateT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.DrawStateT.DrawStateT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.DrawStateT.DrawStateT)
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.DrawStateT.DrawStateT tag

-- | Data type for holding font faces.
module GI.HarfBuzz.Structs.FaceT

-- | Memory-managed wrapper type.
newtype FaceT
FaceT :: ManagedPtr FaceT -> FaceT
instance GHC.Classes.Eq GI.HarfBuzz.Structs.FaceT.FaceT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.FaceT.FaceT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.FaceT.FaceT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.FaceT.FaceT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.FaceT.FaceT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.FaceT.FaceT)

-- | The FeatureT is the structure that holds information about
--   requested feature application. The feature will be applied with the
--   given value to all glyphs which are in clusters between
--   start (inclusive) and end (exclusive).
--   Setting start to FEATURE_GLOBAL_START and end to
--   HB_FEATURE_GLOBAL_END specifies that the feature
--   always applies to the entire buffer.
module GI.HarfBuzz.Structs.FeatureT

-- | Memory-managed wrapper type.
newtype FeatureT
FeatureT :: ManagedPtr FeatureT -> FeatureT

-- | Construct a FeatureT struct initialized to zero.
newZeroFeatureT :: MonadIO m => m FeatureT

-- | Get the value of the “end” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get featureT #end
--   
getFeatureTEnd :: MonadIO m => FeatureT -> m Word32

-- | Set the value of the “end” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set featureT [ #end := value ]
--   
setFeatureTEnd :: MonadIO m => FeatureT -> Word32 -> m ()

-- | Get the value of the “start” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get featureT #start
--   
getFeatureTStart :: MonadIO m => FeatureT -> m Word32

-- | Set the value of the “start” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set featureT [ #start := value ]
--   
setFeatureTStart :: MonadIO m => FeatureT -> Word32 -> m ()

-- | Get the value of the “tag” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get featureT #tag
--   
getFeatureTTag :: MonadIO m => FeatureT -> m Word32

-- | Set the value of the “tag” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set featureT [ #tag := value ]
--   
setFeatureTTag :: MonadIO m => FeatureT -> Word32 -> m ()

-- | Get the value of the “value” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get featureT #value
--   
getFeatureTValue :: MonadIO m => FeatureT -> m Word32

-- | Set the value of the “value” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set featureT [ #value := value ]
--   
setFeatureTValue :: MonadIO m => FeatureT -> Word32 -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.FeatureT.FeatureT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.FeatureT.FeatureT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.FeatureT.FeatureT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.FeatureT.FeatureT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.FeatureT.FeatureT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.FeatureT.FeatureT)
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.FeatureT.FeatureT tag

-- | Font-wide extent values, measured in font units.
--   
--   Note that typically ascender is positive and
--   descender negative, in coordinate systems that grow
--   up.
module GI.HarfBuzz.Structs.FontExtentsT

-- | Memory-managed wrapper type.
newtype FontExtentsT
FontExtentsT :: ManagedPtr FontExtentsT -> FontExtentsT

-- | Construct a FontExtentsT struct initialized to zero.
newZeroFontExtentsT :: MonadIO m => m FontExtentsT

-- | Get the value of the “ascender” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontExtentsT #ascender
--   
getFontExtentsTAscender :: MonadIO m => FontExtentsT -> m Int32

-- | Set the value of the “ascender” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontExtentsT [ #ascender := value ]
--   
setFontExtentsTAscender :: MonadIO m => FontExtentsT -> Int32 -> m ()

-- | Get the value of the “descender” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontExtentsT #descender
--   
getFontExtentsTDescender :: MonadIO m => FontExtentsT -> m Int32

-- | Set the value of the “descender” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontExtentsT [ #descender := value ]
--   
setFontExtentsTDescender :: MonadIO m => FontExtentsT -> Int32 -> m ()

-- | Get the value of the “line_gap” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontExtentsT #lineGap
--   
getFontExtentsTLineGap :: MonadIO m => FontExtentsT -> m Int32

-- | Set the value of the “line_gap” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontExtentsT [ #lineGap := value ]
--   
setFontExtentsTLineGap :: MonadIO m => FontExtentsT -> Int32 -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.FontExtentsT.FontExtentsT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.FontExtentsT.FontExtentsT
instance Data.GI.Base.BasicTypes.BoxedPtr GI.HarfBuzz.Structs.FontExtentsT.FontExtentsT
instance Data.GI.Base.BasicTypes.CallocPtr GI.HarfBuzz.Structs.FontExtentsT.FontExtentsT
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.FontExtentsT.FontExtentsT tag

-- | Data type containing a set of virtual methods used for working on
--   FontT font objects.
--   
--   HarfBuzz provides a lightweight default function for each of the
--   methods in FontFuncsT. Client programs can implement their own
--   replacements for the individual font functions, as needed, and replace
--   the default by calling the setter for a method.
module GI.HarfBuzz.Structs.FontFuncsT

-- | Memory-managed wrapper type.
newtype FontFuncsT
FontFuncsT :: ManagedPtr FontFuncsT -> FontFuncsT
instance GHC.Classes.Eq GI.HarfBuzz.Structs.FontFuncsT.FontFuncsT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.FontFuncsT.FontFuncsT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.FontFuncsT.FontFuncsT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.FontFuncsT.FontFuncsT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.FontFuncsT.FontFuncsT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.FontFuncsT.FontFuncsT)

-- | Data type for holding fonts.
module GI.HarfBuzz.Structs.FontT

-- | Memory-managed wrapper type.
newtype FontT
FontT :: ManagedPtr FontT -> FontT
instance GHC.Classes.Eq GI.HarfBuzz.Structs.FontT.FontT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.FontT.FontT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.FontT.FontT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.FontT.FontT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.FontT.FontT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.FontT.FontT)

-- | Glyph extent values, measured in font units.
--   
--   Note that height is negative, in coordinate systems
--   that grow up.
module GI.HarfBuzz.Structs.GlyphExtentsT

-- | Memory-managed wrapper type.
newtype GlyphExtentsT
GlyphExtentsT :: ManagedPtr GlyphExtentsT -> GlyphExtentsT

-- | Construct a GlyphExtentsT struct initialized to zero.
newZeroGlyphExtentsT :: MonadIO m => m GlyphExtentsT

-- | Get the value of the “height” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get glyphExtentsT #height
--   
getGlyphExtentsTHeight :: MonadIO m => GlyphExtentsT -> m Int32

-- | Set the value of the “height” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set glyphExtentsT [ #height := value ]
--   
setGlyphExtentsTHeight :: MonadIO m => GlyphExtentsT -> Int32 -> m ()

-- | Get the value of the “width” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get glyphExtentsT #width
--   
getGlyphExtentsTWidth :: MonadIO m => GlyphExtentsT -> m Int32

-- | Set the value of the “width” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set glyphExtentsT [ #width := value ]
--   
setGlyphExtentsTWidth :: MonadIO m => GlyphExtentsT -> Int32 -> m ()

-- | Get the value of the “x_bearing” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get glyphExtentsT #xBearing
--   
getGlyphExtentsTXBearing :: MonadIO m => GlyphExtentsT -> m Int32

-- | Set the value of the “x_bearing” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set glyphExtentsT [ #xBearing := value ]
--   
setGlyphExtentsTXBearing :: MonadIO m => GlyphExtentsT -> Int32 -> m ()

-- | Get the value of the “y_bearing” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get glyphExtentsT #yBearing
--   
getGlyphExtentsTYBearing :: MonadIO m => GlyphExtentsT -> m Int32

-- | Set the value of the “y_bearing” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set glyphExtentsT [ #yBearing := value ]
--   
setGlyphExtentsTYBearing :: MonadIO m => GlyphExtentsT -> Int32 -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.GlyphExtentsT.GlyphExtentsT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.GlyphExtentsT.GlyphExtentsT
instance Data.GI.Base.BasicTypes.BoxedPtr GI.HarfBuzz.Structs.GlyphExtentsT.GlyphExtentsT
instance Data.GI.Base.BasicTypes.CallocPtr GI.HarfBuzz.Structs.GlyphExtentsT.GlyphExtentsT
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.GlyphExtentsT.GlyphExtentsT tag

-- | The GlyphInfoT is the structure that holds information about
--   the glyphs and their relation to input text.
module GI.HarfBuzz.Structs.GlyphInfoT

-- | Memory-managed wrapper type.
newtype GlyphInfoT
GlyphInfoT :: ManagedPtr GlyphInfoT -> GlyphInfoT

-- | Construct a GlyphInfoT struct initialized to zero.
newZeroGlyphInfoT :: MonadIO m => m GlyphInfoT

-- | Get the value of the “cluster” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get glyphInfoT #cluster
--   
getGlyphInfoTCluster :: MonadIO m => GlyphInfoT -> m Word32

-- | Set the value of the “cluster” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set glyphInfoT [ #cluster := value ]
--   
setGlyphInfoTCluster :: MonadIO m => GlyphInfoT -> Word32 -> m ()

-- | Get the value of the “codepoint” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get glyphInfoT #codepoint
--   
getGlyphInfoTCodepoint :: MonadIO m => GlyphInfoT -> m Word32

-- | Set the value of the “codepoint” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set glyphInfoT [ #codepoint := value ]
--   
setGlyphInfoTCodepoint :: MonadIO m => GlyphInfoT -> Word32 -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.GlyphInfoT.GlyphInfoT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.GlyphInfoT.GlyphInfoT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.GlyphInfoT.GlyphInfoT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.GlyphInfoT.GlyphInfoT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.GlyphInfoT.GlyphInfoT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.GlyphInfoT.GlyphInfoT)
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.GlyphInfoT.GlyphInfoT tag

-- | The GlyphPositionT is the structure that holds the positions of
--   the glyph in both horizontal and vertical directions. All positions in
--   GlyphPositionT are relative to the current point.
module GI.HarfBuzz.Structs.GlyphPositionT

-- | Memory-managed wrapper type.
newtype GlyphPositionT
GlyphPositionT :: ManagedPtr GlyphPositionT -> GlyphPositionT

-- | Construct a GlyphPositionT struct initialized to zero.
newZeroGlyphPositionT :: MonadIO m => m GlyphPositionT

-- | Get the value of the “x_advance” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get glyphPositionT #xAdvance
--   
getGlyphPositionTXAdvance :: MonadIO m => GlyphPositionT -> m Int32

-- | Set the value of the “x_advance” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set glyphPositionT [ #xAdvance := value ]
--   
setGlyphPositionTXAdvance :: MonadIO m => GlyphPositionT -> Int32 -> m ()

-- | Get the value of the “x_offset” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get glyphPositionT #xOffset
--   
getGlyphPositionTXOffset :: MonadIO m => GlyphPositionT -> m Int32

-- | Set the value of the “x_offset” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set glyphPositionT [ #xOffset := value ]
--   
setGlyphPositionTXOffset :: MonadIO m => GlyphPositionT -> Int32 -> m ()

-- | Get the value of the “y_advance” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get glyphPositionT #yAdvance
--   
getGlyphPositionTYAdvance :: MonadIO m => GlyphPositionT -> m Int32

-- | Set the value of the “y_advance” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set glyphPositionT [ #yAdvance := value ]
--   
setGlyphPositionTYAdvance :: MonadIO m => GlyphPositionT -> Int32 -> m ()

-- | Get the value of the “y_offset” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get glyphPositionT #yOffset
--   
getGlyphPositionTYOffset :: MonadIO m => GlyphPositionT -> m Int32

-- | Set the value of the “y_offset” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set glyphPositionT [ #yOffset := value ]
--   
setGlyphPositionTYOffset :: MonadIO m => GlyphPositionT -> Int32 -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.GlyphPositionT.GlyphPositionT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.GlyphPositionT.GlyphPositionT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.GlyphPositionT.GlyphPositionT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.GlyphPositionT.GlyphPositionT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.GlyphPositionT.GlyphPositionT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.GlyphPositionT.GlyphPositionT)
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.GlyphPositionT.GlyphPositionT tag

-- | Data type for languages. Each LanguageT corresponds to a BCP 47
--   language tag.
module GI.HarfBuzz.Structs.LanguageT

-- | Memory-managed wrapper type.
newtype LanguageT
LanguageT :: ManagedPtr LanguageT -> LanguageT
instance GHC.Classes.Eq GI.HarfBuzz.Structs.LanguageT.LanguageT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.LanguageT.LanguageT
instance Data.GI.Base.BasicTypes.BoxedPtr GI.HarfBuzz.Structs.LanguageT.LanguageT

-- | Data type for holding integer-to-integer hash maps.
module GI.HarfBuzz.Structs.MapT

-- | Memory-managed wrapper type.
newtype MapT
MapT :: ManagedPtr MapT -> MapT
instance GHC.Classes.Eq GI.HarfBuzz.Structs.MapT.MapT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.MapT.MapT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.MapT.MapT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.MapT.MapT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.MapT.MapT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.MapT.MapT)

-- | Pairs of glyph and color index.
--   
--   A color index of 0xFFFF does not refer to a palette color, but
--   indicates that the foreground color should be used.
--   
--   Since: 2.1.0
module GI.HarfBuzz.Structs.OtColorLayerT

-- | Memory-managed wrapper type.
newtype OtColorLayerT
OtColorLayerT :: ManagedPtr OtColorLayerT -> OtColorLayerT

-- | Construct a OtColorLayerT struct initialized to zero.
newZeroOtColorLayerT :: MonadIO m => m OtColorLayerT

-- | Get the value of the “color_index” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get otColorLayerT #colorIndex
--   
getOtColorLayerTColorIndex :: MonadIO m => OtColorLayerT -> m Word32

-- | Set the value of the “color_index” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set otColorLayerT [ #colorIndex := value ]
--   
setOtColorLayerTColorIndex :: MonadIO m => OtColorLayerT -> Word32 -> m ()

-- | Get the value of the “glyph” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get otColorLayerT #glyph
--   
getOtColorLayerTGlyph :: MonadIO m => OtColorLayerT -> m Word32

-- | Set the value of the “glyph” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set otColorLayerT [ #glyph := value ]
--   
setOtColorLayerTGlyph :: MonadIO m => OtColorLayerT -> Word32 -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.OtColorLayerT.OtColorLayerT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.OtColorLayerT.OtColorLayerT
instance Data.GI.Base.BasicTypes.BoxedPtr GI.HarfBuzz.Structs.OtColorLayerT.OtColorLayerT
instance Data.GI.Base.BasicTypes.CallocPtr GI.HarfBuzz.Structs.OtColorLayerT.OtColorLayerT
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.OtColorLayerT.OtColorLayerT tag

-- | Data type to hold information for a "part" component of a math-variant
--   glyph. Large variants for stretchable math glyphs (such as
--   parentheses) can be constructed on the fly from parts.
--   
--   Since: 1.3.3
module GI.HarfBuzz.Structs.OtMathGlyphPartT

-- | Memory-managed wrapper type.
newtype OtMathGlyphPartT
OtMathGlyphPartT :: ManagedPtr OtMathGlyphPartT -> OtMathGlyphPartT

-- | Construct a OtMathGlyphPartT struct initialized to zero.
newZeroOtMathGlyphPartT :: MonadIO m => m OtMathGlyphPartT

-- | Get the value of the “end_connector_length” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get otMathGlyphPartT #endConnectorLength
--   
getOtMathGlyphPartTEndConnectorLength :: MonadIO m => OtMathGlyphPartT -> m Int32

-- | Set the value of the “end_connector_length” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set otMathGlyphPartT [ #endConnectorLength := value ]
--   
setOtMathGlyphPartTEndConnectorLength :: MonadIO m => OtMathGlyphPartT -> Int32 -> m ()

-- | Get the value of the “flags” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get otMathGlyphPartT #flags
--   
getOtMathGlyphPartTFlags :: MonadIO m => OtMathGlyphPartT -> m [OtMathGlyphPartFlagsT]

-- | Set the value of the “flags” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set otMathGlyphPartT [ #flags := value ]
--   
setOtMathGlyphPartTFlags :: MonadIO m => OtMathGlyphPartT -> [OtMathGlyphPartFlagsT] -> m ()

-- | Get the value of the “full_advance” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get otMathGlyphPartT #fullAdvance
--   
getOtMathGlyphPartTFullAdvance :: MonadIO m => OtMathGlyphPartT -> m Int32

-- | Set the value of the “full_advance” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set otMathGlyphPartT [ #fullAdvance := value ]
--   
setOtMathGlyphPartTFullAdvance :: MonadIO m => OtMathGlyphPartT -> Int32 -> m ()

-- | Get the value of the “glyph” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get otMathGlyphPartT #glyph
--   
getOtMathGlyphPartTGlyph :: MonadIO m => OtMathGlyphPartT -> m Word32

-- | Set the value of the “glyph” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set otMathGlyphPartT [ #glyph := value ]
--   
setOtMathGlyphPartTGlyph :: MonadIO m => OtMathGlyphPartT -> Word32 -> m ()

-- | Get the value of the “start_connector_length” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get otMathGlyphPartT #startConnectorLength
--   
getOtMathGlyphPartTStartConnectorLength :: MonadIO m => OtMathGlyphPartT -> m Int32

-- | Set the value of the “start_connector_length” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set otMathGlyphPartT [ #startConnectorLength := value ]
--   
setOtMathGlyphPartTStartConnectorLength :: MonadIO m => OtMathGlyphPartT -> Int32 -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.OtMathGlyphPartT.OtMathGlyphPartT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.OtMathGlyphPartT.OtMathGlyphPartT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.OtMathGlyphPartT.OtMathGlyphPartT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.OtMathGlyphPartT.OtMathGlyphPartT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.OtMathGlyphPartT.OtMathGlyphPartT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.OtMathGlyphPartT.OtMathGlyphPartT)
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.OtMathGlyphPartT.OtMathGlyphPartT tag

-- | Data type to hold math-variant information for a glyph.
--   
--   Since: 1.3.3
module GI.HarfBuzz.Structs.OtMathGlyphVariantT

-- | Memory-managed wrapper type.
newtype OtMathGlyphVariantT
OtMathGlyphVariantT :: ManagedPtr OtMathGlyphVariantT -> OtMathGlyphVariantT

-- | Construct a OtMathGlyphVariantT struct initialized to zero.
newZeroOtMathGlyphVariantT :: MonadIO m => m OtMathGlyphVariantT

-- | Get the value of the “advance” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get otMathGlyphVariantT #advance
--   
getOtMathGlyphVariantTAdvance :: MonadIO m => OtMathGlyphVariantT -> m Int32

-- | Set the value of the “advance” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set otMathGlyphVariantT [ #advance := value ]
--   
setOtMathGlyphVariantTAdvance :: MonadIO m => OtMathGlyphVariantT -> Int32 -> m ()

-- | Get the value of the “glyph” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get otMathGlyphVariantT #glyph
--   
getOtMathGlyphVariantTGlyph :: MonadIO m => OtMathGlyphVariantT -> m Word32

-- | Set the value of the “glyph” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set otMathGlyphVariantT [ #glyph := value ]
--   
setOtMathGlyphVariantTGlyph :: MonadIO m => OtMathGlyphVariantT -> Word32 -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.OtMathGlyphVariantT.OtMathGlyphVariantT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.OtMathGlyphVariantT.OtMathGlyphVariantT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.OtMathGlyphVariantT.OtMathGlyphVariantT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.OtMathGlyphVariantT.OtMathGlyphVariantT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.OtMathGlyphVariantT.OtMathGlyphVariantT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.OtMathGlyphVariantT.OtMathGlyphVariantT)
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.OtMathGlyphVariantT.OtMathGlyphVariantT tag

-- | Data type to hold math kerning (cut-in) information for a glyph.
--   
--   Since: 3.4.0
module GI.HarfBuzz.Structs.OtMathKernEntryT

-- | Memory-managed wrapper type.
newtype OtMathKernEntryT
OtMathKernEntryT :: ManagedPtr OtMathKernEntryT -> OtMathKernEntryT

-- | Construct a OtMathKernEntryT struct initialized to zero.
newZeroOtMathKernEntryT :: MonadIO m => m OtMathKernEntryT

-- | Get the value of the “kern_value” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get otMathKernEntryT #kernValue
--   
getOtMathKernEntryTKernValue :: MonadIO m => OtMathKernEntryT -> m Int32

-- | Set the value of the “kern_value” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set otMathKernEntryT [ #kernValue := value ]
--   
setOtMathKernEntryTKernValue :: MonadIO m => OtMathKernEntryT -> Int32 -> m ()

-- | Get the value of the “max_correction_height” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get otMathKernEntryT #maxCorrectionHeight
--   
getOtMathKernEntryTMaxCorrectionHeight :: MonadIO m => OtMathKernEntryT -> m Int32

-- | Set the value of the “max_correction_height” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set otMathKernEntryT [ #maxCorrectionHeight := value ]
--   
setOtMathKernEntryTMaxCorrectionHeight :: MonadIO m => OtMathKernEntryT -> Int32 -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.OtMathKernEntryT.OtMathKernEntryT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.OtMathKernEntryT.OtMathKernEntryT
instance Data.GI.Base.BasicTypes.BoxedPtr GI.HarfBuzz.Structs.OtMathKernEntryT.OtMathKernEntryT
instance Data.GI.Base.BasicTypes.CallocPtr GI.HarfBuzz.Structs.OtMathKernEntryT.OtMathKernEntryT
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.OtMathKernEntryT.OtMathKernEntryT tag

-- | Structure representing a name ID in a particular language.
--   
--   Since: 2.1.0
module GI.HarfBuzz.Structs.OtNameEntryT

-- | Memory-managed wrapper type.
newtype OtNameEntryT
OtNameEntryT :: ManagedPtr OtNameEntryT -> OtNameEntryT

-- | Construct a OtNameEntryT struct initialized to zero.
newZeroOtNameEntryT :: MonadIO m => m OtNameEntryT

-- | Get the value of the “language” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get otNameEntryT #language
--   
getOtNameEntryTLanguage :: MonadIO m => OtNameEntryT -> m LanguageT

-- | Get the value of the “name_id” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get otNameEntryT #nameId
--   
getOtNameEntryTNameId :: MonadIO m => OtNameEntryT -> m Word32

-- | Set the value of the “name_id” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set otNameEntryT [ #nameId := value ]
--   
setOtNameEntryTNameId :: MonadIO m => OtNameEntryT -> Word32 -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.OtNameEntryT.OtNameEntryT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.OtNameEntryT.OtNameEntryT
instance Data.GI.Base.BasicTypes.BoxedPtr GI.HarfBuzz.Structs.OtNameEntryT.OtNameEntryT
instance Data.GI.Base.BasicTypes.CallocPtr GI.HarfBuzz.Structs.OtNameEntryT.OtNameEntryT
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.OtNameEntryT.OtNameEntryT tag

-- | Data type for holding variation-axis values.
--   
--   The minimum, default, and maximum values are in un-normalized, user
--   scales.
--   
--   <note>Note: at present, the only flag defined for
--   flags is
--   HB_OT_VAR_AXIS_FLAG_HIDDEN.</note>
--   
--   Since: 2.2.0
module GI.HarfBuzz.Structs.OtVarAxisInfoT

-- | Memory-managed wrapper type.
newtype OtVarAxisInfoT
OtVarAxisInfoT :: ManagedPtr OtVarAxisInfoT -> OtVarAxisInfoT

-- | Construct a OtVarAxisInfoT struct initialized to zero.
newZeroOtVarAxisInfoT :: MonadIO m => m OtVarAxisInfoT

-- | Get the value of the “axis_index” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get otVarAxisInfoT #axisIndex
--   
getOtVarAxisInfoTAxisIndex :: MonadIO m => OtVarAxisInfoT -> m Word32

-- | Set the value of the “axis_index” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set otVarAxisInfoT [ #axisIndex := value ]
--   
setOtVarAxisInfoTAxisIndex :: MonadIO m => OtVarAxisInfoT -> Word32 -> m ()

-- | Get the value of the “default_value” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get otVarAxisInfoT #defaultValue
--   
getOtVarAxisInfoTDefaultValue :: MonadIO m => OtVarAxisInfoT -> m Float

-- | Set the value of the “default_value” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set otVarAxisInfoT [ #defaultValue := value ]
--   
setOtVarAxisInfoTDefaultValue :: MonadIO m => OtVarAxisInfoT -> Float -> m ()

-- | Get the value of the “flags” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get otVarAxisInfoT #flags
--   
getOtVarAxisInfoTFlags :: MonadIO m => OtVarAxisInfoT -> m [OtVarAxisFlagsT]

-- | Set the value of the “flags” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set otVarAxisInfoT [ #flags := value ]
--   
setOtVarAxisInfoTFlags :: MonadIO m => OtVarAxisInfoT -> [OtVarAxisFlagsT] -> m ()

-- | Get the value of the “max_value” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get otVarAxisInfoT #maxValue
--   
getOtVarAxisInfoTMaxValue :: MonadIO m => OtVarAxisInfoT -> m Float

-- | Set the value of the “max_value” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set otVarAxisInfoT [ #maxValue := value ]
--   
setOtVarAxisInfoTMaxValue :: MonadIO m => OtVarAxisInfoT -> Float -> m ()

-- | Get the value of the “min_value” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get otVarAxisInfoT #minValue
--   
getOtVarAxisInfoTMinValue :: MonadIO m => OtVarAxisInfoT -> m Float

-- | Set the value of the “min_value” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set otVarAxisInfoT [ #minValue := value ]
--   
setOtVarAxisInfoTMinValue :: MonadIO m => OtVarAxisInfoT -> Float -> m ()

-- | Get the value of the “name_id” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get otVarAxisInfoT #nameId
--   
getOtVarAxisInfoTNameId :: MonadIO m => OtVarAxisInfoT -> m Word32

-- | Set the value of the “name_id” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set otVarAxisInfoT [ #nameId := value ]
--   
setOtVarAxisInfoTNameId :: MonadIO m => OtVarAxisInfoT -> Word32 -> m ()

-- | Get the value of the “tag” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get otVarAxisInfoT #tag
--   
getOtVarAxisInfoTTag :: MonadIO m => OtVarAxisInfoT -> m Word32

-- | Set the value of the “tag” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set otVarAxisInfoT [ #tag := value ]
--   
setOtVarAxisInfoTTag :: MonadIO m => OtVarAxisInfoT -> Word32 -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.OtVarAxisInfoT.OtVarAxisInfoT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.OtVarAxisInfoT.OtVarAxisInfoT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.OtVarAxisInfoT.OtVarAxisInfoT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.OtVarAxisInfoT.OtVarAxisInfoT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.OtVarAxisInfoT.OtVarAxisInfoT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.OtVarAxisInfoT.OtVarAxisInfoT)
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.OtVarAxisInfoT.OtVarAxisInfoT tag

-- | Use OtVarAxisInfoT instead.
--   
--   Since: 1.4.2
module GI.HarfBuzz.Structs.OtVarAxisT

-- | Memory-managed wrapper type.
newtype OtVarAxisT
OtVarAxisT :: ManagedPtr OtVarAxisT -> OtVarAxisT

-- | Construct a OtVarAxisT struct initialized to zero.
newZeroOtVarAxisT :: MonadIO m => m OtVarAxisT

-- | Get the value of the “default_value” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get otVarAxisT #defaultValue
--   
getOtVarAxisTDefaultValue :: MonadIO m => OtVarAxisT -> m Float

-- | Set the value of the “default_value” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set otVarAxisT [ #defaultValue := value ]
--   
setOtVarAxisTDefaultValue :: MonadIO m => OtVarAxisT -> Float -> m ()

-- | Get the value of the “max_value” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get otVarAxisT #maxValue
--   
getOtVarAxisTMaxValue :: MonadIO m => OtVarAxisT -> m Float

-- | Set the value of the “max_value” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set otVarAxisT [ #maxValue := value ]
--   
setOtVarAxisTMaxValue :: MonadIO m => OtVarAxisT -> Float -> m ()

-- | Get the value of the “min_value” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get otVarAxisT #minValue
--   
getOtVarAxisTMinValue :: MonadIO m => OtVarAxisT -> m Float

-- | Set the value of the “min_value” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set otVarAxisT [ #minValue := value ]
--   
setOtVarAxisTMinValue :: MonadIO m => OtVarAxisT -> Float -> m ()

-- | Get the value of the “name_id” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get otVarAxisT #nameId
--   
getOtVarAxisTNameId :: MonadIO m => OtVarAxisT -> m Word32

-- | Set the value of the “name_id” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set otVarAxisT [ #nameId := value ]
--   
setOtVarAxisTNameId :: MonadIO m => OtVarAxisT -> Word32 -> m ()

-- | Get the value of the “tag” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get otVarAxisT #tag
--   
getOtVarAxisTTag :: MonadIO m => OtVarAxisT -> m Word32

-- | Set the value of the “tag” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set otVarAxisT [ #tag := value ]
--   
setOtVarAxisTTag :: MonadIO m => OtVarAxisT -> Word32 -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.OtVarAxisT.OtVarAxisT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.OtVarAxisT.OtVarAxisT
instance Data.GI.Base.BasicTypes.BoxedPtr GI.HarfBuzz.Structs.OtVarAxisT.OtVarAxisT
instance Data.GI.Base.BasicTypes.CallocPtr GI.HarfBuzz.Structs.OtVarAxisT.OtVarAxisT
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.OtVarAxisT.OtVarAxisT tag

-- | Glyph paint callbacks.
--   
--   The callbacks assume that the caller maintains a stack of current
--   transforms, clips and intermediate surfaces, as evidenced by the pairs
--   of push/pop callbacks. The push/pop calls will be properly nested, so
--   it is fine to store the different kinds of object on a single stack.
--   
--   Not all callbacks are required for all kinds of glyphs. For rendering
--   COLRv0 or non-color outline glyphs, the gradient callbacks are not
--   needed, and the composite callback only needs to handle simple alpha
--   compositing (HB_PAINT_COMPOSITE_MODE_SRC_OVER).
--   
--   The paint-image callback is only needed for glyphs with image blobs in
--   the CBDT, sbix or SVG tables.
--   
--   The custom-palette-color callback is only necessary if you want to
--   override colors from the font palette with custom colors.
--   
--   Since: 7.0.0
module GI.HarfBuzz.Structs.PaintFuncsT

-- | Memory-managed wrapper type.
newtype PaintFuncsT
PaintFuncsT :: ManagedPtr PaintFuncsT -> PaintFuncsT
instance GHC.Classes.Eq GI.HarfBuzz.Structs.PaintFuncsT.PaintFuncsT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.PaintFuncsT.PaintFuncsT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.PaintFuncsT.PaintFuncsT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.PaintFuncsT.PaintFuncsT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.PaintFuncsT.PaintFuncsT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.PaintFuncsT.PaintFuncsT)

-- | The structure that holds various text properties of an BufferT.
--   Can be set and retrieved using bufferSetSegmentProperties and
--   bufferGetSegmentProperties, respectively.
module GI.HarfBuzz.Structs.SegmentPropertiesT

-- | Memory-managed wrapper type.
newtype SegmentPropertiesT
SegmentPropertiesT :: ManagedPtr SegmentPropertiesT -> SegmentPropertiesT

-- | Construct a SegmentPropertiesT struct initialized to zero.
newZeroSegmentPropertiesT :: MonadIO m => m SegmentPropertiesT

-- | Get the value of the “direction” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get segmentPropertiesT #direction
--   
getSegmentPropertiesTDirection :: MonadIO m => SegmentPropertiesT -> m DirectionT

-- | Set the value of the “direction” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set segmentPropertiesT [ #direction := value ]
--   
setSegmentPropertiesTDirection :: MonadIO m => SegmentPropertiesT -> DirectionT -> m ()

-- | Get the value of the “language” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get segmentPropertiesT #language
--   
getSegmentPropertiesTLanguage :: MonadIO m => SegmentPropertiesT -> m LanguageT

-- | Get the value of the “script” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get segmentPropertiesT #script
--   
getSegmentPropertiesTScript :: MonadIO m => SegmentPropertiesT -> m ScriptT

-- | Set the value of the “script” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set segmentPropertiesT [ #script := value ]
--   
setSegmentPropertiesTScript :: MonadIO m => SegmentPropertiesT -> ScriptT -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.SegmentPropertiesT.SegmentPropertiesT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.SegmentPropertiesT.SegmentPropertiesT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.SegmentPropertiesT.SegmentPropertiesT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.SegmentPropertiesT.SegmentPropertiesT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.SegmentPropertiesT.SegmentPropertiesT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.SegmentPropertiesT.SegmentPropertiesT)
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.SegmentPropertiesT.SegmentPropertiesT tag

-- | Data type for holding a set of integers. SetT's are used to
--   gather and contain glyph IDs, Unicode code points, and various other
--   collections of discrete values.
module GI.HarfBuzz.Structs.SetT

-- | Memory-managed wrapper type.
newtype SetT
SetT :: ManagedPtr SetT -> SetT
instance GHC.Classes.Eq GI.HarfBuzz.Structs.SetT.SetT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.SetT.SetT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.SetT.SetT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.SetT.SetT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.SetT.SetT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.SetT.SetT)

-- | Data type for holding a shaping plan.
--   
--   Shape plans contain information about how HarfBuzz will shape a
--   particular text segment, based on the segment's properties and the
--   capabilities in the font face in use.
--   
--   Shape plans can be queried about how shaping will perform, given a set
--   of specific input parameters (script, language, direction, features,
--   etc.).
module GI.HarfBuzz.Structs.ShapePlanT

-- | Memory-managed wrapper type.
newtype ShapePlanT
ShapePlanT :: ManagedPtr ShapePlanT -> ShapePlanT
instance GHC.Classes.Eq GI.HarfBuzz.Structs.ShapePlanT.ShapePlanT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.ShapePlanT.ShapePlanT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.ShapePlanT.ShapePlanT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.ShapePlanT.ShapePlanT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.ShapePlanT.ShapePlanT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.ShapePlanT.ShapePlanT)

-- | Data type containing a set of virtual methods used for accessing
--   various Unicode character properties.
--   
--   HarfBuzz provides a default function for each of the methods in
--   UnicodeFuncsT. Client programs can implement their own
--   replacements for the individual Unicode functions, as needed, and
--   replace the default by calling the setter for a method.
module GI.HarfBuzz.Structs.UnicodeFuncsT

-- | Memory-managed wrapper type.
newtype UnicodeFuncsT
UnicodeFuncsT :: ManagedPtr UnicodeFuncsT -> UnicodeFuncsT
instance GHC.Classes.Eq GI.HarfBuzz.Structs.UnicodeFuncsT.UnicodeFuncsT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.UnicodeFuncsT.UnicodeFuncsT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.UnicodeFuncsT.UnicodeFuncsT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.UnicodeFuncsT.UnicodeFuncsT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.UnicodeFuncsT.UnicodeFuncsT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.UnicodeFuncsT.UnicodeFuncsT)

module GI.HarfBuzz.Callbacks

-- | A callback method for BufferT. The method gets called with the
--   BufferT it was set on, the FontT the buffer is shaped
--   with and a message describing what step of the shaping process will be
--   performed. Returning false from this method will skip this
--   shaping step and move to the next one.
--   
--   Since: 1.1.3
type BufferMessageFuncT = -- | /@buffer@/: An t'GI.HarfBuzz.Structs.BufferT.BufferT' to work upon BufferT -> -- | /@font@/: The t'GI.HarfBuzz.Structs.FontT.FontT' the /@buffer@/ is shaped with FontT -> -- | /@message@/: @NULL@-terminated message passed to the function Text -> -- | __Returns:__ @true@ to perform the shaping step, @false@ to skip it. IO Int32

-- | A callback method for BufferT. The method gets called with the
--   BufferT it was set on, the FontT the buffer is shaped
--   with and a message describing what step of the shaping process will be
--   performed. Returning false from this method will skip this
--   shaping step and move to the next one.
--   
--   Since: 1.1.3
type BufferMessageFuncT_WithClosures = -- | /@buffer@/: An t'GI.HarfBuzz.Structs.BufferT.BufferT' to work upon BufferT -> -- | /@font@/: The t'GI.HarfBuzz.Structs.FontT.FontT' the /@buffer@/ is shaped with FontT -> -- | /@message@/: @NULL@-terminated message passed to the function Text -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> -- | __Returns:__ @true@ to perform the shaping step, @false@ to skip it. IO Int32

-- | Type for the callback on the (unwrapped) C side.
type C_BufferMessageFuncT = Ptr BufferT -> Ptr FontT -> CString -> Ptr () -> IO Int32

-- | A simple wrapper that ignores the closure arguments.
drop_closures_BufferMessageFuncT :: BufferMessageFuncT -> BufferMessageFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_BufferMessageFuncT :: (HasCallStack, MonadIO m) => FunPtr C_BufferMessageFuncT -> BufferT -> FontT -> Text -> Ptr () -> m Int32

-- | Wrap the callback into a GClosure.
genClosure_BufferMessageFuncT :: MonadIO m => BufferMessageFuncT -> m (GClosure C_BufferMessageFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_BufferMessageFuncT.
mk_BufferMessageFuncT :: C_BufferMessageFuncT -> IO (FunPtr C_BufferMessageFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   BufferMessageFuncT.
noBufferMessageFuncT :: Maybe BufferMessageFuncT

-- | A convenience synonym for Nothing :: Maybe
--   BufferMessageFuncT_WithClosures.
noBufferMessageFuncT_WithClosures :: Maybe BufferMessageFuncT_WithClosures

-- | Wrap a BufferMessageFuncT into a C_BufferMessageFuncT.
wrap_BufferMessageFuncT :: Maybe (Ptr (FunPtr C_BufferMessageFuncT)) -> BufferMessageFuncT_WithClosures -> C_BufferMessageFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_ColorLineGetColorStopsFuncT = Ptr ColorLineT -> Ptr () -> Word32 -> Word32 -> Ptr ColorStopT -> Ptr () -> IO Word32

-- | A virtual method for the ColorLineT to fetch color stops.
--   
--   Since: 7.0.0
type ColorLineGetColorStopsFuncT = -- | /@colorLine@/: a t'GI.HarfBuzz.Structs.ColorLineT.ColorLineT' object ColorLineT -> -- | /@colorLineData@/: the data accompanying /@colorLine@/ Ptr () -> -- | /@start@/: the index of the first color stop to return Word32 -> -- | /@colorStops@/: Array of t'GI.HarfBuzz.Structs.ColorStopT.ColorStopT' to populate [ColorStopT] -> -- | __Returns:__ the total number of color stops in /@colorLine@/ IO ((Word32, [ColorStopT]))

-- | A virtual method for the ColorLineT to fetch color stops.
--   
--   Since: 7.0.0
type ColorLineGetColorStopsFuncT_WithClosures = -- | /@colorLine@/: a t'GI.HarfBuzz.Structs.ColorLineT.ColorLineT' object ColorLineT -> -- | /@colorLineData@/: the data accompanying /@colorLine@/ Ptr () -> -- | /@start@/: the index of the first color stop to return Word32 -> -- | /@colorStops@/: Array of t'GI.HarfBuzz.Structs.ColorStopT.ColorStopT' to populate [ColorStopT] -> -- | /@userData@/: the data accompanying this method Ptr () -> -- | __Returns:__ the total number of color stops in /@colorLine@/ IO ((Word32, [ColorStopT]))

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ColorLineGetColorStopsFuncT :: ColorLineGetColorStopsFuncT -> ColorLineGetColorStopsFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_ColorLineGetColorStopsFuncT :: (HasCallStack, MonadIO m) => FunPtr C_ColorLineGetColorStopsFuncT -> ColorLineT -> Ptr () -> Word32 -> [ColorStopT] -> Ptr () -> m (Word32, [ColorStopT])

-- | Wrap the callback into a GClosure.
genClosure_ColorLineGetColorStopsFuncT :: MonadIO m => ColorLineGetColorStopsFuncT -> m (GClosure C_ColorLineGetColorStopsFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_ColorLineGetColorStopsFuncT.
mk_ColorLineGetColorStopsFuncT :: C_ColorLineGetColorStopsFuncT -> IO (FunPtr C_ColorLineGetColorStopsFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   ColorLineGetColorStopsFuncT.
noColorLineGetColorStopsFuncT :: Maybe ColorLineGetColorStopsFuncT

-- | A convenience synonym for Nothing :: Maybe
--   ColorLineGetColorStopsFuncT_WithClosures.
noColorLineGetColorStopsFuncT_WithClosures :: Maybe ColorLineGetColorStopsFuncT_WithClosures

-- | Wrap a ColorLineGetColorStopsFuncT into a
--   C_ColorLineGetColorStopsFuncT.
wrap_ColorLineGetColorStopsFuncT :: Maybe (Ptr (FunPtr C_ColorLineGetColorStopsFuncT)) -> ColorLineGetColorStopsFuncT_WithClosures -> C_ColorLineGetColorStopsFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_ColorLineGetExtendFuncT = Ptr ColorLineT -> Ptr () -> Ptr () -> IO CUInt

-- | A virtual method for the hbColorLineT to fetches the
--   extend mode.
--   
--   Since: 7.0.0
type ColorLineGetExtendFuncT = -- | /@colorLine@/: a t'GI.HarfBuzz.Structs.ColorLineT.ColorLineT' object ColorLineT -> -- | /@colorLineData@/: the data accompanying /@colorLine@/ Ptr () -> -- | __Returns:__ the extend mode of /@colorLine@/ IO PaintExtendT

-- | A virtual method for the hbColorLineT to fetches the
--   extend mode.
--   
--   Since: 7.0.0
type ColorLineGetExtendFuncT_WithClosures = -- | /@colorLine@/: a t'GI.HarfBuzz.Structs.ColorLineT.ColorLineT' object ColorLineT -> -- | /@colorLineData@/: the data accompanying /@colorLine@/ Ptr () -> -- | /@userData@/: the data accompanying this method Ptr () -> -- | __Returns:__ the extend mode of /@colorLine@/ IO PaintExtendT

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ColorLineGetExtendFuncT :: ColorLineGetExtendFuncT -> ColorLineGetExtendFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_ColorLineGetExtendFuncT :: (HasCallStack, MonadIO m) => FunPtr C_ColorLineGetExtendFuncT -> ColorLineT -> Ptr () -> Ptr () -> m PaintExtendT

-- | Wrap the callback into a GClosure.
genClosure_ColorLineGetExtendFuncT :: MonadIO m => ColorLineGetExtendFuncT -> m (GClosure C_ColorLineGetExtendFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_ColorLineGetExtendFuncT.
mk_ColorLineGetExtendFuncT :: C_ColorLineGetExtendFuncT -> IO (FunPtr C_ColorLineGetExtendFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   ColorLineGetExtendFuncT.
noColorLineGetExtendFuncT :: Maybe ColorLineGetExtendFuncT

-- | A convenience synonym for Nothing :: Maybe
--   ColorLineGetExtendFuncT_WithClosures.
noColorLineGetExtendFuncT_WithClosures :: Maybe ColorLineGetExtendFuncT_WithClosures

-- | Wrap a ColorLineGetExtendFuncT into a
--   C_ColorLineGetExtendFuncT.
wrap_ColorLineGetExtendFuncT :: Maybe (Ptr (FunPtr C_ColorLineGetExtendFuncT)) -> ColorLineGetExtendFuncT_WithClosures -> C_ColorLineGetExtendFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_DestroyFuncT = Ptr () -> IO ()

-- | A virtual method for destroy user-data callbacks.
type DestroyFuncT = IO ()

-- | A virtual method for destroy user-data callbacks.
type DestroyFuncT_WithClosures = -- | /@userData@/: the data to be destroyed Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_DestroyFuncT :: DestroyFuncT -> DestroyFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_DestroyFuncT :: (HasCallStack, MonadIO m) => FunPtr C_DestroyFuncT -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_DestroyFuncT :: MonadIO m => DestroyFuncT -> m (GClosure C_DestroyFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_DestroyFuncT.
mk_DestroyFuncT :: C_DestroyFuncT -> IO (FunPtr C_DestroyFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   DestroyFuncT.
noDestroyFuncT :: Maybe DestroyFuncT

-- | A convenience synonym for Nothing :: Maybe
--   DestroyFuncT_WithClosures.
noDestroyFuncT_WithClosures :: Maybe DestroyFuncT_WithClosures

-- | Wrap a DestroyFuncT into a C_DestroyFuncT.
wrap_DestroyFuncT :: Maybe (Ptr (FunPtr C_DestroyFuncT)) -> DestroyFuncT_WithClosures -> C_DestroyFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_DrawClosePathFuncT = Ptr DrawFuncsT -> Ptr () -> Ptr DrawStateT -> Ptr () -> IO ()

-- | A virtual method for the DrawFuncsT to perform a "close-path"
--   draw operation.
--   
--   Since: 4.0.0
type DrawClosePathFuncT = -- | /@dfuncs@/: draw functions object DrawFuncsT -> -- | /@drawData@/: The data accompanying the draw functions in 'GI.HarfBuzz.Functions.fontDrawGlyph' Ptr () -> -- | /@st@/: current draw state DrawStateT -> IO ()

-- | A virtual method for the DrawFuncsT to perform a "close-path"
--   draw operation.
--   
--   Since: 4.0.0
type DrawClosePathFuncT_WithClosures = -- | /@dfuncs@/: draw functions object DrawFuncsT -> -- | /@drawData@/: The data accompanying the draw functions in 'GI.HarfBuzz.Functions.fontDrawGlyph' Ptr () -> -- | /@st@/: current draw state DrawStateT -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.drawFuncsSetClosePathFunc' Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_DrawClosePathFuncT :: DrawClosePathFuncT -> DrawClosePathFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_DrawClosePathFuncT :: (HasCallStack, MonadIO m) => FunPtr C_DrawClosePathFuncT -> DrawFuncsT -> Ptr () -> DrawStateT -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_DrawClosePathFuncT :: MonadIO m => DrawClosePathFuncT -> m (GClosure C_DrawClosePathFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_DrawClosePathFuncT.
mk_DrawClosePathFuncT :: C_DrawClosePathFuncT -> IO (FunPtr C_DrawClosePathFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   DrawClosePathFuncT.
noDrawClosePathFuncT :: Maybe DrawClosePathFuncT

-- | A convenience synonym for Nothing :: Maybe
--   DrawClosePathFuncT_WithClosures.
noDrawClosePathFuncT_WithClosures :: Maybe DrawClosePathFuncT_WithClosures

-- | Wrap a DrawClosePathFuncT into a C_DrawClosePathFuncT.
wrap_DrawClosePathFuncT :: Maybe (Ptr (FunPtr C_DrawClosePathFuncT)) -> DrawClosePathFuncT_WithClosures -> C_DrawClosePathFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_DrawCubicToFuncT = Ptr DrawFuncsT -> Ptr () -> Ptr DrawStateT -> CFloat -> CFloat -> CFloat -> CFloat -> CFloat -> CFloat -> Ptr () -> IO ()

-- | A virtual method for the DrawFuncsT to perform a "cubic-to"
--   draw operation.
--   
--   Since: 4.0.0
type DrawCubicToFuncT = -- | /@dfuncs@/: draw functions object DrawFuncsT -> -- | /@drawData@/: The data accompanying the draw functions in 'GI.HarfBuzz.Functions.fontDrawGlyph' Ptr () -> -- | /@st@/: current draw state DrawStateT -> -- | /@control1X@/: X component of first control point Float -> -- | /@control1Y@/: Y component of first control point Float -> -- | /@control2X@/: X component of second control point Float -> -- | /@control2Y@/: Y component of second control point Float -> -- | /@toX@/: X component of target point Float -> -- | /@toY@/: Y component of target point Float -> IO ()

-- | A virtual method for the DrawFuncsT to perform a "cubic-to"
--   draw operation.
--   
--   Since: 4.0.0
type DrawCubicToFuncT_WithClosures = -- | /@dfuncs@/: draw functions object DrawFuncsT -> -- | /@drawData@/: The data accompanying the draw functions in 'GI.HarfBuzz.Functions.fontDrawGlyph' Ptr () -> -- | /@st@/: current draw state DrawStateT -> -- | /@control1X@/: X component of first control point Float -> -- | /@control1Y@/: Y component of first control point Float -> -- | /@control2X@/: X component of second control point Float -> -- | /@control2Y@/: Y component of second control point Float -> -- | /@toX@/: X component of target point Float -> -- | /@toY@/: Y component of target point Float -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.drawFuncsSetCubicToFunc' Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_DrawCubicToFuncT :: DrawCubicToFuncT -> DrawCubicToFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_DrawCubicToFuncT :: (HasCallStack, MonadIO m) => FunPtr C_DrawCubicToFuncT -> DrawFuncsT -> Ptr () -> DrawStateT -> Float -> Float -> Float -> Float -> Float -> Float -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_DrawCubicToFuncT :: MonadIO m => DrawCubicToFuncT -> m (GClosure C_DrawCubicToFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_DrawCubicToFuncT.
mk_DrawCubicToFuncT :: C_DrawCubicToFuncT -> IO (FunPtr C_DrawCubicToFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   DrawCubicToFuncT.
noDrawCubicToFuncT :: Maybe DrawCubicToFuncT

-- | A convenience synonym for Nothing :: Maybe
--   DrawCubicToFuncT_WithClosures.
noDrawCubicToFuncT_WithClosures :: Maybe DrawCubicToFuncT_WithClosures

-- | Wrap a DrawCubicToFuncT into a C_DrawCubicToFuncT.
wrap_DrawCubicToFuncT :: Maybe (Ptr (FunPtr C_DrawCubicToFuncT)) -> DrawCubicToFuncT_WithClosures -> C_DrawCubicToFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_DrawLineToFuncT = Ptr DrawFuncsT -> Ptr () -> Ptr DrawStateT -> CFloat -> CFloat -> Ptr () -> IO ()

-- | A virtual method for the DrawFuncsT to perform a "line-to" draw
--   operation.
--   
--   Since: 4.0.0
type DrawLineToFuncT = -- | /@dfuncs@/: draw functions object DrawFuncsT -> -- | /@drawData@/: The data accompanying the draw functions in 'GI.HarfBuzz.Functions.fontDrawGlyph' Ptr () -> -- | /@st@/: current draw state DrawStateT -> -- | /@toX@/: X component of target point Float -> -- | /@toY@/: Y component of target point Float -> IO ()

-- | A virtual method for the DrawFuncsT to perform a "line-to" draw
--   operation.
--   
--   Since: 4.0.0
type DrawLineToFuncT_WithClosures = -- | /@dfuncs@/: draw functions object DrawFuncsT -> -- | /@drawData@/: The data accompanying the draw functions in 'GI.HarfBuzz.Functions.fontDrawGlyph' Ptr () -> -- | /@st@/: current draw state DrawStateT -> -- | /@toX@/: X component of target point Float -> -- | /@toY@/: Y component of target point Float -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.drawFuncsSetLineToFunc' Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_DrawLineToFuncT :: DrawLineToFuncT -> DrawLineToFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_DrawLineToFuncT :: (HasCallStack, MonadIO m) => FunPtr C_DrawLineToFuncT -> DrawFuncsT -> Ptr () -> DrawStateT -> Float -> Float -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_DrawLineToFuncT :: MonadIO m => DrawLineToFuncT -> m (GClosure C_DrawLineToFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_DrawLineToFuncT.
mk_DrawLineToFuncT :: C_DrawLineToFuncT -> IO (FunPtr C_DrawLineToFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   DrawLineToFuncT.
noDrawLineToFuncT :: Maybe DrawLineToFuncT

-- | A convenience synonym for Nothing :: Maybe
--   DrawLineToFuncT_WithClosures.
noDrawLineToFuncT_WithClosures :: Maybe DrawLineToFuncT_WithClosures

-- | Wrap a DrawLineToFuncT into a C_DrawLineToFuncT.
wrap_DrawLineToFuncT :: Maybe (Ptr (FunPtr C_DrawLineToFuncT)) -> DrawLineToFuncT_WithClosures -> C_DrawLineToFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_DrawMoveToFuncT = Ptr DrawFuncsT -> Ptr () -> Ptr DrawStateT -> CFloat -> CFloat -> Ptr () -> IO ()

-- | A virtual method for the DrawFuncsT to perform a "move-to" draw
--   operation.
--   
--   Since: 4.0.0
type DrawMoveToFuncT = -- | /@dfuncs@/: draw functions object DrawFuncsT -> -- | /@drawData@/: The data accompanying the draw functions in 'GI.HarfBuzz.Functions.fontDrawGlyph' Ptr () -> -- | /@st@/: current draw state DrawStateT -> -- | /@toX@/: X component of target point Float -> -- | /@toY@/: Y component of target point Float -> IO ()

-- | A virtual method for the DrawFuncsT to perform a "move-to" draw
--   operation.
--   
--   Since: 4.0.0
type DrawMoveToFuncT_WithClosures = -- | /@dfuncs@/: draw functions object DrawFuncsT -> -- | /@drawData@/: The data accompanying the draw functions in 'GI.HarfBuzz.Functions.fontDrawGlyph' Ptr () -> -- | /@st@/: current draw state DrawStateT -> -- | /@toX@/: X component of target point Float -> -- | /@toY@/: Y component of target point Float -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.drawFuncsSetMoveToFunc' Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_DrawMoveToFuncT :: DrawMoveToFuncT -> DrawMoveToFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_DrawMoveToFuncT :: (HasCallStack, MonadIO m) => FunPtr C_DrawMoveToFuncT -> DrawFuncsT -> Ptr () -> DrawStateT -> Float -> Float -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_DrawMoveToFuncT :: MonadIO m => DrawMoveToFuncT -> m (GClosure C_DrawMoveToFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_DrawMoveToFuncT.
mk_DrawMoveToFuncT :: C_DrawMoveToFuncT -> IO (FunPtr C_DrawMoveToFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   DrawMoveToFuncT.
noDrawMoveToFuncT :: Maybe DrawMoveToFuncT

-- | A convenience synonym for Nothing :: Maybe
--   DrawMoveToFuncT_WithClosures.
noDrawMoveToFuncT_WithClosures :: Maybe DrawMoveToFuncT_WithClosures

-- | Wrap a DrawMoveToFuncT into a C_DrawMoveToFuncT.
wrap_DrawMoveToFuncT :: Maybe (Ptr (FunPtr C_DrawMoveToFuncT)) -> DrawMoveToFuncT_WithClosures -> C_DrawMoveToFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_DrawQuadraticToFuncT = Ptr DrawFuncsT -> Ptr () -> Ptr DrawStateT -> CFloat -> CFloat -> CFloat -> CFloat -> Ptr () -> IO ()

-- | A virtual method for the DrawFuncsT to perform a "quadratic-to"
--   draw operation.
--   
--   Since: 4.0.0
type DrawQuadraticToFuncT = -- | /@dfuncs@/: draw functions object DrawFuncsT -> -- | /@drawData@/: The data accompanying the draw functions in 'GI.HarfBuzz.Functions.fontDrawGlyph' Ptr () -> -- | /@st@/: current draw state DrawStateT -> -- | /@controlX@/: X component of control point Float -> -- | /@controlY@/: Y component of control point Float -> -- | /@toX@/: X component of target point Float -> -- | /@toY@/: Y component of target point Float -> IO ()

-- | A virtual method for the DrawFuncsT to perform a "quadratic-to"
--   draw operation.
--   
--   Since: 4.0.0
type DrawQuadraticToFuncT_WithClosures = -- | /@dfuncs@/: draw functions object DrawFuncsT -> -- | /@drawData@/: The data accompanying the draw functions in 'GI.HarfBuzz.Functions.fontDrawGlyph' Ptr () -> -- | /@st@/: current draw state DrawStateT -> -- | /@controlX@/: X component of control point Float -> -- | /@controlY@/: Y component of control point Float -> -- | /@toX@/: X component of target point Float -> -- | /@toY@/: Y component of target point Float -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.drawFuncsSetQuadraticToFunc' Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_DrawQuadraticToFuncT :: DrawQuadraticToFuncT -> DrawQuadraticToFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_DrawQuadraticToFuncT :: (HasCallStack, MonadIO m) => FunPtr C_DrawQuadraticToFuncT -> DrawFuncsT -> Ptr () -> DrawStateT -> Float -> Float -> Float -> Float -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_DrawQuadraticToFuncT :: MonadIO m => DrawQuadraticToFuncT -> m (GClosure C_DrawQuadraticToFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_DrawQuadraticToFuncT.
mk_DrawQuadraticToFuncT :: C_DrawQuadraticToFuncT -> IO (FunPtr C_DrawQuadraticToFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   DrawQuadraticToFuncT.
noDrawQuadraticToFuncT :: Maybe DrawQuadraticToFuncT

-- | A convenience synonym for Nothing :: Maybe
--   DrawQuadraticToFuncT_WithClosures.
noDrawQuadraticToFuncT_WithClosures :: Maybe DrawQuadraticToFuncT_WithClosures

-- | Wrap a DrawQuadraticToFuncT into a
--   C_DrawQuadraticToFuncT.
wrap_DrawQuadraticToFuncT :: Maybe (Ptr (FunPtr C_DrawQuadraticToFuncT)) -> DrawQuadraticToFuncT_WithClosures -> C_DrawQuadraticToFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_FontDrawGlyphFuncT = Ptr FontT -> Ptr () -> Word32 -> Ptr DrawFuncsT -> Ptr () -> Ptr () -> IO ()

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   Since: 7.0.0
type FontDrawGlyphFuncT = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@glyph@/: The glyph ID to query Word32 -> -- | /@drawFuncs@/: The draw functions to send the shape data to DrawFuncsT -> -- | /@drawData@/: The data accompanying the draw functions Ptr () -> IO ()

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   Since: 7.0.0
type FontDrawGlyphFuncT_WithClosures = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@glyph@/: The glyph ID to query Word32 -> -- | /@drawFuncs@/: The draw functions to send the shape data to DrawFuncsT -> -- | /@drawData@/: The data accompanying the draw functions Ptr () -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontDrawGlyphFuncT :: FontDrawGlyphFuncT -> FontDrawGlyphFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FontDrawGlyphFuncT :: (HasCallStack, MonadIO m) => FunPtr C_FontDrawGlyphFuncT -> FontT -> Ptr () -> Word32 -> DrawFuncsT -> Ptr () -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_FontDrawGlyphFuncT :: MonadIO m => FontDrawGlyphFuncT -> m (GClosure C_FontDrawGlyphFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_FontDrawGlyphFuncT.
mk_FontDrawGlyphFuncT :: C_FontDrawGlyphFuncT -> IO (FunPtr C_FontDrawGlyphFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   FontDrawGlyphFuncT.
noFontDrawGlyphFuncT :: Maybe FontDrawGlyphFuncT

-- | A convenience synonym for Nothing :: Maybe
--   FontDrawGlyphFuncT_WithClosures.
noFontDrawGlyphFuncT_WithClosures :: Maybe FontDrawGlyphFuncT_WithClosures

-- | Wrap a FontDrawGlyphFuncT into a C_FontDrawGlyphFuncT.
wrap_FontDrawGlyphFuncT :: Maybe (Ptr (FunPtr C_FontDrawGlyphFuncT)) -> FontDrawGlyphFuncT_WithClosures -> C_FontDrawGlyphFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_FontGetFontExtentsFuncT = Ptr FontT -> Ptr () -> Ptr FontExtentsT -> Ptr () -> IO Int32

-- | This method should retrieve the extents for a font.
type FontGetFontExtentsFuncT = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> IO ((Int32, FontExtentsT))

-- | This method should retrieve the extents for a font.
type FontGetFontExtentsFuncT_WithClosures = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> IO ((Int32, FontExtentsT))

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontGetFontExtentsFuncT :: FontGetFontExtentsFuncT -> FontGetFontExtentsFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FontGetFontExtentsFuncT :: (HasCallStack, MonadIO m) => FunPtr C_FontGetFontExtentsFuncT -> FontT -> Ptr () -> Ptr () -> m (Int32, FontExtentsT)

-- | Wrap the callback into a GClosure.
genClosure_FontGetFontExtentsFuncT :: MonadIO m => FontGetFontExtentsFuncT -> m (GClosure C_FontGetFontExtentsFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_FontGetFontExtentsFuncT.
mk_FontGetFontExtentsFuncT :: C_FontGetFontExtentsFuncT -> IO (FunPtr C_FontGetFontExtentsFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   FontGetFontExtentsFuncT.
noFontGetFontExtentsFuncT :: Maybe FontGetFontExtentsFuncT

-- | A convenience synonym for Nothing :: Maybe
--   FontGetFontExtentsFuncT_WithClosures.
noFontGetFontExtentsFuncT_WithClosures :: Maybe FontGetFontExtentsFuncT_WithClosures

-- | Wrap a FontGetFontExtentsFuncT into a
--   C_FontGetFontExtentsFuncT.
wrap_FontGetFontExtentsFuncT :: Maybe (Ptr (FunPtr C_FontGetFontExtentsFuncT)) -> FontGetFontExtentsFuncT_WithClosures -> C_FontGetFontExtentsFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_FontGetGlyphAdvanceFuncT = Ptr FontT -> Ptr () -> Word32 -> Ptr () -> IO Int32

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the advance for a specified glyph. The
--   method must return an hb_position_t.
type FontGetGlyphAdvanceFuncT = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@glyph@/: The glyph ID to query Word32 -> -- | __Returns:__ The advance of /@glyph@/ within /@font@/ IO Int32

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the advance for a specified glyph. The
--   method must return an hb_position_t.
type FontGetGlyphAdvanceFuncT_WithClosures = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@glyph@/: The glyph ID to query Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> -- | __Returns:__ The advance of /@glyph@/ within /@font@/ IO Int32

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontGetGlyphAdvanceFuncT :: FontGetGlyphAdvanceFuncT -> FontGetGlyphAdvanceFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FontGetGlyphAdvanceFuncT :: (HasCallStack, MonadIO m) => FunPtr C_FontGetGlyphAdvanceFuncT -> FontT -> Ptr () -> Word32 -> Ptr () -> m Int32

-- | Wrap the callback into a GClosure.
genClosure_FontGetGlyphAdvanceFuncT :: MonadIO m => FontGetGlyphAdvanceFuncT -> m (GClosure C_FontGetGlyphAdvanceFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_FontGetGlyphAdvanceFuncT.
mk_FontGetGlyphAdvanceFuncT :: C_FontGetGlyphAdvanceFuncT -> IO (FunPtr C_FontGetGlyphAdvanceFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphAdvanceFuncT.
noFontGetGlyphAdvanceFuncT :: Maybe FontGetGlyphAdvanceFuncT

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphAdvanceFuncT_WithClosures.
noFontGetGlyphAdvanceFuncT_WithClosures :: Maybe FontGetGlyphAdvanceFuncT_WithClosures

-- | Wrap a FontGetGlyphAdvanceFuncT into a
--   C_FontGetGlyphAdvanceFuncT.
wrap_FontGetGlyphAdvanceFuncT :: Maybe (Ptr (FunPtr C_FontGetGlyphAdvanceFuncT)) -> FontGetGlyphAdvanceFuncT_WithClosures -> C_FontGetGlyphAdvanceFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_FontGetGlyphAdvancesFuncT = Ptr FontT -> Ptr () -> Word32 -> Word32 -> Word32 -> Ptr Int32 -> Word32 -> Ptr () -> IO ()

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the advances for a sequence of glyphs.
type FontGetGlyphAdvancesFuncT = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@count@/: The number of glyph IDs in the sequence queried Word32 -> -- | /@firstGlyph@/: The first glyph ID to query Word32 -> -- | /@glyphStride@/: The stride between successive glyph IDs Word32 -> -- | /@advanceStride@/: The stride between successive advances Word32 -> IO (Int32)

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the advances for a sequence of glyphs.
type FontGetGlyphAdvancesFuncT_WithClosures = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@count@/: The number of glyph IDs in the sequence queried Word32 -> -- | /@firstGlyph@/: The first glyph ID to query Word32 -> -- | /@glyphStride@/: The stride between successive glyph IDs Word32 -> -- | /@advanceStride@/: The stride between successive advances Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> IO (Int32)

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontGetGlyphAdvancesFuncT :: FontGetGlyphAdvancesFuncT -> FontGetGlyphAdvancesFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FontGetGlyphAdvancesFuncT :: (HasCallStack, MonadIO m) => FunPtr C_FontGetGlyphAdvancesFuncT -> FontT -> Ptr () -> Word32 -> Word32 -> Word32 -> Word32 -> Ptr () -> m Int32

-- | Wrap the callback into a GClosure.
genClosure_FontGetGlyphAdvancesFuncT :: MonadIO m => FontGetGlyphAdvancesFuncT -> m (GClosure C_FontGetGlyphAdvancesFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_FontGetGlyphAdvancesFuncT.
mk_FontGetGlyphAdvancesFuncT :: C_FontGetGlyphAdvancesFuncT -> IO (FunPtr C_FontGetGlyphAdvancesFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphAdvancesFuncT.
noFontGetGlyphAdvancesFuncT :: Maybe FontGetGlyphAdvancesFuncT

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphAdvancesFuncT_WithClosures.
noFontGetGlyphAdvancesFuncT_WithClosures :: Maybe FontGetGlyphAdvancesFuncT_WithClosures

-- | Wrap a FontGetGlyphAdvancesFuncT into a
--   C_FontGetGlyphAdvancesFuncT.
wrap_FontGetGlyphAdvancesFuncT :: Maybe (Ptr (FunPtr C_FontGetGlyphAdvancesFuncT)) -> FontGetGlyphAdvancesFuncT_WithClosures -> C_FontGetGlyphAdvancesFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_FontGetGlyphContourPointFuncT = Ptr FontT -> Ptr () -> Word32 -> Word32 -> Ptr Int32 -> Ptr Int32 -> Ptr () -> IO Int32

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the (X,Y) coordinates (in font units) for
--   a specified contour point in a glyph. Each coordinate must be returned
--   as an hb_position_t output parameter.
type FontGetGlyphContourPointFuncT = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@glyph@/: The glyph ID to query Word32 -> -- | /@pointIndex@/: The contour-point index to query Word32 -> -- | __Returns:__ @true@ if data found, @false@ otherwise IO ((Int32, Int32, Int32))

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the (X,Y) coordinates (in font units) for
--   a specified contour point in a glyph. Each coordinate must be returned
--   as an hb_position_t output parameter.
type FontGetGlyphContourPointFuncT_WithClosures = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@glyph@/: The glyph ID to query Word32 -> -- | /@pointIndex@/: The contour-point index to query Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> -- | __Returns:__ @true@ if data found, @false@ otherwise IO ((Int32, Int32, Int32))

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontGetGlyphContourPointFuncT :: FontGetGlyphContourPointFuncT -> FontGetGlyphContourPointFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FontGetGlyphContourPointFuncT :: (HasCallStack, MonadIO m) => FunPtr C_FontGetGlyphContourPointFuncT -> FontT -> Ptr () -> Word32 -> Word32 -> Ptr () -> m (Int32, Int32, Int32)

-- | Wrap the callback into a GClosure.
genClosure_FontGetGlyphContourPointFuncT :: MonadIO m => FontGetGlyphContourPointFuncT -> m (GClosure C_FontGetGlyphContourPointFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_FontGetGlyphContourPointFuncT.
mk_FontGetGlyphContourPointFuncT :: C_FontGetGlyphContourPointFuncT -> IO (FunPtr C_FontGetGlyphContourPointFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphContourPointFuncT.
noFontGetGlyphContourPointFuncT :: Maybe FontGetGlyphContourPointFuncT

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphContourPointFuncT_WithClosures.
noFontGetGlyphContourPointFuncT_WithClosures :: Maybe FontGetGlyphContourPointFuncT_WithClosures

-- | Wrap a FontGetGlyphContourPointFuncT into a
--   C_FontGetGlyphContourPointFuncT.
wrap_FontGetGlyphContourPointFuncT :: Maybe (Ptr (FunPtr C_FontGetGlyphContourPointFuncT)) -> FontGetGlyphContourPointFuncT_WithClosures -> C_FontGetGlyphContourPointFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_FontGetGlyphExtentsFuncT = Ptr FontT -> Ptr () -> Word32 -> Ptr GlyphExtentsT -> Ptr () -> IO Int32

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the extents for a specified glyph. Extents
--   must be returned in an hb_glyph_extents output
--   parameter.
type FontGetGlyphExtentsFuncT = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@glyph@/: The glyph ID to query Word32 -> -- | __Returns:__ @true@ if data found, @false@ otherwise IO ((Int32, GlyphExtentsT))

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the extents for a specified glyph. Extents
--   must be returned in an hb_glyph_extents output
--   parameter.
type FontGetGlyphExtentsFuncT_WithClosures = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@glyph@/: The glyph ID to query Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> -- | __Returns:__ @true@ if data found, @false@ otherwise IO ((Int32, GlyphExtentsT))

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontGetGlyphExtentsFuncT :: FontGetGlyphExtentsFuncT -> FontGetGlyphExtentsFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FontGetGlyphExtentsFuncT :: (HasCallStack, MonadIO m) => FunPtr C_FontGetGlyphExtentsFuncT -> FontT -> Ptr () -> Word32 -> Ptr () -> m (Int32, GlyphExtentsT)

-- | Wrap the callback into a GClosure.
genClosure_FontGetGlyphExtentsFuncT :: MonadIO m => FontGetGlyphExtentsFuncT -> m (GClosure C_FontGetGlyphExtentsFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_FontGetGlyphExtentsFuncT.
mk_FontGetGlyphExtentsFuncT :: C_FontGetGlyphExtentsFuncT -> IO (FunPtr C_FontGetGlyphExtentsFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphExtentsFuncT.
noFontGetGlyphExtentsFuncT :: Maybe FontGetGlyphExtentsFuncT

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphExtentsFuncT_WithClosures.
noFontGetGlyphExtentsFuncT_WithClosures :: Maybe FontGetGlyphExtentsFuncT_WithClosures

-- | Wrap a FontGetGlyphExtentsFuncT into a
--   C_FontGetGlyphExtentsFuncT.
wrap_FontGetGlyphExtentsFuncT :: Maybe (Ptr (FunPtr C_FontGetGlyphExtentsFuncT)) -> FontGetGlyphExtentsFuncT_WithClosures -> C_FontGetGlyphExtentsFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_FontGetGlyphFromNameFuncT = Ptr FontT -> Ptr () -> Ptr CString -> Int32 -> Ptr Word32 -> Ptr () -> IO Int32

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the glyph ID that corresponds to a
--   glyph-name string.
type FontGetGlyphFromNameFuncT = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@name@/: The name string to query [Text] -> -- | __Returns:__ @true@ if data found, @false@ otherwise IO ((Int32, Word32))

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the glyph ID that corresponds to a
--   glyph-name string.
type FontGetGlyphFromNameFuncT_WithClosures = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@name@/: The name string to query [Text] -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> -- | __Returns:__ @true@ if data found, @false@ otherwise IO ((Int32, Word32))

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontGetGlyphFromNameFuncT :: FontGetGlyphFromNameFuncT -> FontGetGlyphFromNameFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FontGetGlyphFromNameFuncT :: (HasCallStack, MonadIO m) => FunPtr C_FontGetGlyphFromNameFuncT -> FontT -> Ptr () -> [Text] -> Ptr () -> m (Int32, Word32)

-- | Wrap the callback into a GClosure.
genClosure_FontGetGlyphFromNameFuncT :: MonadIO m => FontGetGlyphFromNameFuncT -> m (GClosure C_FontGetGlyphFromNameFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_FontGetGlyphFromNameFuncT.
mk_FontGetGlyphFromNameFuncT :: C_FontGetGlyphFromNameFuncT -> IO (FunPtr C_FontGetGlyphFromNameFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphFromNameFuncT.
noFontGetGlyphFromNameFuncT :: Maybe FontGetGlyphFromNameFuncT

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphFromNameFuncT_WithClosures.
noFontGetGlyphFromNameFuncT_WithClosures :: Maybe FontGetGlyphFromNameFuncT_WithClosures

-- | Wrap a FontGetGlyphFromNameFuncT into a
--   C_FontGetGlyphFromNameFuncT.
wrap_FontGetGlyphFromNameFuncT :: Maybe (Ptr (FunPtr C_FontGetGlyphFromNameFuncT)) -> FontGetGlyphFromNameFuncT_WithClosures -> C_FontGetGlyphFromNameFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_FontGetGlyphFuncT = Ptr FontT -> Ptr () -> Word32 -> Word32 -> Ptr Word32 -> Ptr () -> IO Int32

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the glyph ID for a specified Unicode code
--   point font, with an optional variation selector.

-- | Deprecated: (Since version 1.2.3)
type FontGetGlyphFuncT = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@unicode@/: The Unicode code point to query Word32 -> -- | /@variationSelector@/: The  variation-selector code point to query Word32 -> -- | __Returns:__ @true@ if data found, @false@ otherwise IO ((Int32, Word32))

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the glyph ID for a specified Unicode code
--   point font, with an optional variation selector.
type FontGetGlyphFuncT_WithClosures = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@unicode@/: The Unicode code point to query Word32 -> -- | /@variationSelector@/: The  variation-selector code point to query Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> -- | __Returns:__ @true@ if data found, @false@ otherwise IO ((Int32, Word32))

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontGetGlyphFuncT :: FontGetGlyphFuncT -> FontGetGlyphFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FontGetGlyphFuncT :: (HasCallStack, MonadIO m) => FunPtr C_FontGetGlyphFuncT -> FontT -> Ptr () -> Word32 -> Word32 -> Ptr () -> m (Int32, Word32)

-- | Wrap the callback into a GClosure.
genClosure_FontGetGlyphFuncT :: MonadIO m => FontGetGlyphFuncT -> m (GClosure C_FontGetGlyphFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_FontGetGlyphFuncT.
mk_FontGetGlyphFuncT :: C_FontGetGlyphFuncT -> IO (FunPtr C_FontGetGlyphFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphFuncT.
noFontGetGlyphFuncT :: Maybe FontGetGlyphFuncT

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphFuncT_WithClosures.
noFontGetGlyphFuncT_WithClosures :: Maybe FontGetGlyphFuncT_WithClosures

-- | Wrap a FontGetGlyphFuncT into a C_FontGetGlyphFuncT.
wrap_FontGetGlyphFuncT :: Maybe (Ptr (FunPtr C_FontGetGlyphFuncT)) -> FontGetGlyphFuncT_WithClosures -> C_FontGetGlyphFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_FontGetGlyphKerningFuncT = Ptr FontT -> Ptr () -> Word32 -> Word32 -> Ptr () -> IO Int32

-- | This method should retrieve the kerning-adjustment value for a
--   glyph-pair in the specified font, for horizontal text segments.
type FontGetGlyphKerningFuncT = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@firstGlyph@/: The glyph ID of the first glyph in the glyph pair Word32 -> -- | /@secondGlyph@/: The glyph ID of the second glyph in the glyph pair Word32 -> IO Int32

-- | This method should retrieve the kerning-adjustment value for a
--   glyph-pair in the specified font, for horizontal text segments.
type FontGetGlyphKerningFuncT_WithClosures = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@firstGlyph@/: The glyph ID of the first glyph in the glyph pair Word32 -> -- | /@secondGlyph@/: The glyph ID of the second glyph in the glyph pair Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> IO Int32

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontGetGlyphKerningFuncT :: FontGetGlyphKerningFuncT -> FontGetGlyphKerningFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FontGetGlyphKerningFuncT :: (HasCallStack, MonadIO m) => FunPtr C_FontGetGlyphKerningFuncT -> FontT -> Ptr () -> Word32 -> Word32 -> Ptr () -> m Int32

-- | Wrap the callback into a GClosure.
genClosure_FontGetGlyphKerningFuncT :: MonadIO m => FontGetGlyphKerningFuncT -> m (GClosure C_FontGetGlyphKerningFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_FontGetGlyphKerningFuncT.
mk_FontGetGlyphKerningFuncT :: C_FontGetGlyphKerningFuncT -> IO (FunPtr C_FontGetGlyphKerningFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphKerningFuncT.
noFontGetGlyphKerningFuncT :: Maybe FontGetGlyphKerningFuncT

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphKerningFuncT_WithClosures.
noFontGetGlyphKerningFuncT_WithClosures :: Maybe FontGetGlyphKerningFuncT_WithClosures

-- | Wrap a FontGetGlyphKerningFuncT into a
--   C_FontGetGlyphKerningFuncT.
wrap_FontGetGlyphKerningFuncT :: Maybe (Ptr (FunPtr C_FontGetGlyphKerningFuncT)) -> FontGetGlyphKerningFuncT_WithClosures -> C_FontGetGlyphKerningFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_FontGetGlyphNameFuncT = Ptr FontT -> Ptr () -> Word32 -> Ptr (Ptr CString) -> Ptr Word32 -> Ptr () -> IO Int32

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the glyph name that corresponds to a glyph
--   ID. The name should be returned in a string output parameter.
type FontGetGlyphNameFuncT = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@glyph@/: The glyph ID to query Word32 -> -- | __Returns:__ @true@ if data found, @false@ otherwise IO ((Int32, [Text]))

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the glyph name that corresponds to a glyph
--   ID. The name should be returned in a string output parameter.
type FontGetGlyphNameFuncT_WithClosures = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@glyph@/: The glyph ID to query Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> -- | __Returns:__ @true@ if data found, @false@ otherwise IO ((Int32, [Text]))

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontGetGlyphNameFuncT :: FontGetGlyphNameFuncT -> FontGetGlyphNameFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FontGetGlyphNameFuncT :: (HasCallStack, MonadIO m) => FunPtr C_FontGetGlyphNameFuncT -> FontT -> Ptr () -> Word32 -> Ptr () -> m (Int32, [Text])

-- | Wrap the callback into a GClosure.
genClosure_FontGetGlyphNameFuncT :: MonadIO m => FontGetGlyphNameFuncT -> m (GClosure C_FontGetGlyphNameFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_FontGetGlyphNameFuncT.
mk_FontGetGlyphNameFuncT :: C_FontGetGlyphNameFuncT -> IO (FunPtr C_FontGetGlyphNameFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphNameFuncT.
noFontGetGlyphNameFuncT :: Maybe FontGetGlyphNameFuncT

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphNameFuncT_WithClosures.
noFontGetGlyphNameFuncT_WithClosures :: Maybe FontGetGlyphNameFuncT_WithClosures

-- | Wrap a FontGetGlyphNameFuncT into a
--   C_FontGetGlyphNameFuncT.
wrap_FontGetGlyphNameFuncT :: Maybe (Ptr (FunPtr C_FontGetGlyphNameFuncT)) -> FontGetGlyphNameFuncT_WithClosures -> C_FontGetGlyphNameFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_FontGetGlyphOriginFuncT = Ptr FontT -> Ptr () -> Word32 -> Ptr Int32 -> Ptr Int32 -> Ptr () -> IO Int32

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the (X,Y) coordinates (in font units) of
--   the origin for a glyph. Each coordinate must be returned in an
--   hb_position_t output parameter.
type FontGetGlyphOriginFuncT = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@glyph@/: The glyph ID to query Word32 -> -- | __Returns:__ @true@ if data found, @false@ otherwise IO ((Int32, Int32, Int32))

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the (X,Y) coordinates (in font units) of
--   the origin for a glyph. Each coordinate must be returned in an
--   hb_position_t output parameter.
type FontGetGlyphOriginFuncT_WithClosures = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@glyph@/: The glyph ID to query Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> -- | __Returns:__ @true@ if data found, @false@ otherwise IO ((Int32, Int32, Int32))

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontGetGlyphOriginFuncT :: FontGetGlyphOriginFuncT -> FontGetGlyphOriginFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FontGetGlyphOriginFuncT :: (HasCallStack, MonadIO m) => FunPtr C_FontGetGlyphOriginFuncT -> FontT -> Ptr () -> Word32 -> Ptr () -> m (Int32, Int32, Int32)

-- | Wrap the callback into a GClosure.
genClosure_FontGetGlyphOriginFuncT :: MonadIO m => FontGetGlyphOriginFuncT -> m (GClosure C_FontGetGlyphOriginFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_FontGetGlyphOriginFuncT.
mk_FontGetGlyphOriginFuncT :: C_FontGetGlyphOriginFuncT -> IO (FunPtr C_FontGetGlyphOriginFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphOriginFuncT.
noFontGetGlyphOriginFuncT :: Maybe FontGetGlyphOriginFuncT

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphOriginFuncT_WithClosures.
noFontGetGlyphOriginFuncT_WithClosures :: Maybe FontGetGlyphOriginFuncT_WithClosures

-- | Wrap a FontGetGlyphOriginFuncT into a
--   C_FontGetGlyphOriginFuncT.
wrap_FontGetGlyphOriginFuncT :: Maybe (Ptr (FunPtr C_FontGetGlyphOriginFuncT)) -> FontGetGlyphOriginFuncT_WithClosures -> C_FontGetGlyphOriginFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_FontGetGlyphShapeFuncT = Ptr FontT -> Ptr () -> Word32 -> Ptr DrawFuncsT -> Ptr () -> Ptr () -> IO ()

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   Since: 4.0.0

-- | Deprecated: (Since version 7.0.0)Use FontDrawGlyphFuncT
--   instead
type FontGetGlyphShapeFuncT = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@glyph@/: The glyph ID to query Word32 -> -- | /@drawFuncs@/: The draw functions to send the shape data to DrawFuncsT -> -- | /@drawData@/: The data accompanying the draw functions Ptr () -> IO ()

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   Since: 4.0.0
type FontGetGlyphShapeFuncT_WithClosures = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@glyph@/: The glyph ID to query Word32 -> -- | /@drawFuncs@/: The draw functions to send the shape data to DrawFuncsT -> -- | /@drawData@/: The data accompanying the draw functions Ptr () -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontGetGlyphShapeFuncT :: FontGetGlyphShapeFuncT -> FontGetGlyphShapeFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FontGetGlyphShapeFuncT :: (HasCallStack, MonadIO m) => FunPtr C_FontGetGlyphShapeFuncT -> FontT -> Ptr () -> Word32 -> DrawFuncsT -> Ptr () -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_FontGetGlyphShapeFuncT :: MonadIO m => FontGetGlyphShapeFuncT -> m (GClosure C_FontGetGlyphShapeFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_FontGetGlyphShapeFuncT.
mk_FontGetGlyphShapeFuncT :: C_FontGetGlyphShapeFuncT -> IO (FunPtr C_FontGetGlyphShapeFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphShapeFuncT.
noFontGetGlyphShapeFuncT :: Maybe FontGetGlyphShapeFuncT

-- | A convenience synonym for Nothing :: Maybe
--   FontGetGlyphShapeFuncT_WithClosures.
noFontGetGlyphShapeFuncT_WithClosures :: Maybe FontGetGlyphShapeFuncT_WithClosures

-- | Wrap a FontGetGlyphShapeFuncT into a
--   C_FontGetGlyphShapeFuncT.
wrap_FontGetGlyphShapeFuncT :: Maybe (Ptr (FunPtr C_FontGetGlyphShapeFuncT)) -> FontGetGlyphShapeFuncT_WithClosures -> C_FontGetGlyphShapeFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_FontGetNominalGlyphFuncT = Ptr FontT -> Ptr () -> Word32 -> Ptr Word32 -> Ptr () -> IO Int32

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the nominal glyph ID for a specified
--   Unicode code point. Glyph IDs must be returned in a
--   hb_codepoint_t output parameter.
type FontGetNominalGlyphFuncT = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@unicode@/: The Unicode code point to query Word32 -> -- | __Returns:__ @true@ if data found, @false@ otherwise IO ((Int32, Word32))

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the nominal glyph ID for a specified
--   Unicode code point. Glyph IDs must be returned in a
--   hb_codepoint_t output parameter.
type FontGetNominalGlyphFuncT_WithClosures = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@unicode@/: The Unicode code point to query Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> -- | __Returns:__ @true@ if data found, @false@ otherwise IO ((Int32, Word32))

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontGetNominalGlyphFuncT :: FontGetNominalGlyphFuncT -> FontGetNominalGlyphFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FontGetNominalGlyphFuncT :: (HasCallStack, MonadIO m) => FunPtr C_FontGetNominalGlyphFuncT -> FontT -> Ptr () -> Word32 -> Ptr () -> m (Int32, Word32)

-- | Wrap the callback into a GClosure.
genClosure_FontGetNominalGlyphFuncT :: MonadIO m => FontGetNominalGlyphFuncT -> m (GClosure C_FontGetNominalGlyphFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_FontGetNominalGlyphFuncT.
mk_FontGetNominalGlyphFuncT :: C_FontGetNominalGlyphFuncT -> IO (FunPtr C_FontGetNominalGlyphFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   FontGetNominalGlyphFuncT.
noFontGetNominalGlyphFuncT :: Maybe FontGetNominalGlyphFuncT

-- | A convenience synonym for Nothing :: Maybe
--   FontGetNominalGlyphFuncT_WithClosures.
noFontGetNominalGlyphFuncT_WithClosures :: Maybe FontGetNominalGlyphFuncT_WithClosures

-- | Wrap a FontGetNominalGlyphFuncT into a
--   C_FontGetNominalGlyphFuncT.
wrap_FontGetNominalGlyphFuncT :: Maybe (Ptr (FunPtr C_FontGetNominalGlyphFuncT)) -> FontGetNominalGlyphFuncT_WithClosures -> C_FontGetNominalGlyphFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_FontGetNominalGlyphsFuncT = Ptr FontT -> Ptr () -> Word32 -> Word32 -> Word32 -> Ptr Word32 -> Word32 -> Ptr () -> IO Word32

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the nominal glyph IDs for a sequence of
--   Unicode code points. Glyph IDs must be returned in a
--   hb_codepoint_t output parameter.
type FontGetNominalGlyphsFuncT = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@count@/: number of code points to query Word32 -> -- | /@firstUnicode@/: The first Unicode code point to query Word32 -> -- | /@unicodeStride@/: The stride between successive code points Word32 -> -- | /@glyphStride@/: The stride between successive glyph IDs Word32 -> -- | __Returns:__ the number of code points processed IO ((Word32, Word32))

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the nominal glyph IDs for a sequence of
--   Unicode code points. Glyph IDs must be returned in a
--   hb_codepoint_t output parameter.
type FontGetNominalGlyphsFuncT_WithClosures = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@count@/: number of code points to query Word32 -> -- | /@firstUnicode@/: The first Unicode code point to query Word32 -> -- | /@unicodeStride@/: The stride between successive code points Word32 -> -- | /@glyphStride@/: The stride between successive glyph IDs Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> -- | __Returns:__ the number of code points processed IO ((Word32, Word32))

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontGetNominalGlyphsFuncT :: FontGetNominalGlyphsFuncT -> FontGetNominalGlyphsFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FontGetNominalGlyphsFuncT :: (HasCallStack, MonadIO m) => FunPtr C_FontGetNominalGlyphsFuncT -> FontT -> Ptr () -> Word32 -> Word32 -> Word32 -> Word32 -> Ptr () -> m (Word32, Word32)

-- | Wrap the callback into a GClosure.
genClosure_FontGetNominalGlyphsFuncT :: MonadIO m => FontGetNominalGlyphsFuncT -> m (GClosure C_FontGetNominalGlyphsFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_FontGetNominalGlyphsFuncT.
mk_FontGetNominalGlyphsFuncT :: C_FontGetNominalGlyphsFuncT -> IO (FunPtr C_FontGetNominalGlyphsFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   FontGetNominalGlyphsFuncT.
noFontGetNominalGlyphsFuncT :: Maybe FontGetNominalGlyphsFuncT

-- | A convenience synonym for Nothing :: Maybe
--   FontGetNominalGlyphsFuncT_WithClosures.
noFontGetNominalGlyphsFuncT_WithClosures :: Maybe FontGetNominalGlyphsFuncT_WithClosures

-- | Wrap a FontGetNominalGlyphsFuncT into a
--   C_FontGetNominalGlyphsFuncT.
wrap_FontGetNominalGlyphsFuncT :: Maybe (Ptr (FunPtr C_FontGetNominalGlyphsFuncT)) -> FontGetNominalGlyphsFuncT_WithClosures -> C_FontGetNominalGlyphsFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_FontGetVariationGlyphFuncT = Ptr FontT -> Ptr () -> Word32 -> Word32 -> Ptr Word32 -> Ptr () -> IO Int32

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the glyph ID for a specified Unicode code
--   point followed by a specified Variation Selector code point. Glyph IDs
--   must be returned in a hb_codepoint_t output parameter.
type FontGetVariationGlyphFuncT = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@unicode@/: The Unicode code point to query Word32 -> -- | /@variationSelector@/: The  variation-selector code point to query Word32 -> -- | __Returns:__ @true@ if data found, @false@ otherwise IO ((Int32, Word32))

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   This method should retrieve the glyph ID for a specified Unicode code
--   point followed by a specified Variation Selector code point. Glyph IDs
--   must be returned in a hb_codepoint_t output parameter.
type FontGetVariationGlyphFuncT_WithClosures = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@unicode@/: The Unicode code point to query Word32 -> -- | /@variationSelector@/: The  variation-selector code point to query Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> -- | __Returns:__ @true@ if data found, @false@ otherwise IO ((Int32, Word32))

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontGetVariationGlyphFuncT :: FontGetVariationGlyphFuncT -> FontGetVariationGlyphFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FontGetVariationGlyphFuncT :: (HasCallStack, MonadIO m) => FunPtr C_FontGetVariationGlyphFuncT -> FontT -> Ptr () -> Word32 -> Word32 -> Ptr () -> m (Int32, Word32)

-- | Wrap the callback into a GClosure.
genClosure_FontGetVariationGlyphFuncT :: MonadIO m => FontGetVariationGlyphFuncT -> m (GClosure C_FontGetVariationGlyphFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_FontGetVariationGlyphFuncT.
mk_FontGetVariationGlyphFuncT :: C_FontGetVariationGlyphFuncT -> IO (FunPtr C_FontGetVariationGlyphFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   FontGetVariationGlyphFuncT.
noFontGetVariationGlyphFuncT :: Maybe FontGetVariationGlyphFuncT

-- | A convenience synonym for Nothing :: Maybe
--   FontGetVariationGlyphFuncT_WithClosures.
noFontGetVariationGlyphFuncT_WithClosures :: Maybe FontGetVariationGlyphFuncT_WithClosures

-- | Wrap a FontGetVariationGlyphFuncT into a
--   C_FontGetVariationGlyphFuncT.
wrap_FontGetVariationGlyphFuncT :: Maybe (Ptr (FunPtr C_FontGetVariationGlyphFuncT)) -> FontGetVariationGlyphFuncT_WithClosures -> C_FontGetVariationGlyphFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_FontPaintGlyphFuncT = Ptr FontT -> Ptr () -> Word32 -> Ptr PaintFuncsT -> Ptr () -> Word32 -> Word32 -> Ptr () -> IO ()

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   Since: 7.0.0
type FontPaintGlyphFuncT = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@glyph@/: The glyph ID to query Word32 -> -- | /@paintFuncs@/: The paint functions to use PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions Ptr () -> -- | /@paletteIndex@/: The color palette to use Word32 -> -- | /@foreground@/: The foreground color Word32 -> IO ()

-- | A virtual method for the FontFuncsT of an FontT object.
--   
--   Since: 7.0.0
type FontPaintGlyphFuncT_WithClosures = -- | /@font@/: t'GI.HarfBuzz.Structs.FontT.FontT' to work upon FontT -> -- | /@fontData@/: /@font@/ user data pointer Ptr () -> -- | /@glyph@/: The glyph ID to query Word32 -> -- | /@paintFuncs@/: The paint functions to use PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions Ptr () -> -- | /@paletteIndex@/: The color palette to use Word32 -> -- | /@foreground@/: The foreground color Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontPaintGlyphFuncT :: FontPaintGlyphFuncT -> FontPaintGlyphFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FontPaintGlyphFuncT :: (HasCallStack, MonadIO m) => FunPtr C_FontPaintGlyphFuncT -> FontT -> Ptr () -> Word32 -> PaintFuncsT -> Ptr () -> Word32 -> Word32 -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_FontPaintGlyphFuncT :: MonadIO m => FontPaintGlyphFuncT -> m (GClosure C_FontPaintGlyphFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_FontPaintGlyphFuncT.
mk_FontPaintGlyphFuncT :: C_FontPaintGlyphFuncT -> IO (FunPtr C_FontPaintGlyphFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   FontPaintGlyphFuncT.
noFontPaintGlyphFuncT :: Maybe FontPaintGlyphFuncT

-- | A convenience synonym for Nothing :: Maybe
--   FontPaintGlyphFuncT_WithClosures.
noFontPaintGlyphFuncT_WithClosures :: Maybe FontPaintGlyphFuncT_WithClosures

-- | Wrap a FontPaintGlyphFuncT into a C_FontPaintGlyphFuncT.
wrap_FontPaintGlyphFuncT :: Maybe (Ptr (FunPtr C_FontPaintGlyphFuncT)) -> FontPaintGlyphFuncT_WithClosures -> C_FontPaintGlyphFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_GetTableTagsFuncT = Ptr FaceT -> Word32 -> Ptr Word32 -> Ptr (Ptr Word32) -> Ptr () -> IO Word32

-- | Callback function for faceGetTableTags.
--   
--   Since: 10.0.0
type GetTableTagsFuncT = -- | /@face@/: A face object FaceT -> -- | /@startOffset@/: The index of first table tag to retrieve Word32 -> -- | __Returns:__ Total number of tables, or zero if it is not possible to list IO ((Word32, [Word32]))

-- | Callback function for faceGetTableTags.
--   
--   Since: 10.0.0
type GetTableTagsFuncT_WithClosures = -- | /@face@/: A face object FaceT -> -- | /@startOffset@/: The index of first table tag to retrieve Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> -- | __Returns:__ Total number of tables, or zero if it is not possible to list IO ((Word32, [Word32]))

-- | A simple wrapper that ignores the closure arguments.
drop_closures_GetTableTagsFuncT :: GetTableTagsFuncT -> GetTableTagsFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_GetTableTagsFuncT :: (HasCallStack, MonadIO m) => FunPtr C_GetTableTagsFuncT -> FaceT -> Word32 -> Ptr () -> m (Word32, [Word32])

-- | Wrap the callback into a GClosure.
genClosure_GetTableTagsFuncT :: MonadIO m => GetTableTagsFuncT -> m (GClosure C_GetTableTagsFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_GetTableTagsFuncT.
mk_GetTableTagsFuncT :: C_GetTableTagsFuncT -> IO (FunPtr C_GetTableTagsFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   GetTableTagsFuncT.
noGetTableTagsFuncT :: Maybe GetTableTagsFuncT

-- | A convenience synonym for Nothing :: Maybe
--   GetTableTagsFuncT_WithClosures.
noGetTableTagsFuncT_WithClosures :: Maybe GetTableTagsFuncT_WithClosures

-- | Wrap a GetTableTagsFuncT into a C_GetTableTagsFuncT.
wrap_GetTableTagsFuncT :: Maybe (Ptr (FunPtr C_GetTableTagsFuncT)) -> GetTableTagsFuncT_WithClosures -> C_GetTableTagsFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_PaintColorFuncT = Ptr PaintFuncsT -> Ptr () -> Int32 -> Word32 -> Ptr () -> IO ()

-- | A virtual method for the PaintFuncsT to paint a color
--   everywhere within the current clip.
--   
--   Since: 7.0.0
type PaintColorFuncT = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@isForeground@/: whether the color is the foreground Int32 -> -- | /@color@/: The color to use, unpremultiplied Word32 -> IO ()

-- | A virtual method for the PaintFuncsT to paint a color
--   everywhere within the current clip.
--   
--   Since: 7.0.0
type PaintColorFuncT_WithClosures = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@isForeground@/: whether the color is the foreground Int32 -> -- | /@color@/: The color to use, unpremultiplied Word32 -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.paintFuncsSetColorFunc' Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PaintColorFuncT :: PaintColorFuncT -> PaintColorFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PaintColorFuncT :: (HasCallStack, MonadIO m) => FunPtr C_PaintColorFuncT -> PaintFuncsT -> Ptr () -> Int32 -> Word32 -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_PaintColorFuncT :: MonadIO m => PaintColorFuncT -> m (GClosure C_PaintColorFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_PaintColorFuncT.
mk_PaintColorFuncT :: C_PaintColorFuncT -> IO (FunPtr C_PaintColorFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   PaintColorFuncT.
noPaintColorFuncT :: Maybe PaintColorFuncT

-- | A convenience synonym for Nothing :: Maybe
--   PaintColorFuncT_WithClosures.
noPaintColorFuncT_WithClosures :: Maybe PaintColorFuncT_WithClosures

-- | Wrap a PaintColorFuncT into a C_PaintColorFuncT.
wrap_PaintColorFuncT :: Maybe (Ptr (FunPtr C_PaintColorFuncT)) -> PaintColorFuncT_WithClosures -> C_PaintColorFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_PaintColorGlyphFuncT = Ptr PaintFuncsT -> Ptr () -> Word32 -> Ptr FontT -> Ptr () -> IO Int32

-- | A virtual method for the PaintFuncsT to render a color glyph by
--   glyph index.
--   
--   Since: 8.2.0
type PaintColorGlyphFuncT = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@glyph@/: the glyph ID Word32 -> -- | /@font@/: the font FontT -> -- | __Returns:__ @/true/@ if the glyph was painted, @/false/@ otherwise. IO Int32

-- | A virtual method for the PaintFuncsT to render a color glyph by
--   glyph index.
--   
--   Since: 8.2.0
type PaintColorGlyphFuncT_WithClosures = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@glyph@/: the glyph ID Word32 -> -- | /@font@/: the font FontT -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.paintFuncsSetColorGlyphFunc' Ptr () -> -- | __Returns:__ @/true/@ if the glyph was painted, @/false/@ otherwise. IO Int32

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PaintColorGlyphFuncT :: PaintColorGlyphFuncT -> PaintColorGlyphFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PaintColorGlyphFuncT :: (HasCallStack, MonadIO m) => FunPtr C_PaintColorGlyphFuncT -> PaintFuncsT -> Ptr () -> Word32 -> FontT -> Ptr () -> m Int32

-- | Wrap the callback into a GClosure.
genClosure_PaintColorGlyphFuncT :: MonadIO m => PaintColorGlyphFuncT -> m (GClosure C_PaintColorGlyphFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_PaintColorGlyphFuncT.
mk_PaintColorGlyphFuncT :: C_PaintColorGlyphFuncT -> IO (FunPtr C_PaintColorGlyphFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   PaintColorGlyphFuncT.
noPaintColorGlyphFuncT :: Maybe PaintColorGlyphFuncT

-- | A convenience synonym for Nothing :: Maybe
--   PaintColorGlyphFuncT_WithClosures.
noPaintColorGlyphFuncT_WithClosures :: Maybe PaintColorGlyphFuncT_WithClosures

-- | Wrap a PaintColorGlyphFuncT into a
--   C_PaintColorGlyphFuncT.
wrap_PaintColorGlyphFuncT :: Maybe (Ptr (FunPtr C_PaintColorGlyphFuncT)) -> PaintColorGlyphFuncT_WithClosures -> C_PaintColorGlyphFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_PaintCustomPaletteColorFuncT = Ptr PaintFuncsT -> Ptr () -> Word32 -> Ptr Word32 -> Ptr () -> IO Int32

-- | A virtual method for the PaintFuncsT to fetch a color from the
--   custom color palette.
--   
--   Custom palette colors override the colors from the fonts selected
--   color palette. It is not necessary to override all palette entries;
--   for entries that should be taken from the font palette, return
--   false.
--   
--   This function might get called multiple times, but the custom palette
--   is expected to remain unchanged for duration of a
--   fontPaintGlyph call.
--   
--   Since: 7.0.0
type PaintCustomPaletteColorFuncT = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@colorIndex@/: the color index Word32 -> -- | __Returns:__ @true@ if found, @false@ otherwise IO ((Int32, Word32))

-- | A virtual method for the PaintFuncsT to fetch a color from the
--   custom color palette.
--   
--   Custom palette colors override the colors from the fonts selected
--   color palette. It is not necessary to override all palette entries;
--   for entries that should be taken from the font palette, return
--   false.
--   
--   This function might get called multiple times, but the custom palette
--   is expected to remain unchanged for duration of a
--   fontPaintGlyph call.
--   
--   Since: 7.0.0
type PaintCustomPaletteColorFuncT_WithClosures = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@colorIndex@/: the color index Word32 -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.paintFuncsSetPopGroupFunc' Ptr () -> -- | __Returns:__ @true@ if found, @false@ otherwise IO ((Int32, Word32))

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PaintCustomPaletteColorFuncT :: PaintCustomPaletteColorFuncT -> PaintCustomPaletteColorFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PaintCustomPaletteColorFuncT :: (HasCallStack, MonadIO m) => FunPtr C_PaintCustomPaletteColorFuncT -> PaintFuncsT -> Ptr () -> Word32 -> Ptr () -> m (Int32, Word32)

-- | Wrap the callback into a GClosure.
genClosure_PaintCustomPaletteColorFuncT :: MonadIO m => PaintCustomPaletteColorFuncT -> m (GClosure C_PaintCustomPaletteColorFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_PaintCustomPaletteColorFuncT.
mk_PaintCustomPaletteColorFuncT :: C_PaintCustomPaletteColorFuncT -> IO (FunPtr C_PaintCustomPaletteColorFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   PaintCustomPaletteColorFuncT.
noPaintCustomPaletteColorFuncT :: Maybe PaintCustomPaletteColorFuncT

-- | A convenience synonym for Nothing :: Maybe
--   PaintCustomPaletteColorFuncT_WithClosures.
noPaintCustomPaletteColorFuncT_WithClosures :: Maybe PaintCustomPaletteColorFuncT_WithClosures

-- | Wrap a PaintCustomPaletteColorFuncT into a
--   C_PaintCustomPaletteColorFuncT.
wrap_PaintCustomPaletteColorFuncT :: Maybe (Ptr (FunPtr C_PaintCustomPaletteColorFuncT)) -> PaintCustomPaletteColorFuncT_WithClosures -> C_PaintCustomPaletteColorFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_PaintImageFuncT = Ptr PaintFuncsT -> Ptr () -> Ptr BlobT -> Word32 -> Word32 -> Word32 -> CFloat -> Ptr GlyphExtentsT -> Ptr () -> IO Int32

-- | A virtual method for the PaintFuncsT to paint a glyph image.
--   
--   This method is called for glyphs with image blobs in the CBDT, sbix or
--   SVG tables. The format identifies the kind of data
--   that is contained in image. Possible values include
--   HB_PAINT_IMAGE_FORMAT_PNG,
--   HB_PAINT_IMAGE_FORMAT_SVG and
--   HB_PAINT_IMAGE_FORMAT_BGRA.
--   
--   The image dimensions and glyph extents are provided if available, and
--   should be used to size and position the image.
--   
--   Since: 7.0.0
type PaintImageFuncT = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@image@/: the image data BlobT -> -- | /@width@/: width of the raster image in pixels, or 0 Word32 -> -- | /@height@/: height of the raster image in pixels, or 0 Word32 -> -- | /@format@/: the image format as a tag Word32 -> -- | /@slant@/: the synthetic slant ratio to be applied to the image during rendering Float -> -- | /@extents@/: glyph extents for desired rendering Maybe GlyphExtentsT -> -- | __Returns:__ Whether the operation was successful. IO Int32

-- | A virtual method for the PaintFuncsT to paint a glyph image.
--   
--   This method is called for glyphs with image blobs in the CBDT, sbix or
--   SVG tables. The format identifies the kind of data
--   that is contained in image. Possible values include
--   HB_PAINT_IMAGE_FORMAT_PNG,
--   HB_PAINT_IMAGE_FORMAT_SVG and
--   HB_PAINT_IMAGE_FORMAT_BGRA.
--   
--   The image dimensions and glyph extents are provided if available, and
--   should be used to size and position the image.
--   
--   Since: 7.0.0
type PaintImageFuncT_WithClosures = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@image@/: the image data BlobT -> -- | /@width@/: width of the raster image in pixels, or 0 Word32 -> -- | /@height@/: height of the raster image in pixels, or 0 Word32 -> -- | /@format@/: the image format as a tag Word32 -> -- | /@slant@/: the synthetic slant ratio to be applied to the image during rendering Float -> -- | /@extents@/: glyph extents for desired rendering Maybe GlyphExtentsT -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.paintFuncsSetImageFunc' Ptr () -> -- | __Returns:__ Whether the operation was successful. IO Int32

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PaintImageFuncT :: PaintImageFuncT -> PaintImageFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PaintImageFuncT :: (HasCallStack, MonadIO m) => FunPtr C_PaintImageFuncT -> PaintFuncsT -> Ptr () -> BlobT -> Word32 -> Word32 -> Word32 -> Float -> Maybe GlyphExtentsT -> Ptr () -> m Int32

-- | Wrap the callback into a GClosure.
genClosure_PaintImageFuncT :: MonadIO m => PaintImageFuncT -> m (GClosure C_PaintImageFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_PaintImageFuncT.
mk_PaintImageFuncT :: C_PaintImageFuncT -> IO (FunPtr C_PaintImageFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   PaintImageFuncT.
noPaintImageFuncT :: Maybe PaintImageFuncT

-- | A convenience synonym for Nothing :: Maybe
--   PaintImageFuncT_WithClosures.
noPaintImageFuncT_WithClosures :: Maybe PaintImageFuncT_WithClosures

-- | Wrap a PaintImageFuncT into a C_PaintImageFuncT.
wrap_PaintImageFuncT :: Maybe (Ptr (FunPtr C_PaintImageFuncT)) -> PaintImageFuncT_WithClosures -> C_PaintImageFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_PaintLinearGradientFuncT = Ptr PaintFuncsT -> Ptr () -> Ptr ColorLineT -> CFloat -> CFloat -> CFloat -> CFloat -> CFloat -> CFloat -> Ptr () -> IO ()

-- | A virtual method for the PaintFuncsT to paint a linear gradient
--   everywhere within the current clip.
--   
--   The colorLine object contains information about the
--   colors of the gradients. It is only valid for the duration of the
--   callback, you cannot keep it around.
--   
--   The coordinates of the points are interpreted according to the current
--   transform.
--   
--   See the OpenType spec COLR section for details on how the
--   points define the direction of the gradient, and how to interpret the
--   colorLine.
--   
--   Since: 7.0.0
type PaintLinearGradientFuncT = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@colorLine@/: Color information for the gradient ColorLineT -> -- | /@x0@/: X coordinate of the first point Float -> -- | /@y0@/: Y coordinate of the first point Float -> -- | /@x1@/: X coordinate of the second point Float -> -- | /@y1@/: Y coordinate of the second point Float -> -- | /@x2@/: X coordinate of the third point Float -> -- | /@y2@/: Y coordinate of the third point Float -> IO ()

-- | A virtual method for the PaintFuncsT to paint a linear gradient
--   everywhere within the current clip.
--   
--   The colorLine object contains information about the
--   colors of the gradients. It is only valid for the duration of the
--   callback, you cannot keep it around.
--   
--   The coordinates of the points are interpreted according to the current
--   transform.
--   
--   See the OpenType spec COLR section for details on how the
--   points define the direction of the gradient, and how to interpret the
--   colorLine.
--   
--   Since: 7.0.0
type PaintLinearGradientFuncT_WithClosures = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@colorLine@/: Color information for the gradient ColorLineT -> -- | /@x0@/: X coordinate of the first point Float -> -- | /@y0@/: Y coordinate of the first point Float -> -- | /@x1@/: X coordinate of the second point Float -> -- | /@y1@/: Y coordinate of the second point Float -> -- | /@x2@/: X coordinate of the third point Float -> -- | /@y2@/: Y coordinate of the third point Float -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.paintFuncsSetLinearGradientFunc' Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PaintLinearGradientFuncT :: PaintLinearGradientFuncT -> PaintLinearGradientFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PaintLinearGradientFuncT :: (HasCallStack, MonadIO m) => FunPtr C_PaintLinearGradientFuncT -> PaintFuncsT -> Ptr () -> ColorLineT -> Float -> Float -> Float -> Float -> Float -> Float -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_PaintLinearGradientFuncT :: MonadIO m => PaintLinearGradientFuncT -> m (GClosure C_PaintLinearGradientFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_PaintLinearGradientFuncT.
mk_PaintLinearGradientFuncT :: C_PaintLinearGradientFuncT -> IO (FunPtr C_PaintLinearGradientFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   PaintLinearGradientFuncT.
noPaintLinearGradientFuncT :: Maybe PaintLinearGradientFuncT

-- | A convenience synonym for Nothing :: Maybe
--   PaintLinearGradientFuncT_WithClosures.
noPaintLinearGradientFuncT_WithClosures :: Maybe PaintLinearGradientFuncT_WithClosures

-- | Wrap a PaintLinearGradientFuncT into a
--   C_PaintLinearGradientFuncT.
wrap_PaintLinearGradientFuncT :: Maybe (Ptr (FunPtr C_PaintLinearGradientFuncT)) -> PaintLinearGradientFuncT_WithClosures -> C_PaintLinearGradientFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_PaintPopClipFuncT = Ptr PaintFuncsT -> Ptr () -> Ptr () -> IO ()

-- | A virtual method for the PaintFuncsT to undo the effect of a
--   prior call to the
--   hb_paint_funcs_push_clip_glyph_func_t or
--   hb_paint_funcs_push_clip_rectangle_func_t vfuncs.
--   
--   Since: 7.0.0
type PaintPopClipFuncT = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> IO ()

-- | A virtual method for the PaintFuncsT to undo the effect of a
--   prior call to the
--   hb_paint_funcs_push_clip_glyph_func_t or
--   hb_paint_funcs_push_clip_rectangle_func_t vfuncs.
--   
--   Since: 7.0.0
type PaintPopClipFuncT_WithClosures = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.paintFuncsSetPopClipFunc' Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PaintPopClipFuncT :: PaintPopClipFuncT -> PaintPopClipFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PaintPopClipFuncT :: (HasCallStack, MonadIO m) => FunPtr C_PaintPopClipFuncT -> PaintFuncsT -> Ptr () -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_PaintPopClipFuncT :: MonadIO m => PaintPopClipFuncT -> m (GClosure C_PaintPopClipFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_PaintPopClipFuncT.
mk_PaintPopClipFuncT :: C_PaintPopClipFuncT -> IO (FunPtr C_PaintPopClipFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   PaintPopClipFuncT.
noPaintPopClipFuncT :: Maybe PaintPopClipFuncT

-- | A convenience synonym for Nothing :: Maybe
--   PaintPopClipFuncT_WithClosures.
noPaintPopClipFuncT_WithClosures :: Maybe PaintPopClipFuncT_WithClosures

-- | Wrap a PaintPopClipFuncT into a C_PaintPopClipFuncT.
wrap_PaintPopClipFuncT :: Maybe (Ptr (FunPtr C_PaintPopClipFuncT)) -> PaintPopClipFuncT_WithClosures -> C_PaintPopClipFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_PaintPopGroupFuncT = Ptr PaintFuncsT -> Ptr () -> CUInt -> Ptr () -> IO ()

-- | A virtual method for the PaintFuncsT to undo the effect of a
--   prior call to the hb_paint_funcs_push_group_func_t
--   vfunc.
--   
--   This call stops the redirection to the intermediate surface, and then
--   composites it on the previous surface, using the compositing mode
--   passed to this call.
--   
--   Since: 7.0.0
type PaintPopGroupFuncT = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@mode@/: the compositing mode to use PaintCompositeModeT -> IO ()

-- | A virtual method for the PaintFuncsT to undo the effect of a
--   prior call to the hb_paint_funcs_push_group_func_t
--   vfunc.
--   
--   This call stops the redirection to the intermediate surface, and then
--   composites it on the previous surface, using the compositing mode
--   passed to this call.
--   
--   Since: 7.0.0
type PaintPopGroupFuncT_WithClosures = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@mode@/: the compositing mode to use PaintCompositeModeT -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.paintFuncsSetPopGroupFunc' Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PaintPopGroupFuncT :: PaintPopGroupFuncT -> PaintPopGroupFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PaintPopGroupFuncT :: (HasCallStack, MonadIO m) => FunPtr C_PaintPopGroupFuncT -> PaintFuncsT -> Ptr () -> PaintCompositeModeT -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_PaintPopGroupFuncT :: MonadIO m => PaintPopGroupFuncT -> m (GClosure C_PaintPopGroupFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_PaintPopGroupFuncT.
mk_PaintPopGroupFuncT :: C_PaintPopGroupFuncT -> IO (FunPtr C_PaintPopGroupFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   PaintPopGroupFuncT.
noPaintPopGroupFuncT :: Maybe PaintPopGroupFuncT

-- | A convenience synonym for Nothing :: Maybe
--   PaintPopGroupFuncT_WithClosures.
noPaintPopGroupFuncT_WithClosures :: Maybe PaintPopGroupFuncT_WithClosures

-- | Wrap a PaintPopGroupFuncT into a C_PaintPopGroupFuncT.
wrap_PaintPopGroupFuncT :: Maybe (Ptr (FunPtr C_PaintPopGroupFuncT)) -> PaintPopGroupFuncT_WithClosures -> C_PaintPopGroupFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_PaintPopTransformFuncT = Ptr PaintFuncsT -> Ptr () -> Ptr () -> IO ()

-- | A virtual method for the PaintFuncsT to undo the effect of a
--   prior call to the hb_paint_funcs_push_transform_func_t
--   vfunc.
--   
--   Since: 7.0.0
type PaintPopTransformFuncT = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> IO ()

-- | A virtual method for the PaintFuncsT to undo the effect of a
--   prior call to the hb_paint_funcs_push_transform_func_t
--   vfunc.
--   
--   Since: 7.0.0
type PaintPopTransformFuncT_WithClosures = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.paintFuncsSetPopTransformFunc' Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PaintPopTransformFuncT :: PaintPopTransformFuncT -> PaintPopTransformFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PaintPopTransformFuncT :: (HasCallStack, MonadIO m) => FunPtr C_PaintPopTransformFuncT -> PaintFuncsT -> Ptr () -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_PaintPopTransformFuncT :: MonadIO m => PaintPopTransformFuncT -> m (GClosure C_PaintPopTransformFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_PaintPopTransformFuncT.
mk_PaintPopTransformFuncT :: C_PaintPopTransformFuncT -> IO (FunPtr C_PaintPopTransformFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   PaintPopTransformFuncT.
noPaintPopTransformFuncT :: Maybe PaintPopTransformFuncT

-- | A convenience synonym for Nothing :: Maybe
--   PaintPopTransformFuncT_WithClosures.
noPaintPopTransformFuncT_WithClosures :: Maybe PaintPopTransformFuncT_WithClosures

-- | Wrap a PaintPopTransformFuncT into a
--   C_PaintPopTransformFuncT.
wrap_PaintPopTransformFuncT :: Maybe (Ptr (FunPtr C_PaintPopTransformFuncT)) -> PaintPopTransformFuncT_WithClosures -> C_PaintPopTransformFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_PaintPushClipGlyphFuncT = Ptr PaintFuncsT -> Ptr () -> Word32 -> Ptr FontT -> Ptr () -> IO ()

-- | A virtual method for the PaintFuncsT to clip subsequent paint
--   calls to the outline of a glyph.
--   
--   The coordinates of the glyph outline are interpreted according to the
--   current transform.
--   
--   This clip is applied in addition to the current clip, and remains in
--   effect until a matching call to the
--   hb_paint_funcs_pop_clip_func_t vfunc.
--   
--   Since: 7.0.0
type PaintPushClipGlyphFuncT = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@glyph@/: the glyph ID Word32 -> -- | /@font@/: the font FontT -> IO ()

-- | A virtual method for the PaintFuncsT to clip subsequent paint
--   calls to the outline of a glyph.
--   
--   The coordinates of the glyph outline are interpreted according to the
--   current transform.
--   
--   This clip is applied in addition to the current clip, and remains in
--   effect until a matching call to the
--   hb_paint_funcs_pop_clip_func_t vfunc.
--   
--   Since: 7.0.0
type PaintPushClipGlyphFuncT_WithClosures = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@glyph@/: the glyph ID Word32 -> -- | /@font@/: the font FontT -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.paintFuncsSetPushClipGlyphFunc' Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PaintPushClipGlyphFuncT :: PaintPushClipGlyphFuncT -> PaintPushClipGlyphFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PaintPushClipGlyphFuncT :: (HasCallStack, MonadIO m) => FunPtr C_PaintPushClipGlyphFuncT -> PaintFuncsT -> Ptr () -> Word32 -> FontT -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_PaintPushClipGlyphFuncT :: MonadIO m => PaintPushClipGlyphFuncT -> m (GClosure C_PaintPushClipGlyphFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_PaintPushClipGlyphFuncT.
mk_PaintPushClipGlyphFuncT :: C_PaintPushClipGlyphFuncT -> IO (FunPtr C_PaintPushClipGlyphFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   PaintPushClipGlyphFuncT.
noPaintPushClipGlyphFuncT :: Maybe PaintPushClipGlyphFuncT

-- | A convenience synonym for Nothing :: Maybe
--   PaintPushClipGlyphFuncT_WithClosures.
noPaintPushClipGlyphFuncT_WithClosures :: Maybe PaintPushClipGlyphFuncT_WithClosures

-- | Wrap a PaintPushClipGlyphFuncT into a
--   C_PaintPushClipGlyphFuncT.
wrap_PaintPushClipGlyphFuncT :: Maybe (Ptr (FunPtr C_PaintPushClipGlyphFuncT)) -> PaintPushClipGlyphFuncT_WithClosures -> C_PaintPushClipGlyphFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_PaintPushClipRectangleFuncT = Ptr PaintFuncsT -> Ptr () -> CFloat -> CFloat -> CFloat -> CFloat -> Ptr () -> IO ()

-- | A virtual method for the PaintFuncsT to clip subsequent paint
--   calls to a rectangle.
--   
--   The coordinates of the rectangle are interpreted according to the
--   current transform.
--   
--   This clip is applied in addition to the current clip, and remains in
--   effect until a matching call to the
--   hb_paint_funcs_pop_clip_func_t vfunc.
--   
--   Since: 7.0.0
type PaintPushClipRectangleFuncT = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@xmin@/: min X for the rectangle Float -> -- | /@ymin@/: min Y for the rectangle Float -> -- | /@xmax@/: max X for the rectangle Float -> -- | /@ymax@/: max Y for the rectangle Float -> IO ()

-- | A virtual method for the PaintFuncsT to clip subsequent paint
--   calls to a rectangle.
--   
--   The coordinates of the rectangle are interpreted according to the
--   current transform.
--   
--   This clip is applied in addition to the current clip, and remains in
--   effect until a matching call to the
--   hb_paint_funcs_pop_clip_func_t vfunc.
--   
--   Since: 7.0.0
type PaintPushClipRectangleFuncT_WithClosures = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@xmin@/: min X for the rectangle Float -> -- | /@ymin@/: min Y for the rectangle Float -> -- | /@xmax@/: max X for the rectangle Float -> -- | /@ymax@/: max Y for the rectangle Float -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.paintFuncsSetPushClipRectangleFunc' Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PaintPushClipRectangleFuncT :: PaintPushClipRectangleFuncT -> PaintPushClipRectangleFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PaintPushClipRectangleFuncT :: (HasCallStack, MonadIO m) => FunPtr C_PaintPushClipRectangleFuncT -> PaintFuncsT -> Ptr () -> Float -> Float -> Float -> Float -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_PaintPushClipRectangleFuncT :: MonadIO m => PaintPushClipRectangleFuncT -> m (GClosure C_PaintPushClipRectangleFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_PaintPushClipRectangleFuncT.
mk_PaintPushClipRectangleFuncT :: C_PaintPushClipRectangleFuncT -> IO (FunPtr C_PaintPushClipRectangleFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   PaintPushClipRectangleFuncT.
noPaintPushClipRectangleFuncT :: Maybe PaintPushClipRectangleFuncT

-- | A convenience synonym for Nothing :: Maybe
--   PaintPushClipRectangleFuncT_WithClosures.
noPaintPushClipRectangleFuncT_WithClosures :: Maybe PaintPushClipRectangleFuncT_WithClosures

-- | Wrap a PaintPushClipRectangleFuncT into a
--   C_PaintPushClipRectangleFuncT.
wrap_PaintPushClipRectangleFuncT :: Maybe (Ptr (FunPtr C_PaintPushClipRectangleFuncT)) -> PaintPushClipRectangleFuncT_WithClosures -> C_PaintPushClipRectangleFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_PaintPushGroupFuncT = Ptr PaintFuncsT -> Ptr () -> Ptr () -> IO ()

-- | A virtual method for the PaintFuncsT to use an intermediate
--   surface for subsequent paint calls.
--   
--   The drawing will be redirected to an intermediate surface until a
--   matching call to the hb_paint_funcs_pop_group_func_t
--   vfunc.
--   
--   Since: 7.0.0
type PaintPushGroupFuncT = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> IO ()

-- | A virtual method for the PaintFuncsT to use an intermediate
--   surface for subsequent paint calls.
--   
--   The drawing will be redirected to an intermediate surface until a
--   matching call to the hb_paint_funcs_pop_group_func_t
--   vfunc.
--   
--   Since: 7.0.0
type PaintPushGroupFuncT_WithClosures = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.paintFuncsSetPushGroupFunc' Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PaintPushGroupFuncT :: PaintPushGroupFuncT -> PaintPushGroupFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PaintPushGroupFuncT :: (HasCallStack, MonadIO m) => FunPtr C_PaintPushGroupFuncT -> PaintFuncsT -> Ptr () -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_PaintPushGroupFuncT :: MonadIO m => PaintPushGroupFuncT -> m (GClosure C_PaintPushGroupFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_PaintPushGroupFuncT.
mk_PaintPushGroupFuncT :: C_PaintPushGroupFuncT -> IO (FunPtr C_PaintPushGroupFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   PaintPushGroupFuncT.
noPaintPushGroupFuncT :: Maybe PaintPushGroupFuncT

-- | A convenience synonym for Nothing :: Maybe
--   PaintPushGroupFuncT_WithClosures.
noPaintPushGroupFuncT_WithClosures :: Maybe PaintPushGroupFuncT_WithClosures

-- | Wrap a PaintPushGroupFuncT into a C_PaintPushGroupFuncT.
wrap_PaintPushGroupFuncT :: Maybe (Ptr (FunPtr C_PaintPushGroupFuncT)) -> PaintPushGroupFuncT_WithClosures -> C_PaintPushGroupFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_PaintPushTransformFuncT = Ptr PaintFuncsT -> Ptr () -> CFloat -> CFloat -> CFloat -> CFloat -> CFloat -> CFloat -> Ptr () -> IO ()

-- | A virtual method for the PaintFuncsT to apply a transform to
--   subsequent paint calls.
--   
--   This transform is applied after the current transform, and remains in
--   effect until a matching call to the
--   hb_paint_funcs_pop_transform_func_t vfunc.
--   
--   Since: 7.0.0
type PaintPushTransformFuncT = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@xx@/: xx component of the transform matrix Float -> -- | /@yx@/: yx component of the transform matrix Float -> -- | /@xy@/: xy component of the transform matrix Float -> -- | /@yy@/: yy component of the transform matrix Float -> -- | /@dx@/: dx component of the transform matrix Float -> -- | /@dy@/: dy component of the transform matrix Float -> IO ()

-- | A virtual method for the PaintFuncsT to apply a transform to
--   subsequent paint calls.
--   
--   This transform is applied after the current transform, and remains in
--   effect until a matching call to the
--   hb_paint_funcs_pop_transform_func_t vfunc.
--   
--   Since: 7.0.0
type PaintPushTransformFuncT_WithClosures = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@xx@/: xx component of the transform matrix Float -> -- | /@yx@/: yx component of the transform matrix Float -> -- | /@xy@/: xy component of the transform matrix Float -> -- | /@yy@/: yy component of the transform matrix Float -> -- | /@dx@/: dx component of the transform matrix Float -> -- | /@dy@/: dy component of the transform matrix Float -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.paintFuncsSetPushTransformFunc' Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PaintPushTransformFuncT :: PaintPushTransformFuncT -> PaintPushTransformFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PaintPushTransformFuncT :: (HasCallStack, MonadIO m) => FunPtr C_PaintPushTransformFuncT -> PaintFuncsT -> Ptr () -> Float -> Float -> Float -> Float -> Float -> Float -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_PaintPushTransformFuncT :: MonadIO m => PaintPushTransformFuncT -> m (GClosure C_PaintPushTransformFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_PaintPushTransformFuncT.
mk_PaintPushTransformFuncT :: C_PaintPushTransformFuncT -> IO (FunPtr C_PaintPushTransformFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   PaintPushTransformFuncT.
noPaintPushTransformFuncT :: Maybe PaintPushTransformFuncT

-- | A convenience synonym for Nothing :: Maybe
--   PaintPushTransformFuncT_WithClosures.
noPaintPushTransformFuncT_WithClosures :: Maybe PaintPushTransformFuncT_WithClosures

-- | Wrap a PaintPushTransformFuncT into a
--   C_PaintPushTransformFuncT.
wrap_PaintPushTransformFuncT :: Maybe (Ptr (FunPtr C_PaintPushTransformFuncT)) -> PaintPushTransformFuncT_WithClosures -> C_PaintPushTransformFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_PaintRadialGradientFuncT = Ptr PaintFuncsT -> Ptr () -> Ptr ColorLineT -> CFloat -> CFloat -> CFloat -> CFloat -> CFloat -> CFloat -> Ptr () -> IO ()

-- | A virtual method for the PaintFuncsT to paint a radial gradient
--   everywhere within the current clip.
--   
--   The colorLine object contains information about the
--   colors of the gradients. It is only valid for the duration of the
--   callback, you cannot keep it around.
--   
--   The coordinates of the points are interpreted according to the current
--   transform.
--   
--   See the OpenType spec COLR section for details on how the
--   points define the direction of the gradient, and how to interpret the
--   colorLine.
--   
--   Since: 7.0.0
type PaintRadialGradientFuncT = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@colorLine@/: Color information for the gradient ColorLineT -> -- | /@x0@/: X coordinate of the first circle\'s center Float -> -- | /@y0@/: Y coordinate of the first circle\'s center Float -> -- | /@r0@/: radius of the first circle Float -> -- | /@x1@/: X coordinate of the second circle\'s center Float -> -- | /@y1@/: Y coordinate of the second circle\'s center Float -> -- | /@r1@/: radius of the second circle Float -> IO ()

-- | A virtual method for the PaintFuncsT to paint a radial gradient
--   everywhere within the current clip.
--   
--   The colorLine object contains information about the
--   colors of the gradients. It is only valid for the duration of the
--   callback, you cannot keep it around.
--   
--   The coordinates of the points are interpreted according to the current
--   transform.
--   
--   See the OpenType spec COLR section for details on how the
--   points define the direction of the gradient, and how to interpret the
--   colorLine.
--   
--   Since: 7.0.0
type PaintRadialGradientFuncT_WithClosures = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@colorLine@/: Color information for the gradient ColorLineT -> -- | /@x0@/: X coordinate of the first circle\'s center Float -> -- | /@y0@/: Y coordinate of the first circle\'s center Float -> -- | /@r0@/: radius of the first circle Float -> -- | /@x1@/: X coordinate of the second circle\'s center Float -> -- | /@y1@/: Y coordinate of the second circle\'s center Float -> -- | /@r1@/: radius of the second circle Float -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.paintFuncsSetRadialGradientFunc' Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PaintRadialGradientFuncT :: PaintRadialGradientFuncT -> PaintRadialGradientFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PaintRadialGradientFuncT :: (HasCallStack, MonadIO m) => FunPtr C_PaintRadialGradientFuncT -> PaintFuncsT -> Ptr () -> ColorLineT -> Float -> Float -> Float -> Float -> Float -> Float -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_PaintRadialGradientFuncT :: MonadIO m => PaintRadialGradientFuncT -> m (GClosure C_PaintRadialGradientFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_PaintRadialGradientFuncT.
mk_PaintRadialGradientFuncT :: C_PaintRadialGradientFuncT -> IO (FunPtr C_PaintRadialGradientFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   PaintRadialGradientFuncT.
noPaintRadialGradientFuncT :: Maybe PaintRadialGradientFuncT

-- | A convenience synonym for Nothing :: Maybe
--   PaintRadialGradientFuncT_WithClosures.
noPaintRadialGradientFuncT_WithClosures :: Maybe PaintRadialGradientFuncT_WithClosures

-- | Wrap a PaintRadialGradientFuncT into a
--   C_PaintRadialGradientFuncT.
wrap_PaintRadialGradientFuncT :: Maybe (Ptr (FunPtr C_PaintRadialGradientFuncT)) -> PaintRadialGradientFuncT_WithClosures -> C_PaintRadialGradientFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_PaintSweepGradientFuncT = Ptr PaintFuncsT -> Ptr () -> Ptr ColorLineT -> CFloat -> CFloat -> CFloat -> CFloat -> Ptr () -> IO ()

-- | A virtual method for the PaintFuncsT to paint a sweep gradient
--   everywhere within the current clip.
--   
--   The colorLine object contains information about the
--   colors of the gradients. It is only valid for the duration of the
--   callback, you cannot keep it around.
--   
--   The coordinates of the points are interpreted according to the current
--   transform.
--   
--   See the OpenType spec COLR section for details on how the
--   points define the direction of the gradient, and how to interpret the
--   colorLine.
--   
--   Since: 7.0.0
type PaintSweepGradientFuncT = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@colorLine@/: Color information for the gradient ColorLineT -> -- | /@x0@/: X coordinate of the circle\'s center Float -> -- | /@y0@/: Y coordinate of the circle\'s center Float -> -- | /@startAngle@/: the start angle, in radians Float -> -- | /@endAngle@/: the end angle, in radians Float -> IO ()

-- | A virtual method for the PaintFuncsT to paint a sweep gradient
--   everywhere within the current clip.
--   
--   The colorLine object contains information about the
--   colors of the gradients. It is only valid for the duration of the
--   callback, you cannot keep it around.
--   
--   The coordinates of the points are interpreted according to the current
--   transform.
--   
--   See the OpenType spec COLR section for details on how the
--   points define the direction of the gradient, and how to interpret the
--   colorLine.
--   
--   Since: 7.0.0
type PaintSweepGradientFuncT_WithClosures = -- | /@funcs@/: paint functions object PaintFuncsT -> -- | /@paintData@/: The data accompanying the paint functions in 'GI.HarfBuzz.Functions.fontPaintGlyph' Ptr () -> -- | /@colorLine@/: Color information for the gradient ColorLineT -> -- | /@x0@/: X coordinate of the circle\'s center Float -> -- | /@y0@/: Y coordinate of the circle\'s center Float -> -- | /@startAngle@/: the start angle, in radians Float -> -- | /@endAngle@/: the end angle, in radians Float -> -- | /@userData@/: User data pointer passed to 'GI.HarfBuzz.Functions.paintFuncsSetSweepGradientFunc' Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PaintSweepGradientFuncT :: PaintSweepGradientFuncT -> PaintSweepGradientFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PaintSweepGradientFuncT :: (HasCallStack, MonadIO m) => FunPtr C_PaintSweepGradientFuncT -> PaintFuncsT -> Ptr () -> ColorLineT -> Float -> Float -> Float -> Float -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_PaintSweepGradientFuncT :: MonadIO m => PaintSweepGradientFuncT -> m (GClosure C_PaintSweepGradientFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_PaintSweepGradientFuncT.
mk_PaintSweepGradientFuncT :: C_PaintSweepGradientFuncT -> IO (FunPtr C_PaintSweepGradientFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   PaintSweepGradientFuncT.
noPaintSweepGradientFuncT :: Maybe PaintSweepGradientFuncT

-- | A convenience synonym for Nothing :: Maybe
--   PaintSweepGradientFuncT_WithClosures.
noPaintSweepGradientFuncT_WithClosures :: Maybe PaintSweepGradientFuncT_WithClosures

-- | Wrap a PaintSweepGradientFuncT into a
--   C_PaintSweepGradientFuncT.
wrap_PaintSweepGradientFuncT :: Maybe (Ptr (FunPtr C_PaintSweepGradientFuncT)) -> PaintSweepGradientFuncT_WithClosures -> C_PaintSweepGradientFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_ReferenceTableFuncT = Ptr FaceT -> Word32 -> Ptr () -> IO (Ptr BlobT)

-- | Callback function for faceCreateForTables.
--   
--   Since: 0.9.2
type ReferenceTableFuncT = -- | /@face@/: an t'GI.HarfBuzz.Structs.FaceT.FaceT' to reference table for FaceT -> -- | /@tag@/: the tag of the table to reference Word32 -> -- | __Returns:__ A pointer to the /@tag@/ table within /@face@/ IO BlobT

-- | Callback function for faceCreateForTables.
--   
--   Since: 0.9.2
type ReferenceTableFuncT_WithClosures = -- | /@face@/: an t'GI.HarfBuzz.Structs.FaceT.FaceT' to reference table for FaceT -> -- | /@tag@/: the tag of the table to reference Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> -- | __Returns:__ A pointer to the /@tag@/ table within /@face@/ IO BlobT

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ReferenceTableFuncT :: ReferenceTableFuncT -> ReferenceTableFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_ReferenceTableFuncT :: (HasCallStack, MonadIO m) => FunPtr C_ReferenceTableFuncT -> FaceT -> Word32 -> Ptr () -> m BlobT

-- | Wrap the callback into a GClosure.
genClosure_ReferenceTableFuncT :: MonadIO m => ReferenceTableFuncT -> m (GClosure C_ReferenceTableFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_ReferenceTableFuncT.
mk_ReferenceTableFuncT :: C_ReferenceTableFuncT -> IO (FunPtr C_ReferenceTableFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   ReferenceTableFuncT.
noReferenceTableFuncT :: Maybe ReferenceTableFuncT

-- | A convenience synonym for Nothing :: Maybe
--   ReferenceTableFuncT_WithClosures.
noReferenceTableFuncT_WithClosures :: Maybe ReferenceTableFuncT_WithClosures

-- | Wrap a ReferenceTableFuncT into a C_ReferenceTableFuncT.
wrap_ReferenceTableFuncT :: Maybe (Ptr (FunPtr C_ReferenceTableFuncT)) -> ReferenceTableFuncT_WithClosures -> C_ReferenceTableFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_UnicodeCombiningClassFuncT = Ptr UnicodeFuncsT -> Word32 -> Ptr () -> IO CUInt

-- | A virtual method for the UnicodeFuncsT structure.
--   
--   This method should retrieve the Canonical Combining Class (ccc)
--   property for a specified Unicode code point.
type UnicodeCombiningClassFuncT = -- | /@ufuncs@/: A Unicode-functions structure UnicodeFuncsT -> -- | /@unicode@/: The code point to query Word32 -> -- | __Returns:__ The t'GI.HarfBuzz.Enums.UnicodeCombiningClassT' of /@unicode@/ IO UnicodeCombiningClassT

-- | A virtual method for the UnicodeFuncsT structure.
--   
--   This method should retrieve the Canonical Combining Class (ccc)
--   property for a specified Unicode code point.
type UnicodeCombiningClassFuncT_WithClosures = -- | /@ufuncs@/: A Unicode-functions structure UnicodeFuncsT -> -- | /@unicode@/: The code point to query Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> -- | __Returns:__ The t'GI.HarfBuzz.Enums.UnicodeCombiningClassT' of /@unicode@/ IO UnicodeCombiningClassT

-- | A simple wrapper that ignores the closure arguments.
drop_closures_UnicodeCombiningClassFuncT :: UnicodeCombiningClassFuncT -> UnicodeCombiningClassFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_UnicodeCombiningClassFuncT :: (HasCallStack, MonadIO m) => FunPtr C_UnicodeCombiningClassFuncT -> UnicodeFuncsT -> Word32 -> Ptr () -> m UnicodeCombiningClassT

-- | Wrap the callback into a GClosure.
genClosure_UnicodeCombiningClassFuncT :: MonadIO m => UnicodeCombiningClassFuncT -> m (GClosure C_UnicodeCombiningClassFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_UnicodeCombiningClassFuncT.
mk_UnicodeCombiningClassFuncT :: C_UnicodeCombiningClassFuncT -> IO (FunPtr C_UnicodeCombiningClassFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   UnicodeCombiningClassFuncT.
noUnicodeCombiningClassFuncT :: Maybe UnicodeCombiningClassFuncT

-- | A convenience synonym for Nothing :: Maybe
--   UnicodeCombiningClassFuncT_WithClosures.
noUnicodeCombiningClassFuncT_WithClosures :: Maybe UnicodeCombiningClassFuncT_WithClosures

-- | Wrap a UnicodeCombiningClassFuncT into a
--   C_UnicodeCombiningClassFuncT.
wrap_UnicodeCombiningClassFuncT :: Maybe (Ptr (FunPtr C_UnicodeCombiningClassFuncT)) -> UnicodeCombiningClassFuncT_WithClosures -> C_UnicodeCombiningClassFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_UnicodeComposeFuncT = Ptr UnicodeFuncsT -> Word32 -> Word32 -> Ptr Word32 -> Ptr () -> IO Int32

-- | A virtual method for the UnicodeFuncsT structure.
--   
--   This method should compose a sequence of two input Unicode code points
--   by canonical equivalence, returning the composed code point in a
--   hb_codepoint_t output parameter (if successful). The
--   method must return an hb_bool_t indicating the success
--   of the composition.
type UnicodeComposeFuncT = -- | /@ufuncs@/: A Unicode-functions structure UnicodeFuncsT -> -- | /@a@/: The first code point to compose Word32 -> -- | /@b@/: The second code point to compose Word32 -> -- | __Returns:__ @true@ is /@a@/,/@b@/ composed, @false@ otherwise IO ((Int32, Word32))

-- | A virtual method for the UnicodeFuncsT structure.
--   
--   This method should compose a sequence of two input Unicode code points
--   by canonical equivalence, returning the composed code point in a
--   hb_codepoint_t output parameter (if successful). The
--   method must return an hb_bool_t indicating the success
--   of the composition.
type UnicodeComposeFuncT_WithClosures = -- | /@ufuncs@/: A Unicode-functions structure UnicodeFuncsT -> -- | /@a@/: The first code point to compose Word32 -> -- | /@b@/: The second code point to compose Word32 -> -- | /@userData@/: user data pointer passed by the caller Ptr () -> -- | __Returns:__ @true@ is /@a@/,/@b@/ composed, @false@ otherwise IO ((Int32, Word32))

-- | A simple wrapper that ignores the closure arguments.
drop_closures_UnicodeComposeFuncT :: UnicodeComposeFuncT -> UnicodeComposeFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_UnicodeComposeFuncT :: (HasCallStack, MonadIO m) => FunPtr C_UnicodeComposeFuncT -> UnicodeFuncsT -> Word32 -> Word32 -> Ptr () -> m (Int32, Word32)

-- | Wrap the callback into a GClosure.
genClosure_UnicodeComposeFuncT :: MonadIO m => UnicodeComposeFuncT -> m (GClosure C_UnicodeComposeFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_UnicodeComposeFuncT.
mk_UnicodeComposeFuncT :: C_UnicodeComposeFuncT -> IO (FunPtr C_UnicodeComposeFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   UnicodeComposeFuncT.
noUnicodeComposeFuncT :: Maybe UnicodeComposeFuncT

-- | A convenience synonym for Nothing :: Maybe
--   UnicodeComposeFuncT_WithClosures.
noUnicodeComposeFuncT_WithClosures :: Maybe UnicodeComposeFuncT_WithClosures

-- | Wrap a UnicodeComposeFuncT into a C_UnicodeComposeFuncT.
wrap_UnicodeComposeFuncT :: Maybe (Ptr (FunPtr C_UnicodeComposeFuncT)) -> UnicodeComposeFuncT_WithClosures -> C_UnicodeComposeFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_UnicodeDecomposeCompatibilityFuncT = Ptr UnicodeFuncsT -> Word32 -> Word32 -> Ptr () -> IO Word32

-- | Fully decompose u to its Unicode compatibility
--   decomposition. The codepoints of the decomposition will be written to
--   decomposed. The complete length of the decomposition
--   will be returned.
--   
--   If u has no compatibility decomposition, zero should
--   be returned.
--   
--   The Unicode standard guarantees that a buffer of length
--   UNICODE_MAX_DECOMPOSITION_LEN codepoints will always be
--   sufficient for any compatibility decomposition plus an terminating
--   value of 0. Consequently, decompose must be allocated
--   by the caller to be at least this length. Implementations of this
--   function type must ensure that they do not write past the provided
--   array.

-- | Deprecated: (Since version 2.0.0)
type UnicodeDecomposeCompatibilityFuncT = -- | /@ufuncs@/: a Unicode function structure UnicodeFuncsT -> -- | /@u@/: codepoint to decompose Word32 -> -- | /@decomposed@/: address of codepoint array (of length 'GI.HarfBuzz.Constants.UNICODE_MAX_DECOMPOSITION_LEN') to write decomposition into Word32 -> -- | __Returns:__ number of codepoints in the full compatibility decomposition of /@u@/, or 0 if no decomposition available. IO Word32

-- | Fully decompose u to its Unicode compatibility
--   decomposition. The codepoints of the decomposition will be written to
--   decomposed. The complete length of the decomposition
--   will be returned.
--   
--   If u has no compatibility decomposition, zero should
--   be returned.
--   
--   The Unicode standard guarantees that a buffer of length
--   UNICODE_MAX_DECOMPOSITION_LEN codepoints will always be
--   sufficient for any compatibility decomposition plus an terminating
--   value of 0. Consequently, decompose must be allocated
--   by the caller to be at least this length. Implementations of this
--   function type must ensure that they do not write past the provided
--   array.
type UnicodeDecomposeCompatibilityFuncT_WithClosures = -- | /@ufuncs@/: a Unicode function structure UnicodeFuncsT -> -- | /@u@/: codepoint to decompose Word32 -> -- | /@decomposed@/: address of codepoint array (of length 'GI.HarfBuzz.Constants.UNICODE_MAX_DECOMPOSITION_LEN') to write decomposition into Word32 -> -- | /@userData@/: user data pointer as passed to 'GI.HarfBuzz.Functions.unicodeFuncsSetDecomposeCompatibilityFunc' Ptr () -> -- | __Returns:__ number of codepoints in the full compatibility decomposition of /@u@/, or 0 if no decomposition available. IO Word32

-- | A simple wrapper that ignores the closure arguments.
drop_closures_UnicodeDecomposeCompatibilityFuncT :: UnicodeDecomposeCompatibilityFuncT -> UnicodeDecomposeCompatibilityFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_UnicodeDecomposeCompatibilityFuncT :: (HasCallStack, MonadIO m) => FunPtr C_UnicodeDecomposeCompatibilityFuncT -> UnicodeFuncsT -> Word32 -> Word32 -> Ptr () -> m Word32

-- | Wrap the callback into a GClosure.
genClosure_UnicodeDecomposeCompatibilityFuncT :: MonadIO m => UnicodeDecomposeCompatibilityFuncT -> m (GClosure C_UnicodeDecomposeCompatibilityFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_UnicodeDecomposeCompatibilityFuncT.
mk_UnicodeDecomposeCompatibilityFuncT :: C_UnicodeDecomposeCompatibilityFuncT -> IO (FunPtr C_UnicodeDecomposeCompatibilityFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   UnicodeDecomposeCompatibilityFuncT.
noUnicodeDecomposeCompatibilityFuncT :: Maybe UnicodeDecomposeCompatibilityFuncT

-- | A convenience synonym for Nothing :: Maybe
--   UnicodeDecomposeCompatibilityFuncT_WithClosures.
noUnicodeDecomposeCompatibilityFuncT_WithClosures :: Maybe UnicodeDecomposeCompatibilityFuncT_WithClosures

-- | Wrap a UnicodeDecomposeCompatibilityFuncT into a
--   C_UnicodeDecomposeCompatibilityFuncT.
wrap_UnicodeDecomposeCompatibilityFuncT :: Maybe (Ptr (FunPtr C_UnicodeDecomposeCompatibilityFuncT)) -> UnicodeDecomposeCompatibilityFuncT_WithClosures -> C_UnicodeDecomposeCompatibilityFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_UnicodeDecomposeFuncT = Ptr UnicodeFuncsT -> Word32 -> Ptr Word32 -> Ptr Word32 -> Ptr () -> IO Int32

-- | A virtual method for the UnicodeFuncsT structure.
--   
--   This method should decompose an input Unicode code point, returning
--   the two decomposed code points in hb_codepoint_t
--   output parameters (if successful). The method must return an
--   hb_bool_t indicating the success of the composition.
type UnicodeDecomposeFuncT = -- | /@ufuncs@/: A Unicode-functions structure UnicodeFuncsT -> -- | /@ab@/: The code point to decompose Word32 -> -- | __Returns:__ @true@ if /@ab@/ decomposed, @false@ otherwise IO ((Int32, Word32, Word32))

-- | A virtual method for the UnicodeFuncsT structure.
--   
--   This method should decompose an input Unicode code point, returning
--   the two decomposed code points in hb_codepoint_t
--   output parameters (if successful). The method must return an
--   hb_bool_t indicating the success of the composition.
type UnicodeDecomposeFuncT_WithClosures = -- | /@ufuncs@/: A Unicode-functions structure UnicodeFuncsT -> -- | /@ab@/: The code point to decompose Word32 -> -- | /@userData@/: user data pointer passed by the caller Ptr () -> -- | __Returns:__ @true@ if /@ab@/ decomposed, @false@ otherwise IO ((Int32, Word32, Word32))

-- | A simple wrapper that ignores the closure arguments.
drop_closures_UnicodeDecomposeFuncT :: UnicodeDecomposeFuncT -> UnicodeDecomposeFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_UnicodeDecomposeFuncT :: (HasCallStack, MonadIO m) => FunPtr C_UnicodeDecomposeFuncT -> UnicodeFuncsT -> Word32 -> Ptr () -> m (Int32, Word32, Word32)

-- | Wrap the callback into a GClosure.
genClosure_UnicodeDecomposeFuncT :: MonadIO m => UnicodeDecomposeFuncT -> m (GClosure C_UnicodeDecomposeFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_UnicodeDecomposeFuncT.
mk_UnicodeDecomposeFuncT :: C_UnicodeDecomposeFuncT -> IO (FunPtr C_UnicodeDecomposeFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   UnicodeDecomposeFuncT.
noUnicodeDecomposeFuncT :: Maybe UnicodeDecomposeFuncT

-- | A convenience synonym for Nothing :: Maybe
--   UnicodeDecomposeFuncT_WithClosures.
noUnicodeDecomposeFuncT_WithClosures :: Maybe UnicodeDecomposeFuncT_WithClosures

-- | Wrap a UnicodeDecomposeFuncT into a
--   C_UnicodeDecomposeFuncT.
wrap_UnicodeDecomposeFuncT :: Maybe (Ptr (FunPtr C_UnicodeDecomposeFuncT)) -> UnicodeDecomposeFuncT_WithClosures -> C_UnicodeDecomposeFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_UnicodeEastasianWidthFuncT = Ptr UnicodeFuncsT -> Word32 -> Ptr () -> IO Word32

-- | A virtual method for the UnicodeFuncsT structure.

-- | Deprecated: (Since version 2.0.0)
type UnicodeEastasianWidthFuncT = -- | /@ufuncs@/: A Unicode-functions structure UnicodeFuncsT -> -- | /@unicode@/: The code point to query Word32 -> IO Word32

-- | A virtual method for the UnicodeFuncsT structure.
type UnicodeEastasianWidthFuncT_WithClosures = -- | /@ufuncs@/: A Unicode-functions structure UnicodeFuncsT -> -- | /@unicode@/: The code point to query Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> IO Word32

-- | A simple wrapper that ignores the closure arguments.
drop_closures_UnicodeEastasianWidthFuncT :: UnicodeEastasianWidthFuncT -> UnicodeEastasianWidthFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_UnicodeEastasianWidthFuncT :: (HasCallStack, MonadIO m) => FunPtr C_UnicodeEastasianWidthFuncT -> UnicodeFuncsT -> Word32 -> Ptr () -> m Word32

-- | Wrap the callback into a GClosure.
genClosure_UnicodeEastasianWidthFuncT :: MonadIO m => UnicodeEastasianWidthFuncT -> m (GClosure C_UnicodeEastasianWidthFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_UnicodeEastasianWidthFuncT.
mk_UnicodeEastasianWidthFuncT :: C_UnicodeEastasianWidthFuncT -> IO (FunPtr C_UnicodeEastasianWidthFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   UnicodeEastasianWidthFuncT.
noUnicodeEastasianWidthFuncT :: Maybe UnicodeEastasianWidthFuncT

-- | A convenience synonym for Nothing :: Maybe
--   UnicodeEastasianWidthFuncT_WithClosures.
noUnicodeEastasianWidthFuncT_WithClosures :: Maybe UnicodeEastasianWidthFuncT_WithClosures

-- | Wrap a UnicodeEastasianWidthFuncT into a
--   C_UnicodeEastasianWidthFuncT.
wrap_UnicodeEastasianWidthFuncT :: Maybe (Ptr (FunPtr C_UnicodeEastasianWidthFuncT)) -> UnicodeEastasianWidthFuncT_WithClosures -> C_UnicodeEastasianWidthFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_UnicodeGeneralCategoryFuncT = Ptr UnicodeFuncsT -> Word32 -> Ptr () -> IO CUInt

-- | A virtual method for the UnicodeFuncsT structure.
--   
--   This method should retrieve the General Category property for a
--   specified Unicode code point.
type UnicodeGeneralCategoryFuncT = -- | /@ufuncs@/: A Unicode-functions structure UnicodeFuncsT -> -- | /@unicode@/: The code point to query Word32 -> -- | __Returns:__ The t'GI.HarfBuzz.Enums.UnicodeGeneralCategoryT' of /@unicode@/ IO UnicodeGeneralCategoryT

-- | A virtual method for the UnicodeFuncsT structure.
--   
--   This method should retrieve the General Category property for a
--   specified Unicode code point.
type UnicodeGeneralCategoryFuncT_WithClosures = -- | /@ufuncs@/: A Unicode-functions structure UnicodeFuncsT -> -- | /@unicode@/: The code point to query Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> -- | __Returns:__ The t'GI.HarfBuzz.Enums.UnicodeGeneralCategoryT' of /@unicode@/ IO UnicodeGeneralCategoryT

-- | A simple wrapper that ignores the closure arguments.
drop_closures_UnicodeGeneralCategoryFuncT :: UnicodeGeneralCategoryFuncT -> UnicodeGeneralCategoryFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_UnicodeGeneralCategoryFuncT :: (HasCallStack, MonadIO m) => FunPtr C_UnicodeGeneralCategoryFuncT -> UnicodeFuncsT -> Word32 -> Ptr () -> m UnicodeGeneralCategoryT

-- | Wrap the callback into a GClosure.
genClosure_UnicodeGeneralCategoryFuncT :: MonadIO m => UnicodeGeneralCategoryFuncT -> m (GClosure C_UnicodeGeneralCategoryFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_UnicodeGeneralCategoryFuncT.
mk_UnicodeGeneralCategoryFuncT :: C_UnicodeGeneralCategoryFuncT -> IO (FunPtr C_UnicodeGeneralCategoryFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   UnicodeGeneralCategoryFuncT.
noUnicodeGeneralCategoryFuncT :: Maybe UnicodeGeneralCategoryFuncT

-- | A convenience synonym for Nothing :: Maybe
--   UnicodeGeneralCategoryFuncT_WithClosures.
noUnicodeGeneralCategoryFuncT_WithClosures :: Maybe UnicodeGeneralCategoryFuncT_WithClosures

-- | Wrap a UnicodeGeneralCategoryFuncT into a
--   C_UnicodeGeneralCategoryFuncT.
wrap_UnicodeGeneralCategoryFuncT :: Maybe (Ptr (FunPtr C_UnicodeGeneralCategoryFuncT)) -> UnicodeGeneralCategoryFuncT_WithClosures -> C_UnicodeGeneralCategoryFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_UnicodeMirroringFuncT = Ptr UnicodeFuncsT -> Word32 -> Ptr () -> IO Word32

-- | A virtual method for the UnicodeFuncsT structure.
--   
--   This method should retrieve the Bi-Directional Mirroring Glyph code
--   point for a specified Unicode code point.
--   
--   <note>Note: If a code point does not have a specified
--   Bi-Directional Mirroring Glyph defined, the method should return the
--   original code point.</note>
type UnicodeMirroringFuncT = -- | /@ufuncs@/: A Unicode-functions structure UnicodeFuncsT -> -- | /@unicode@/: The code point to query Word32 -> -- | __Returns:__ The @/hb_codepoint_t/@ of the Mirroring Glyph for /@unicode@/ IO Word32

-- | A virtual method for the UnicodeFuncsT structure.
--   
--   This method should retrieve the Bi-Directional Mirroring Glyph code
--   point for a specified Unicode code point.
--   
--   <note>Note: If a code point does not have a specified
--   Bi-Directional Mirroring Glyph defined, the method should return the
--   original code point.</note>
type UnicodeMirroringFuncT_WithClosures = -- | /@ufuncs@/: A Unicode-functions structure UnicodeFuncsT -> -- | /@unicode@/: The code point to query Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> -- | __Returns:__ The @/hb_codepoint_t/@ of the Mirroring Glyph for /@unicode@/ IO Word32

-- | A simple wrapper that ignores the closure arguments.
drop_closures_UnicodeMirroringFuncT :: UnicodeMirroringFuncT -> UnicodeMirroringFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_UnicodeMirroringFuncT :: (HasCallStack, MonadIO m) => FunPtr C_UnicodeMirroringFuncT -> UnicodeFuncsT -> Word32 -> Ptr () -> m Word32

-- | Wrap the callback into a GClosure.
genClosure_UnicodeMirroringFuncT :: MonadIO m => UnicodeMirroringFuncT -> m (GClosure C_UnicodeMirroringFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_UnicodeMirroringFuncT.
mk_UnicodeMirroringFuncT :: C_UnicodeMirroringFuncT -> IO (FunPtr C_UnicodeMirroringFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   UnicodeMirroringFuncT.
noUnicodeMirroringFuncT :: Maybe UnicodeMirroringFuncT

-- | A convenience synonym for Nothing :: Maybe
--   UnicodeMirroringFuncT_WithClosures.
noUnicodeMirroringFuncT_WithClosures :: Maybe UnicodeMirroringFuncT_WithClosures

-- | Wrap a UnicodeMirroringFuncT into a
--   C_UnicodeMirroringFuncT.
wrap_UnicodeMirroringFuncT :: Maybe (Ptr (FunPtr C_UnicodeMirroringFuncT)) -> UnicodeMirroringFuncT_WithClosures -> C_UnicodeMirroringFuncT

-- | Type for the callback on the (unwrapped) C side.
type C_UnicodeScriptFuncT = Ptr UnicodeFuncsT -> Word32 -> Ptr () -> IO CUInt

-- | A virtual method for the UnicodeFuncsT structure.
--   
--   This method should retrieve the Script property for a specified
--   Unicode code point.
type UnicodeScriptFuncT = -- | /@ufuncs@/: A Unicode-functions structure UnicodeFuncsT -> -- | /@unicode@/: The code point to query Word32 -> -- | __Returns:__ The t'GI.HarfBuzz.Enums.ScriptT' of /@unicode@/ IO ScriptT

-- | A virtual method for the UnicodeFuncsT structure.
--   
--   This method should retrieve the Script property for a specified
--   Unicode code point.
type UnicodeScriptFuncT_WithClosures = -- | /@ufuncs@/: A Unicode-functions structure UnicodeFuncsT -> -- | /@unicode@/: The code point to query Word32 -> -- | /@userData@/: User data pointer passed by the caller Ptr () -> -- | __Returns:__ The t'GI.HarfBuzz.Enums.ScriptT' of /@unicode@/ IO ScriptT

-- | A simple wrapper that ignores the closure arguments.
drop_closures_UnicodeScriptFuncT :: UnicodeScriptFuncT -> UnicodeScriptFuncT_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_UnicodeScriptFuncT :: (HasCallStack, MonadIO m) => FunPtr C_UnicodeScriptFuncT -> UnicodeFuncsT -> Word32 -> Ptr () -> m ScriptT

-- | Wrap the callback into a GClosure.
genClosure_UnicodeScriptFuncT :: MonadIO m => UnicodeScriptFuncT -> m (GClosure C_UnicodeScriptFuncT)

-- | Generate a function pointer callable from C code, from a
--   C_UnicodeScriptFuncT.
mk_UnicodeScriptFuncT :: C_UnicodeScriptFuncT -> IO (FunPtr C_UnicodeScriptFuncT)

-- | A convenience synonym for Nothing :: Maybe
--   UnicodeScriptFuncT.
noUnicodeScriptFuncT :: Maybe UnicodeScriptFuncT

-- | A convenience synonym for Nothing :: Maybe
--   UnicodeScriptFuncT_WithClosures.
noUnicodeScriptFuncT_WithClosures :: Maybe UnicodeScriptFuncT_WithClosures

-- | Wrap a UnicodeScriptFuncT into a C_UnicodeScriptFuncT.
wrap_UnicodeScriptFuncT :: Maybe (Ptr (FunPtr C_UnicodeScriptFuncT)) -> UnicodeScriptFuncT_WithClosures -> C_UnicodeScriptFuncT

-- | A struct containing color information for a gradient.
--   
--   Since: 7.0.0
module GI.HarfBuzz.Structs.ColorLineT

-- | Memory-managed wrapper type.
newtype ColorLineT
ColorLineT :: ManagedPtr ColorLineT -> ColorLineT

-- | Construct a ColorLineT struct initialized to zero.
newZeroColorLineT :: MonadIO m => m ColorLineT

-- | Set the value of the “data” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #data
--   
clearColorLineTData :: MonadIO m => ColorLineT -> m ()

-- | Get the value of the “data” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get colorLineT #data
--   
getColorLineTData :: MonadIO m => ColorLineT -> m (Ptr ())

-- | Set the value of the “data” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set colorLineT [ #data := value ]
--   
setColorLineTData :: MonadIO m => ColorLineT -> Ptr () -> m ()

-- | Set the value of the “get_color_stops” field to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #getColorStops
--   
clearColorLineTGetColorStops :: MonadIO m => ColorLineT -> m ()

-- | Get the value of the “get_color_stops” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorLineT #getColorStops
--   
getColorLineTGetColorStops :: MonadIO m => ColorLineT -> m (Maybe ColorLineGetColorStopsFuncT_WithClosures)

-- | Set the value of the “get_color_stops” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorLineT [ #getColorStops := value ]
--   
setColorLineTGetColorStops :: MonadIO m => ColorLineT -> FunPtr C_ColorLineGetColorStopsFuncT -> m ()

-- | Set the value of the “get_color_stops_user_data” field to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #getColorStopsUserData
--   
clearColorLineTGetColorStopsUserData :: MonadIO m => ColorLineT -> m ()

-- | Get the value of the “get_color_stops_user_data” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorLineT #getColorStopsUserData
--   
getColorLineTGetColorStopsUserData :: MonadIO m => ColorLineT -> m (Ptr ())

-- | Set the value of the “get_color_stops_user_data” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorLineT [ #getColorStopsUserData := value ]
--   
setColorLineTGetColorStopsUserData :: MonadIO m => ColorLineT -> Ptr () -> m ()

-- | Set the value of the “get_extend” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #getExtend
--   
clearColorLineTGetExtend :: MonadIO m => ColorLineT -> m ()

-- | Get the value of the “get_extend” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorLineT #getExtend
--   
getColorLineTGetExtend :: MonadIO m => ColorLineT -> m (Maybe ColorLineGetExtendFuncT_WithClosures)

-- | Set the value of the “get_extend” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorLineT [ #getExtend := value ]
--   
setColorLineTGetExtend :: MonadIO m => ColorLineT -> FunPtr C_ColorLineGetExtendFuncT -> m ()

-- | Set the value of the “get_extend_user_data” field to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #getExtendUserData
--   
clearColorLineTGetExtendUserData :: MonadIO m => ColorLineT -> m ()

-- | Get the value of the “get_extend_user_data” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorLineT #getExtendUserData
--   
getColorLineTGetExtendUserData :: MonadIO m => ColorLineT -> m (Ptr ())

-- | Set the value of the “get_extend_user_data” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorLineT [ #getExtendUserData := value ]
--   
setColorLineTGetExtendUserData :: MonadIO m => ColorLineT -> Ptr () -> m ()

-- | Set the value of the “reserved0” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #reserved0
--   
clearColorLineTReserved0 :: MonadIO m => ColorLineT -> m ()

-- | Get the value of the “reserved0” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorLineT #reserved0
--   
getColorLineTReserved0 :: MonadIO m => ColorLineT -> m (Ptr ())

-- | Set the value of the “reserved0” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorLineT [ #reserved0 := value ]
--   
setColorLineTReserved0 :: MonadIO m => ColorLineT -> Ptr () -> m ()

-- | Set the value of the “reserved1” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #reserved1
--   
clearColorLineTReserved1 :: MonadIO m => ColorLineT -> m ()

-- | Get the value of the “reserved1” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorLineT #reserved1
--   
getColorLineTReserved1 :: MonadIO m => ColorLineT -> m (Ptr ())

-- | Set the value of the “reserved1” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorLineT [ #reserved1 := value ]
--   
setColorLineTReserved1 :: MonadIO m => ColorLineT -> Ptr () -> m ()

-- | Set the value of the “reserved2” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #reserved2
--   
clearColorLineTReserved2 :: MonadIO m => ColorLineT -> m ()

-- | Get the value of the “reserved2” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorLineT #reserved2
--   
getColorLineTReserved2 :: MonadIO m => ColorLineT -> m (Ptr ())

-- | Set the value of the “reserved2” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorLineT [ #reserved2 := value ]
--   
setColorLineTReserved2 :: MonadIO m => ColorLineT -> Ptr () -> m ()

-- | Set the value of the “reserved3” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #reserved3
--   
clearColorLineTReserved3 :: MonadIO m => ColorLineT -> m ()

-- | Get the value of the “reserved3” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorLineT #reserved3
--   
getColorLineTReserved3 :: MonadIO m => ColorLineT -> m (Ptr ())

-- | Set the value of the “reserved3” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorLineT [ #reserved3 := value ]
--   
setColorLineTReserved3 :: MonadIO m => ColorLineT -> Ptr () -> m ()

-- | Set the value of the “reserved5” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #reserved5
--   
clearColorLineTReserved5 :: MonadIO m => ColorLineT -> m ()

-- | Get the value of the “reserved5” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorLineT #reserved5
--   
getColorLineTReserved5 :: MonadIO m => ColorLineT -> m (Ptr ())

-- | Set the value of the “reserved5” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorLineT [ #reserved5 := value ]
--   
setColorLineTReserved5 :: MonadIO m => ColorLineT -> Ptr () -> m ()

-- | Set the value of the “reserved6” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #reserved6
--   
clearColorLineTReserved6 :: MonadIO m => ColorLineT -> m ()

-- | Get the value of the “reserved6” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorLineT #reserved6
--   
getColorLineTReserved6 :: MonadIO m => ColorLineT -> m (Ptr ())

-- | Set the value of the “reserved6” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorLineT [ #reserved6 := value ]
--   
setColorLineTReserved6 :: MonadIO m => ColorLineT -> Ptr () -> m ()

-- | Set the value of the “reserved7” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #reserved7
--   
clearColorLineTReserved7 :: MonadIO m => ColorLineT -> m ()

-- | Get the value of the “reserved7” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorLineT #reserved7
--   
getColorLineTReserved7 :: MonadIO m => ColorLineT -> m (Ptr ())

-- | Set the value of the “reserved7” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorLineT [ #reserved7 := value ]
--   
setColorLineTReserved7 :: MonadIO m => ColorLineT -> Ptr () -> m ()

-- | Set the value of the “reserved8” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #reserved8
--   
clearColorLineTReserved8 :: MonadIO m => ColorLineT -> m ()

-- | Get the value of the “reserved8” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorLineT #reserved8
--   
getColorLineTReserved8 :: MonadIO m => ColorLineT -> m (Ptr ())

-- | Set the value of the “reserved8” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorLineT [ #reserved8 := value ]
--   
setColorLineTReserved8 :: MonadIO m => ColorLineT -> Ptr () -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.ColorLineT.ColorLineT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.ColorLineT.ColorLineT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.ColorLineT.ColorLineT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.ColorLineT.ColorLineT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.ColorLineT.ColorLineT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.ColorLineT.ColorLineT)
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.ColorLineT.ColorLineT tag

-- | Data structure for holding user-data keys.
module GI.HarfBuzz.Structs.UserDataKeyT

-- | Memory-managed wrapper type.
newtype UserDataKeyT
UserDataKeyT :: ManagedPtr UserDataKeyT -> UserDataKeyT

-- | Construct a UserDataKeyT struct initialized to zero.
newZeroUserDataKeyT :: MonadIO m => m UserDataKeyT
instance GHC.Classes.Eq GI.HarfBuzz.Structs.UserDataKeyT.UserDataKeyT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.UserDataKeyT.UserDataKeyT
instance Data.GI.Base.Overloading.HasParentTypes GI.HarfBuzz.Structs.UserDataKeyT.UserDataKeyT
instance Data.GI.Base.BasicTypes.TypedObject GI.HarfBuzz.Structs.UserDataKeyT.UserDataKeyT
instance Data.GI.Base.BasicTypes.GBoxed GI.HarfBuzz.Structs.UserDataKeyT.UserDataKeyT
instance Data.GI.Base.GValue.IsGValue (GHC.Maybe.Maybe GI.HarfBuzz.Structs.UserDataKeyT.UserDataKeyT)
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.UserDataKeyT.UserDataKeyT tag

-- | Data type for holding variation data. Registered OpenType
--   variation-axis tags are listed in OpenType Axis Tag Registry.
--   
--   Since: 1.4.2
module GI.HarfBuzz.Structs.VariationT

-- | Memory-managed wrapper type.
newtype VariationT
VariationT :: ManagedPtr VariationT -> VariationT

-- | Construct a VariationT struct initialized to zero.
newZeroVariationT :: MonadIO m => m VariationT

-- | Get the value of the “tag” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get variationT #tag
--   
getVariationTTag :: MonadIO m => VariationT -> m Word32

-- | Set the value of the “tag” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set variationT [ #tag := value ]
--   
setVariationTTag :: MonadIO m => VariationT -> Word32 -> m ()

-- | Get the value of the “value” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get variationT #value
--   
getVariationTValue :: MonadIO m => VariationT -> m Float

-- | Set the value of the “value” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set variationT [ #value := value ]
--   
setVariationTValue :: MonadIO m => VariationT -> Float -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Structs.VariationT.VariationT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Structs.VariationT.VariationT
instance Data.GI.Base.BasicTypes.BoxedPtr GI.HarfBuzz.Structs.VariationT.VariationT
instance Data.GI.Base.BasicTypes.CallocPtr GI.HarfBuzz.Structs.VariationT.VariationT
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Structs.VariationT.VariationT tag

module GI.HarfBuzz.Structs

module GI.HarfBuzz.Functions

-- | Fetches the name identifier of the specified feature type in the
--   face's name table.
--   
--   Since: 2.2.0
aatLayoutFeatureTypeGetNameId :: (HasCallStack, MonadIO m) => FaceT -> AatLayoutFeatureTypeT -> m Word32

-- | Fetches a list of the selectors available for the specified feature in
--   the given face.
--   
--   If upon return, defaultIndex is set to
--   AAT_LAYOUT_NO_SELECTOR_INDEX, then the feature type is
--   non-exclusive. Otherwise, defaultIndex is the index of
--   the selector that is selected by default.
--   
--   Since: 2.2.0
aatLayoutFeatureTypeGetSelectorInfos :: (HasCallStack, MonadIO m) => FaceT -> AatLayoutFeatureTypeT -> Word32 -> [AatLayoutFeatureSelectorInfoT] -> m (Word32, [AatLayoutFeatureSelectorInfoT], Word32)

-- | Fetches a list of the AAT feature types included in the specified
--   face.
--   
--   Since: 2.2.0
aatLayoutGetFeatureTypes :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> [AatLayoutFeatureTypeT] -> m (Word32, [AatLayoutFeatureTypeT])

-- | Tests whether the specified face includes any positioning information
--   in the kerx table.
--   
--   <note>Note: does not examine the GPOS
--   table.</note>
--   
--   Since: 2.3.0
aatLayoutHasPositioning :: (HasCallStack, MonadIO m) => FaceT -> m Int32

-- | Tests whether the specified face includes any substitutions in the
--   morx or mort tables.
--   
--   <note>Note: does not examine the GSUB
--   table.</note>
--   
--   Since: 2.3.0
aatLayoutHasSubstitution :: (HasCallStack, MonadIO m) => FaceT -> m Int32

-- | Tests whether the specified face includes any tracking information in
--   the trak table.
--   
--   Since: 2.3.0
aatLayoutHasTracking :: (HasCallStack, MonadIO m) => FaceT -> m Int32

-- | Makes a writable copy of blob.
--   
--   Since: 1.8.0
blobCopyWritableOrFail :: (HasCallStack, MonadIO m) => BlobT -> m BlobT

-- | Creates a new blob containing the data from the specified binary font
--   file.
--   
--   The filename is passed directly to the system on all platforms, except
--   on Windows, where the filename is interpreted as UTF-8. Only if the
--   filename is not valid UTF-8, it will be interpreted according to the
--   system codepage.
--   
--   Since: 1.7.7
blobCreateFromFile :: (HasCallStack, MonadIO m) => Text -> m BlobT

-- | Creates a new blob containing the data from the specified binary font
--   file.
--   
--   The filename is passed directly to the system on all platforms, except
--   on Windows, where the filename is interpreted as UTF-8. Only if the
--   filename is not valid UTF-8, it will be interpreted according to the
--   system codepage.
--   
--   Since: 2.8.2
blobCreateFromFileOrFail :: (HasCallStack, MonadIO m) => Text -> m BlobT

-- | Returns a blob that represents a range of bytes in
--   parent. The new blob is always created with
--   HB_MEMORY_MODE_READONLY, meaning that it will never
--   modify data in the parent blob. The parent data is not expected to be
--   modified, and will result in undefined behavior if it is.
--   
--   Makes parent immutable.
--   
--   Since: 0.9.2
blobCreateSubBlob :: (HasCallStack, MonadIO m) => BlobT -> Word32 -> Word32 -> m BlobT

-- | Fetches the data from a blob.
--   
--   Since: 0.9.2
blobGetData :: (HasCallStack, MonadIO m) => BlobT -> m (Maybe [Text])

-- | Tries to make blob data writable (possibly copying it) and return
--   pointer to data.
--   
--   Fails if blob has been made immutable, or if memory allocation fails.
--   
--   Since: 0.9.2
blobGetDataWritable :: (HasCallStack, MonadIO m) => BlobT -> m [Text]

-- | Returns the singleton empty blob.
--   
--   See TODO:link object types for more information.
--   
--   Since: 0.9.2
blobGetEmpty :: (HasCallStack, MonadIO m) => m BlobT

-- | Fetches the length of a blob's data.
--   
--   Since: 0.9.2
blobGetLength :: (HasCallStack, MonadIO m) => BlobT -> m Word32

-- | Tests whether a blob is immutable.
--   
--   Since: 0.9.2
blobIsImmutable :: (HasCallStack, MonadIO m) => BlobT -> m Int32

-- | Makes a blob immutable.
--   
--   Since: 0.9.2
blobMakeImmutable :: (HasCallStack, MonadIO m) => BlobT -> m ()

-- | Appends a character with the Unicode value of
--   codepoint to buffer, and gives it the
--   initial cluster value of cluster. Clusters can be any
--   thing the client wants, they are usually used to refer to the index of
--   the character in the input text stream and are output in
--   GlyphInfoT.cluster field.
--   
--   This function does not check the validity of
--   codepoint, it is up to the caller to ensure it is a
--   valid Unicode code point.
--   
--   Since: 0.9.7
bufferAdd :: (HasCallStack, MonadIO m) => BufferT -> Word32 -> Word32 -> m ()

-- | Appends characters from text array to
--   buffer. The itemOffset is the position
--   of the first character from text that will be
--   appended, and itemLength is the number of character.
--   When shaping part of a larger text (e.g. a run of text from a
--   paragraph), instead of passing just the substring corresponding to the
--   run, it is preferable to pass the whole paragraph and specify the run
--   start and length as itemOffset and
--   itemLength, respectively, to give HarfBuzz the full
--   context to be able, for example, to do cross-run Arabic shaping or
--   properly handle combining marks at stat of run.
--   
--   This function does not check the validity of text, it
--   is up to the caller to ensure it contains a valid Unicode scalar
--   values. In contrast, bufferAddUtf32 can be used that takes
--   similar input but performs sanity-check on the input.
--   
--   Since: 0.9.31
bufferAddCodepoints :: (HasCallStack, MonadIO m) => BufferT -> [Word32] -> Word32 -> Int32 -> m ()

-- | Similar to bufferAddCodepoints, but allows only access to first
--   256 Unicode code points that can fit in 8-bit strings.
--   
--   <note>Has nothing to do with non-Unicode Latin-1
--   encoding.</note>
--   
--   Since: 0.9.39
bufferAddLatin1 :: (HasCallStack, MonadIO m) => BufferT -> ByteString -> Word32 -> Int32 -> m ()

-- | See bufferAddCodepoints.
--   
--   Replaces invalid UTF-16 characters with the buffer
--   replacement code point, see bufferSetReplacementCodepoint.
--   
--   Since: 0.9.2
bufferAddUtf16 :: (HasCallStack, MonadIO m) => BufferT -> [Word16] -> Word32 -> Int32 -> m ()

-- | See bufferAddCodepoints.
--   
--   Replaces invalid UTF-32 characters with the buffer
--   replacement code point, see bufferSetReplacementCodepoint.
--   
--   Since: 0.9.2
bufferAddUtf32 :: (HasCallStack, MonadIO m) => BufferT -> [Word32] -> Word32 -> Int32 -> m ()

-- | See bufferAddCodepoints.
--   
--   Replaces invalid UTF-8 characters with the buffer
--   replacement code point, see bufferSetReplacementCodepoint.
--   
--   Since: 0.9.2
bufferAddUtf8 :: (HasCallStack, MonadIO m) => BufferT -> ByteString -> Word32 -> Int32 -> m ()

-- | Check if allocating memory for the buffer succeeded.
--   
--   Since: 0.9.2
bufferAllocationSuccessful :: (HasCallStack, MonadIO m) => BufferT -> m Int32

-- | Append (part of) contents of another buffer to this buffer.
--   
--   Since: 1.5.0
bufferAppend :: (HasCallStack, MonadIO m) => BufferT -> BufferT -> Word32 -> Word32 -> m ()

-- | Similar to bufferReset, but does not clear the Unicode
--   functions and the replacement code point.
--   
--   Since: 0.9.11
bufferClearContents :: (HasCallStack, MonadIO m) => BufferT -> m ()

-- | Creates a new BufferT with all properties to defaults.
--   
--   Since: 0.9.2
bufferCreate :: (HasCallStack, MonadIO m) => m BufferT

-- | Creates a new BufferT, similar to bufferCreate. The only
--   difference is that the buffer is configured similarly to
--   src.
--   
--   Since: 3.3.0
bufferCreateSimilar :: (HasCallStack, MonadIO m) => BufferT -> m BufferT

-- | Deserializes glyphs buffer from textual representation
--   in the format produced by bufferSerializeGlyphs.
--   
--   Since: 0.9.7
bufferDeserializeGlyphs :: (HasCallStack, MonadIO m) => BufferT -> [Text] -> Maybe FontT -> BufferSerializeFormatT -> m (Int32, Text)

-- | Deserializes Unicode buffer from textual
--   representation in the format produced by
--   bufferSerializeUnicode.
--   
--   Since: 2.7.3
bufferDeserializeUnicode :: (HasCallStack, MonadIO m) => BufferT -> [Text] -> BufferSerializeFormatT -> m (Int32, Text)

-- | If dottedcircle_glyph is (hb_codepoint_t) -1 then
--   HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT and
--   HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT are never returned.
--   This should be used by most callers if just comparing two buffers is
--   needed.
--   
--   Since: 1.5.0
bufferDiff :: (HasCallStack, MonadIO m) => BufferT -> BufferT -> Word32 -> Word32 -> m [BufferDiffFlagsT]

-- | Fetches the cluster level of a buffer. The BufferClusterLevelT
--   dictates one aspect of how HarfBuzz will treat non-base characters
--   during shaping.
--   
--   Since: 0.9.42
bufferGetClusterLevel :: (HasCallStack, MonadIO m) => BufferT -> m BufferClusterLevelT

-- | Fetches the type of buffer contents. Buffers are
--   either empty, contain characters (before shaping), or contain glyphs
--   (the result of shaping).
--   
--   Since: 0.9.5
bufferGetContentType :: (HasCallStack, MonadIO m) => BufferT -> m BufferContentTypeT

-- | See bufferSetDirection
--   
--   Since: 0.9.2
bufferGetDirection :: (HasCallStack, MonadIO m) => BufferT -> m DirectionT

-- | Fetches an empty BufferT.
--   
--   Since: 0.9.2
bufferGetEmpty :: (HasCallStack, MonadIO m) => m BufferT

-- | Fetches the BufferFlagsT of buffer.
--   
--   Since: 0.9.7
bufferGetFlags :: (HasCallStack, MonadIO m) => BufferT -> m [BufferFlagsT]

-- | Returns buffer glyph information array. Returned
--   pointer is valid as long as buffer contents are not
--   modified.
--   
--   Since: 0.9.2
bufferGetGlyphInfos :: (HasCallStack, MonadIO m) => BufferT -> m [GlyphInfoT]

-- | Returns buffer glyph position array. Returned pointer
--   is valid as long as buffer contents are not modified.
--   
--   If buffer did not have positions before, the positions will be
--   initialized to zeros, unless this function is called from within a
--   buffer message callback (see bufferSetMessageFunc), in which
--   case NULL is returned.
--   
--   Since: 0.9.2
bufferGetGlyphPositions :: (HasCallStack, MonadIO m) => BufferT -> m [GlyphPositionT]

-- | See bufferSetInvisibleGlyph.
--   
--   Since: 2.0.0
bufferGetInvisibleGlyph :: (HasCallStack, MonadIO m) => BufferT -> m Word32

-- | See bufferSetLanguage.
--   
--   Since: 0.9.2
bufferGetLanguage :: (HasCallStack, MonadIO m) => BufferT -> m LanguageT

-- | Returns the number of items in the buffer.
--   
--   Since: 0.9.2
bufferGetLength :: (HasCallStack, MonadIO m) => BufferT -> m Word32

-- | See bufferSetNotFoundGlyph.
--   
--   Since: 3.1.0
bufferGetNotFoundGlyph :: (HasCallStack, MonadIO m) => BufferT -> m Word32

-- | See bufferSetNotFoundVariationSelectorGlyph.
--   
--   Since: 10.0.0
bufferGetNotFoundVariationSelectorGlyph :: (HasCallStack, MonadIO m) => BufferT -> m Word32

-- | See bufferSetRandomState.
--   
--   Since: 8.4.0
bufferGetRandomState :: (HasCallStack, MonadIO m) => BufferT -> m Word32

-- | Fetches the hb_codepoint_t that replaces invalid
--   entries for a given encoding when adding text to
--   buffer.
--   
--   Since: 0.9.31
bufferGetReplacementCodepoint :: (HasCallStack, MonadIO m) => BufferT -> m Word32

-- | Fetches the script of buffer.
--   
--   Since: 0.9.2
bufferGetScript :: (HasCallStack, MonadIO m) => BufferT -> m ScriptT

-- | Sets props to the SegmentPropertiesT of
--   buffer.
--   
--   Since: 0.9.7
bufferGetSegmentProperties :: (HasCallStack, MonadIO m) => BufferT -> m SegmentPropertiesT

-- | Fetches the Unicode-functions structure of a buffer.
--   
--   Since: 0.9.2
bufferGetUnicodeFuncs :: (HasCallStack, MonadIO m) => BufferT -> m UnicodeFuncsT

-- | Sets unset buffer segment properties based on buffer Unicode contents.
--   If buffer is not empty, it must have content type
--   HB_BUFFER_CONTENT_TYPE_UNICODE.
--   
--   If buffer script is not set (ie. is
--   HB_SCRIPT_INVALID), it will be set to the Unicode
--   script of the first character in the buffer that has a script other
--   than HB_SCRIPT_COMMON,
--   HB_SCRIPT_INHERITED, and
--   HB_SCRIPT_UNKNOWN.
--   
--   Next, if buffer direction is not set (ie. is
--   HB_DIRECTION_INVALID), it will be set to the natural
--   horizontal direction of the buffer script as returned by
--   scriptGetHorizontalDirection. If
--   scriptGetHorizontalDirection returns
--   HB_DIRECTION_INVALID, then
--   HB_DIRECTION_LTR is used.
--   
--   Finally, if buffer language is not set (ie. is
--   LANGUAGE_INVALID), it will be set to the process's default
--   language as returned by languageGetDefault. This may change in
--   the future by taking buffer script into consideration when choosing a
--   language. Note that languageGetDefault is NOT threadsafe the
--   first time it is called. See documentation for that function for
--   details.
--   
--   Since: 0.9.7
bufferGuessSegmentProperties :: (HasCallStack, MonadIO m) => BufferT -> m ()

-- | Returns whether buffer has glyph position data. A
--   buffer gains position data when bufferGetGlyphPositions is
--   called on it, and cleared of position data when
--   bufferClearContents is called.
--   
--   Since: 2.7.3
bufferHasPositions :: (HasCallStack, MonadIO m) => BufferT -> m Int32

-- | Reorders a glyph buffer to have canonical in-cluster glyph order /
--   position. The resulting clusters should behave identical to
--   pre-reordering clusters.
--   
--   <note>This has nothing to do with Unicode
--   normalization.</note>
--   
--   Since: 0.9.2
bufferNormalizeGlyphs :: (HasCallStack, MonadIO m) => BufferT -> m ()

-- | Pre allocates memory for buffer to fit at least
--   size number of items.
--   
--   Since: 0.9.2
bufferPreAllocate :: (HasCallStack, MonadIO m) => BufferT -> Word32 -> m Int32

-- | Resets the buffer to its initial status, as if it was just newly
--   created with bufferCreate.
--   
--   Since: 0.9.2
bufferReset :: (HasCallStack, MonadIO m) => BufferT -> m ()

-- | Reverses buffer contents.
--   
--   Since: 0.9.2
bufferReverse :: (HasCallStack, MonadIO m) => BufferT -> m ()

-- | Reverses buffer clusters. That is, the buffer contents are reversed,
--   then each cluster (consecutive items having the same cluster number)
--   are reversed again.
--   
--   Since: 0.9.2
bufferReverseClusters :: (HasCallStack, MonadIO m) => BufferT -> m ()

-- | Reverses buffer contents between start and
--   end.
--   
--   Since: 0.9.41
bufferReverseRange :: (HasCallStack, MonadIO m) => BufferT -> Word32 -> Word32 -> m ()

-- | Serializes buffer into a textual representation of its
--   content, whether Unicode codepoints or glyph identifiers and
--   positioning information. This is useful for showing the contents of
--   the buffer, for example during debugging. See the documentation of
--   bufferSerializeUnicode and bufferSerializeGlyphs for a
--   description of the output format.
--   
--   Since: 2.7.3
bufferSerialize :: (HasCallStack, MonadIO m) => BufferT -> Word32 -> Word32 -> Maybe FontT -> BufferSerializeFormatT -> [BufferSerializeFlagsT] -> m (Word32, ByteString, Word32)

-- | Parses a string into an BufferSerializeFormatT. Does not check
--   if str is a valid buffer serialization format, use
--   bufferSerializeListFormats to get the list of supported
--   formats.
--   
--   Since: 0.9.7
bufferSerializeFormatFromString :: (HasCallStack, MonadIO m) => ByteString -> m BufferSerializeFormatT

-- | Converts format to the string corresponding it, or
--   NULL if it is not a valid BufferSerializeFormatT.
--   
--   Since: 0.9.7
bufferSerializeFormatToString :: (HasCallStack, MonadIO m) => BufferSerializeFormatT -> m Text

-- | Serializes buffer into a textual representation of its
--   glyph content, useful for showing the contents of the buffer, for
--   example during debugging. There are currently two supported
--   serialization formats:
--   
--   
text
--   
--   A human-readable, plain text format. The serialized glyphs will look
--   something like:
--   
--   
--   [uni0651=0@518,0+0|uni0628=0+1897]
--   
--   
--   
--   
- The serialized glyphs are delimited with [ and
--   ].
--   
- Glyphs are separated with |
--   
- Each glyph starts with glyph name, or glyph index if
--   HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES flag is set.
--   Then,
--   
- If HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS is not
--   set, = then GlyphInfoT.cluster.
--   
- If HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS is not
--   set, the GlyphPositionT in the format:
--   
- If both GlyphPositionT.x_offset and
--   GlyphPositionT.y_offset are not 0,
--   @x_offset,y_offset. Then,
--   
- +x_advance, then ,y_advance if
--   GlyphPositionT.y_advance is not 0. Then,
--   
- If HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS is set,
--   the GlyphExtentsT in the format
--   <x_bearing,y_bearing,width,height>
--   
--   
--   
json
--   
--   A machine-readable, structured format. The serialized glyphs will look
--   something like:
--   
--   
--   [{"g":"uni0651","cl":0,"dx":518,"dy":0,"ax":0,"ay":0},
--   {"g":"uni0628","cl":0,"dx":0,"dy":0,"ax":1897,"ay":0}]
--   
--   
--   Each glyph is a JSON object, with the following properties:
--   
--   
--   
- g: the glyph name or glyph index if
--   HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES flag is
--   set.
--   
- cl: GlyphInfoT.cluster if
--   HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS is not set.
--   
- dx,dy,ax,ay:
--   GlyphPositionT.x_offset,
--   GlyphPositionT.y_offset,
--   GlyphPositionT.x_advance and
--   GlyphPositionT.y_advance respectively, if
--   HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS is not set.
--   
- xb,yb,w,h:
--   GlyphExtentsT.x_bearing,
--   GlyphExtentsT.y_bearing,
--   GlyphExtentsT.width and
--   GlyphExtentsT.height respectively if
--   HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS is set.
--   
--   
--   Since: 0.9.7
bufferSerializeGlyphs :: (HasCallStack, MonadIO m) => BufferT -> Word32 -> Word32 -> Maybe FontT -> BufferSerializeFormatT -> [BufferSerializeFlagsT] -> m (Word32, ByteString, Word32)

-- | Returns a list of supported buffer serialization formats.
--   
--   Since: 0.9.7
bufferSerializeListFormats :: (HasCallStack, MonadIO m) => m [Text]

-- | Serializes buffer into a textual representation of its
--   content, when the buffer contains Unicode codepoints (i.e., before
--   shaping). This is useful for showing the contents of the buffer, for
--   example during debugging. There are currently two supported
--   serialization formats:
--   
--   
text
--   
--   A human-readable, plain text format. The serialized codepoints will
--   look something like:
--   
--   
--   <U+0651=0|U+0628=1>
--   
--   
--   
--   
- Glyphs are separated with |
--   
- Unicode codepoints are expressed as zero-padded four (or more)
--   digit hexadecimal numbers preceded by U+
--   
- If HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS is not
--   set, the cluster will be indicated with a = then
--   GlyphInfoT.cluster.
--   
--   
--   
json
--   
--   A machine-readable, structured format. The serialized codepoints will
--   be a list of objects with the following properties:
--   
--   
--   
- u: the Unicode codepoint as a decimal integer
--   
- cl: GlyphInfoT.cluster if
--   HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS is not set.
--   
--   
--   For example:
--   
--   
--   [{u:1617,cl:0},{u:1576,cl:1}]
--   
--   
--   Since: 2.7.3
bufferSerializeUnicode :: (HasCallStack, MonadIO m) => BufferT -> Word32 -> Word32 -> BufferSerializeFormatT -> [BufferSerializeFlagsT] -> m (Word32, ByteString, Word32)

-- | Sets the cluster level of a buffer. The BufferClusterLevelT
--   dictates one aspect of how HarfBuzz will treat non-base characters
--   during shaping.
--   
--   Since: 0.9.42
bufferSetClusterLevel :: (HasCallStack, MonadIO m) => BufferT -> BufferClusterLevelT -> m ()

-- | Sets the type of buffer contents. Buffers are either
--   empty, contain characters (before shaping), or contain glyphs (the
--   result of shaping).
--   
--   You rarely need to call this function, since a number of other
--   functions transition the content type for you. Namely:
--   
--   
--   
- A newly created buffer starts with content type
--   BufferContentTypeTInvalid. Calling bufferReset,
--   bufferClearContents, as well as calling bufferSetLength
--   with an argument of zero all set the buffer content type to invalid as
--   well.
--   
- Calling bufferAddUtf8, bufferAddUtf16,
--   bufferAddUtf32, bufferAddCodepoints and
--   bufferAddLatin1 expect that buffer is either empty and have a
--   content type of invalid, or that buffer content type is
--   BufferContentTypeTUnicode, and they also set the content type
--   to Unicode if they added anything to an empty buffer.
--   
- Finally shape and shapeFull expect that the buffer
--   is either empty and have content type of invalid, or that buffer
--   content type is BufferContentTypeTUnicode, and upon success
--   they set the buffer content type to
--   BufferContentTypeTGlyphs.
--   
--   
--   The above transitions are designed such that one can use a buffer in a
--   loop of "reset : add-text : shape" without needing to ever modify the
--   content type manually.
--   
--   Since: 0.9.5
bufferSetContentType :: (HasCallStack, MonadIO m) => BufferT -> BufferContentTypeT -> m ()

-- | Set the text flow direction of the buffer. No shaping can happen
--   without setting buffer direction, and it controls the
--   visual direction for the output glyphs; for RTL direction the glyphs
--   will be reversed. Many layout features depend on the proper setting of
--   the direction, for example, reversing RTL text before shaping, then
--   shaping with LTR direction is not the same as keeping the text in
--   logical order and shaping with RTL direction.
--   
--   Since: 0.9.2
bufferSetDirection :: (HasCallStack, MonadIO m) => BufferT -> DirectionT -> m ()

-- | Sets buffer flags to flags. See
--   BufferFlagsT.
--   
--   Since: 0.9.7
bufferSetFlags :: (HasCallStack, MonadIO m) => BufferT -> [BufferFlagsT] -> m ()

-- | Sets the hb_codepoint_t that replaces invisible
--   characters in the shaping result. If set to zero (default), the glyph
--   for the U+0020 SPACE character is used. Otherwise, this value is used
--   verbatim.
--   
--   Since: 2.0.0
bufferSetInvisibleGlyph :: (HasCallStack, MonadIO m) => BufferT -> Word32 -> m ()

-- | Sets the language of buffer to
--   language.
--   
--   Languages are crucial for selecting which OpenType feature to apply to
--   the buffer which can result in applying language-specific behaviour.
--   Languages are orthogonal to the scripts, and though they are related,
--   they are different concepts and should not be confused with each
--   other.
--   
--   Use languageFromString to convert from BCP 47 language tags to
--   LanguageT.
--   
--   Since: 0.9.2
bufferSetLanguage :: (HasCallStack, MonadIO m) => BufferT -> LanguageT -> m ()

-- | Similar to bufferPreAllocate, but clears any new items added at
--   the end.
--   
--   Since: 0.9.2
bufferSetLength :: (HasCallStack, MonadIO m) => BufferT -> Word32 -> m Int32

-- | Sets the hb_codepoint_t that replaces characters not
--   found in the font during shaping.
--   
--   The not-found glyph defaults to zero, sometimes known as the ".notdef"
--   glyph. This API allows for differentiating the two.
--   
--   Since: 3.1.0
bufferSetNotFoundGlyph :: (HasCallStack, MonadIO m) => BufferT -> Word32 -> m ()

-- | Sets the hb_codepoint_t that replaces
--   variation-selector characters not resolved in the font during shaping.
--   
--   The not-found-variation-selector glyph defaults to
--   CODEPOINT_INVALID, in which case an unresolved
--   variation-selector will be removed from the glyph string during
--   shaping. This API allows for changing that and retaining a glyph, such
--   that the situation can be detected by the client and handled
--   accordingly (e.g. by using a different font).
--   
--   Since: 10.0.0
bufferSetNotFoundVariationSelectorGlyph :: (HasCallStack, MonadIO m) => BufferT -> Word32 -> m ()

-- | Sets the random state of the buffer. The state changes every time a
--   glyph uses randomness (eg. the rand OpenType feature). This
--   function together with bufferGetRandomState allow for
--   transferring the current random state to a subsequent buffer, to get
--   better randomness distribution.
--   
--   Defaults to 1 and when buffer contents are cleared. A value of 0
--   disables randomness during shaping.
--   
--   Since: 8.4.0
bufferSetRandomState :: (HasCallStack, MonadIO m) => BufferT -> Word32 -> m ()

-- | Sets the hb_codepoint_t that replaces invalid entries
--   for a given encoding when adding text to buffer.
--   
--   Default is BUFFER_REPLACEMENT_CODEPOINT_DEFAULT.
--   
--   Since: 0.9.31
bufferSetReplacementCodepoint :: (HasCallStack, MonadIO m) => BufferT -> Word32 -> m ()

-- | Sets the script of buffer to script.
--   
--   Script is crucial for choosing the proper shaping behaviour for
--   scripts that require it (e.g. Arabic) and the which OpenType features
--   defined in the font to be applied.
--   
--   You can pass one of the predefined ScriptT values, or use
--   scriptFromString or scriptFromIso15924Tag to get the
--   corresponding script from an ISO 15924 script tag.
--   
--   Since: 0.9.2
bufferSetScript :: (HasCallStack, MonadIO m) => BufferT -> ScriptT -> m ()

-- | Sets the segment properties of the buffer, a shortcut for calling
--   bufferSetDirection, bufferSetScript and
--   bufferSetLanguage individually.
--   
--   Since: 0.9.7
bufferSetSegmentProperties :: (HasCallStack, MonadIO m) => BufferT -> SegmentPropertiesT -> m ()

-- | Sets the Unicode-functions structure of a buffer to
--   unicodeFuncs.
--   
--   Since: 0.9.2
bufferSetUnicodeFuncs :: (HasCallStack, MonadIO m) => BufferT -> UnicodeFuncsT -> m ()

-- | Fetches the alpha channel of the given color.
--   
--   Since: 2.1.0
colorGetAlpha :: (HasCallStack, MonadIO m) => Word32 -> m Word8

-- | Fetches the blue channel of the given color.
--   
--   Since: 2.1.0
colorGetBlue :: (HasCallStack, MonadIO m) => Word32 -> m Word8

-- | Fetches the green channel of the given color.
--   
--   Since: 2.1.0
colorGetGreen :: (HasCallStack, MonadIO m) => Word32 -> m Word8

-- | Fetches the red channel of the given color.
--   
--   Since: 2.1.0
colorGetRed :: (HasCallStack, MonadIO m) => Word32 -> m Word8

-- | Fetches a list of color stops from the given color line object.
--   
--   Note that due to variations being applied, the returned color stops
--   may be out of order. It is the callers responsibility to ensure that
--   color stops are sorted by their offset before they are used.
--   
--   Since: 7.0.0
colorLineGetColorStops :: (HasCallStack, MonadIO m) => ColorLineT -> Word32 -> [ColorStopT] -> m (Word32, [ColorStopT])

-- | Fetches the extend mode of the color line object.
--   
--   Since: 7.0.0
colorLineGetExtend :: (HasCallStack, MonadIO m) => ColorLineT -> m PaintExtendT

-- | Converts a string to an DirectionT.
--   
--   Matching is loose and applies only to the first letter. For examples,
--   "LTR" and "left-to-right" will both return
--   HB_DIRECTION_LTR.
--   
--   Unmatched strings will return HB_DIRECTION_INVALID.
--   
--   Since: 0.9.2
directionFromString :: (HasCallStack, MonadIO m) => ByteString -> m DirectionT

-- | Converts an DirectionT to a string.
--   
--   Since: 0.9.2
directionToString :: (HasCallStack, MonadIO m) => DirectionT -> m Text

-- | Perform a "close-path" draw operation.
--   
--   Since: 4.0.0
drawClosePath :: (HasCallStack, MonadIO m) => DrawFuncsT -> Ptr () -> DrawStateT -> m ()

-- | Perform a "cubic-to" draw operation.
--   
--   Since: 4.0.0
drawCubicTo :: (HasCallStack, MonadIO m) => DrawFuncsT -> Ptr () -> DrawStateT -> Float -> Float -> Float -> Float -> Float -> Float -> m ()

-- | Creates a new draw callbacks object.
--   
--   Since: 4.0.0
drawFuncsCreate :: (HasCallStack, MonadIO m) => m DrawFuncsT

-- | Fetches the singleton empty draw-functions structure.
--   
--   Since: 7.0.0
drawFuncsGetEmpty :: (HasCallStack, MonadIO m) => m DrawFuncsT

-- | Checks whether dfuncs is immutable.
--   
--   Since: 4.0.0
drawFuncsIsImmutable :: (HasCallStack, MonadIO m) => DrawFuncsT -> m Int32

-- | Makes dfuncs object immutable.
--   
--   Since: 4.0.0
drawFuncsMakeImmutable :: (HasCallStack, MonadIO m) => DrawFuncsT -> m ()

-- | Perform a "line-to" draw operation.
--   
--   Since: 4.0.0
drawLineTo :: (HasCallStack, MonadIO m) => DrawFuncsT -> Ptr () -> DrawStateT -> Float -> Float -> m ()

-- | Perform a "move-to" draw operation.
--   
--   Since: 4.0.0
drawMoveTo :: (HasCallStack, MonadIO m) => DrawFuncsT -> Ptr () -> DrawStateT -> Float -> Float -> m ()

-- | Perform a "quadratic-to" draw operation.
--   
--   Since: 4.0.0
drawQuadraticTo :: (HasCallStack, MonadIO m) => DrawFuncsT -> Ptr () -> DrawStateT -> Float -> Float -> Float -> Float -> m ()

-- | Add table for tag with data provided by
--   blob to the face. face must be created
--   using faceBuilderCreate.
--   
--   Since: 1.9.0
faceBuilderAddTable :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> BlobT -> m Int32

-- | Creates a FaceT that can be used with
--   faceBuilderAddTable. After tables are added to the face, it can
--   be compiled to a binary font file by calling faceReferenceBlob.
--   
--   Since: 1.9.0
faceBuilderCreate :: (HasCallStack, MonadIO m) => m FaceT

-- | Set the ordering of tables for serialization. Any tables not specified
--   in the tags list will be ordered after the tables in tags, ordered by
--   the default sort ordering.
--   
--   Since: 5.3.0
faceBuilderSortTables :: (HasCallStack, MonadIO m) => FaceT -> [Word32] -> m ()

-- | Fetches the number of faces in a blob.
--   
--   Since: 1.7.7
faceCount :: (HasCallStack, MonadIO m) => BlobT -> m Word32

-- | Constructs a new face object from the specified blob and a face index
--   into that blob.
--   
--   The face index is used for blobs of file formats such as TTC and DFont
--   that can contain more than one face. Face indices within such
--   collections are zero-based.
--   
--   <note>Note: If the blob font format is not a collection,
--   index is ignored. Otherwise, only the lower 16-bits of
--   index are used. The unmodified index
--   can be accessed via faceGetIndex.</note>
--   
--   <note>Note: The high 16-bits of index, if
--   non-zero, are used by fontCreate to load named-instances in
--   variable fonts. See fontCreate for details.</note>
--   
--   Since: 0.9.2
faceCreate :: (HasCallStack, MonadIO m) => BlobT -> Word32 -> m FaceT

-- | Fetches the singleton empty face object.
--   
--   Since: 0.9.2
faceGetEmpty :: (HasCallStack, MonadIO m) => m FaceT

-- | Fetches the glyph-count value of the specified face object.
--   
--   Since: 0.9.7
faceGetGlyphCount :: (HasCallStack, MonadIO m) => FaceT -> m Word32

-- | Fetches the face-index corresponding to the given face.
--   
--   <note>Note: face indices within a collection are
--   zero-based.</note>
--   
--   Since: 0.9.2
faceGetIndex :: (HasCallStack, MonadIO m) => FaceT -> m Word32

-- | Fetches a list of all table tags for a face, if possible. The list
--   returned will begin at the offset provided
--   
--   Since: 1.6.0
faceGetTableTags :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> m (Word32, [Word32])

-- | Fetches the units-per-em (UPEM) value of the specified face object.
--   
--   Typical UPEM values for fonts are 1000, or 2048, but any value in
--   between 16 and 16,384 is allowed for OpenType fonts.
--   
--   Since: 0.9.2
faceGetUpem :: (HasCallStack, MonadIO m) => FaceT -> m Word32

-- | Tests whether the given face object is immutable.
--   
--   Since: 0.9.2
faceIsImmutable :: (HasCallStack, MonadIO m) => FaceT -> m Int32

-- | Makes the given face object immutable.
--   
--   Since: 0.9.2
faceMakeImmutable :: (HasCallStack, MonadIO m) => FaceT -> m ()

-- | Fetches a pointer to the binary blob that contains the specified face.
--   Returns an empty blob if referencing face data is not possible.
--   
--   Since: 0.9.2
faceReferenceBlob :: (HasCallStack, MonadIO m) => FaceT -> m BlobT

-- | Fetches a reference to the specified table within the specified face.
--   
--   Since: 0.9.2
faceReferenceTable :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> m BlobT

-- | Sets the glyph count for a face object to the specified value.
--   
--   This API is used in rare circumstances.
--   
--   Since: 0.9.7
faceSetGlyphCount :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> m ()

-- | Assigns the specified face-index to face. Fails if the
--   face is immutable.
--   
--   <note>Note: changing the index has no effect on the face itself
--   This only changes the value returned by
--   faceGetIndex.</note>
--   
--   Since: 0.9.2
faceSetIndex :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> m ()

-- | Sets the units-per-em (upem) for a face object to the specified value.
--   
--   This API is used in rare circumstances.
--   
--   Since: 0.9.2
faceSetUpem :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> m ()

-- | Parses a string into a FeatureT.
--   
--   The format for specifying feature strings follows. All valid CSS
--   font-feature-settings values other than 'normal' and the global values
--   are also accepted, though not documented below. CSS string escapes are
--   not supported.
--   
--   The range indices refer to the positions between Unicode characters.
--   The position before the first character is always 0.
--   
--   The format is Python-esque. Here is how it all works:
--   
--   <informaltable pgwide='1' align='left' frame='none'> <tgroup
--   cols='5'> <thead>
--   <row><entry>Syntax</entry>
--   <entry>Value</entry> <entry>Start</entry>
--   <entry>End</entry></row> </thead>
--   <tbody> <row><entry>Setting
--   value:</entry></row>
--   <row><entry>kern</entry>
--   <entry>1</entry> <entry>0</entry>
--   <entry>∞</entry> <entry>Turn feature
--   on</entry></row>
--   <row><entry>+kern</entry>
--   <entry>1</entry> <entry>0</entry>
--   <entry>∞</entry> <entry>Turn feature
--   on</entry></row>
--   <row><entry>-kern</entry>
--   <entry>0</entry> <entry>0</entry>
--   <entry>∞</entry> <entry>Turn feature
--   off</entry></row>
--   <row><entry>kern=0</entry>
--   <entry>0</entry> <entry>0</entry>
--   <entry>∞</entry> <entry>Turn feature
--   off</entry></row>
--   <row><entry>kern=1</entry>
--   <entry>1</entry> <entry>0</entry>
--   <entry>∞</entry> <entry>Turn feature
--   on</entry></row>
--   <row><entry>aalt=2</entry>
--   <entry>2</entry> <entry>0</entry>
--   <entry>∞</entry> <entry>Choose 2nd
--   alternate</entry></row> <row><entry>Setting
--   index:</entry></row>
--   <row><entry>kern[]</entry>
--   <entry>1</entry> <entry>0</entry>
--   <entry>∞</entry> <entry>Turn feature
--   on</entry></row>
--   <row><entry>kern[:]</entry>
--   <entry>1</entry> <entry>0</entry>
--   <entry>∞</entry> <entry>Turn feature
--   on</entry></row>
--   <row><entry>kern[5:]</entry>
--   <entry>1</entry> <entry>5</entry>
--   <entry>∞</entry> <entry>Turn feature on,
--   partial</entry></row>
--   <row><entry>kern[:5]</entry>
--   <entry>1</entry> <entry>0</entry>
--   <entry>5</entry> <entry>Turn feature on,
--   partial</entry></row>
--   <row><entry>kern[3:5]</entry>
--   <entry>1</entry> <entry>3</entry>
--   <entry>5</entry> <entry>Turn feature on,
--   range</entry></row>
--   <row><entry>kern[3]</entry>
--   <entry>1</entry> <entry>3</entry>
--   <entry>3+1</entry> <entry>Turn feature on, single
--   char</entry></row> <row><entry>Mixing it
--   all:</entry></row>
--   <row><entry>aalt[3:5]=2</entry>
--   <entry>2</entry> <entry>3</entry>
--   <entry>5</entry> <entry>Turn 2nd alternate on for
--   range</entry></row> </tbody> </tgroup>
--   </informaltable>
--   
--   Since: 0.9.5
featureFromString :: (HasCallStack, MonadIO m) => ByteString -> m (Int32, FeatureT)

-- | Converts a FeatureT into a NULL-terminated string in
--   the format understood by featureFromString. The client in
--   responsible for allocating big enough size for buf,
--   128 bytes is more than enough.
--   
--   Since: 0.9.5
featureToString :: (HasCallStack, MonadIO m) => FeatureT -> m [Text]

-- | Adds the origin coordinates to an (X,Y) point coordinate, in the
--   specified glyph ID in the specified font.
--   
--   Calls the appropriate direction-specific variant (horizontal or
--   vertical) depending on the value of direction.
--   
--   Since: 0.9.2
fontAddGlyphOriginForDirection :: (HasCallStack, MonadIO m) => FontT -> Word32 -> DirectionT -> Int32 -> Int32 -> m (Int32, Int32)

-- | Notifies the font that underlying font data has
--   changed. This has the effect of increasing the serial as returned by
--   fontGetSerial, which invalidates internal caches.
--   
--   Since: 4.4.0
fontChanged :: (HasCallStack, MonadIO m) => FontT -> m ()

-- | Constructs a new font object from the specified face.
--   
--   <note>Note: If face's index value (as passed to
--   faceCreate has non-zero top 16-bits, those bits minus one are
--   passed to fontSetVarNamedInstance, effectively loading a
--   named-instance of a variable font, instead of the default-instance.
--   This allows specifying which named-instance to load by default when
--   creating the face.</note>
--   
--   Since: 0.9.2
fontCreate :: (HasCallStack, MonadIO m) => FaceT -> m FontT

-- | Constructs a sub-font font object from the specified
--   parent font, replicating the parent's properties.
--   
--   Since: 0.9.2
fontCreateSubFont :: (HasCallStack, MonadIO m) => FontT -> m FontT

-- | Draws the outline that corresponds to a glyph in the specified
--   font.
--   
--   The outline is returned by way of calls to the callbacks of the
--   dfuncs objects, with drawData passed
--   to them.
--   
--   Since: 7.0.0
fontDrawGlyph :: (HasCallStack, MonadIO m) => FontT -> Word32 -> DrawFuncsT -> Ptr () -> m ()

-- | Creates a new FontFuncsT structure of font functions.
--   
--   Since: 0.9.2
fontFuncsCreate :: (HasCallStack, MonadIO m) => m FontFuncsT

-- | Fetches an empty font-functions structure.
--   
--   Since: 0.9.2
fontFuncsGetEmpty :: (HasCallStack, MonadIO m) => m FontFuncsT

-- | Tests whether a font-functions structure is immutable.
--   
--   Since: 0.9.2
fontFuncsIsImmutable :: (HasCallStack, MonadIO m) => FontFuncsT -> m Int32

-- | Makes a font-functions structure immutable.
--   
--   Since: 0.9.2
fontFuncsMakeImmutable :: (HasCallStack, MonadIO m) => FontFuncsT -> m ()

-- | Fetches the empty font object.
--   
--   Since: 0.9.2
fontGetEmpty :: (HasCallStack, MonadIO m) => m FontT

-- | Fetches the extents for a font in a text segment of the specified
--   direction.
--   
--   Calls the appropriate direction-specific variant (horizontal or
--   vertical) depending on the value of direction.
--   
--   Since: 1.1.3
fontGetExtentsForDirection :: (HasCallStack, MonadIO m) => FontT -> DirectionT -> m FontExtentsT

-- | Fetches the face associated with the specified font object.
--   
--   Since: 0.9.2
fontGetFace :: (HasCallStack, MonadIO m) => FontT -> m FaceT

-- | Fetches the glyph ID for a Unicode code point in the specified font,
--   with an optional variation selector.
--   
--   If variationSelector is 0, calls
--   fontGetNominalGlyph; otherwise calls
--   fontGetVariationGlyph.
--   
--   Since: 0.9.2
fontGetGlyph :: (HasCallStack, MonadIO m) => FontT -> Word32 -> Word32 -> m (Int32, Word32)

-- | Fetches the advance for a glyph ID from the specified font, in a text
--   segment of the specified direction.
--   
--   Calls the appropriate direction-specific variant (horizontal or
--   vertical) depending on the value of direction.
--   
--   Since: 0.9.2
fontGetGlyphAdvanceForDirection :: (HasCallStack, MonadIO m) => FontT -> Word32 -> DirectionT -> m (Int32, Int32)

-- | Fetches the advances for a sequence of glyph IDs in the specified
--   font, in a text segment of the specified direction.
--   
--   Calls the appropriate direction-specific variant (horizontal or
--   vertical) depending on the value of direction.
--   
--   Since: 1.8.6
fontGetGlyphAdvancesForDirection :: (HasCallStack, MonadIO m) => FontT -> DirectionT -> Word32 -> Word32 -> Word32 -> m (Int32, Word32)

-- | Fetches the (x,y) coordinates of a specified contour-point index in
--   the specified glyph, within the specified font.
--   
--   Since: 0.9.2
fontGetGlyphContourPoint :: (HasCallStack, MonadIO m) => FontT -> Word32 -> Word32 -> m (Int32, Int32, Int32)

-- | Fetches the (X,Y) coordinates of a specified contour-point index in
--   the specified glyph ID in the specified font, with respect to the
--   origin in a text segment in the specified direction.
--   
--   Calls the appropriate direction-specific variant (horizontal or
--   vertical) depending on the value of direction.
--   
--   Since: 0.9.2
fontGetGlyphContourPointForOrigin :: (HasCallStack, MonadIO m) => FontT -> Word32 -> Word32 -> DirectionT -> m (Int32, Int32, Int32)

-- | Fetches the GlyphExtentsT data for a glyph ID in the specified
--   font.
--   
--   Since: 0.9.2
fontGetGlyphExtents :: (HasCallStack, MonadIO m) => FontT -> Word32 -> m (Int32, GlyphExtentsT)

-- | Fetches the GlyphExtentsT data for a glyph ID in the specified
--   font, with respect to the origin in a text segment in the specified
--   direction.
--   
--   Calls the appropriate direction-specific variant (horizontal or
--   vertical) depending on the value of direction.
--   
--   Since: 0.9.2
fontGetGlyphExtentsForOrigin :: (HasCallStack, MonadIO m) => FontT -> Word32 -> DirectionT -> m (Int32, GlyphExtentsT)

-- | Fetches the glyph ID that corresponds to a name string in the
--   specified font.
--   
--   <note>Note: len == -1 means the name string is
--   null-terminated.</note>
--   
--   Since: 0.9.2
fontGetGlyphFromName :: (HasCallStack, MonadIO m) => FontT -> [Text] -> m (Int32, Word32)

-- | Fetches the advance for a glyph ID in the specified font, for
--   horizontal text segments.
--   
--   Since: 0.9.2
fontGetGlyphHAdvance :: (HasCallStack, MonadIO m) => FontT -> Word32 -> m Int32

-- | Fetches the advances for a sequence of glyph IDs in the specified
--   font, for horizontal text segments.
--   
--   Since: 1.8.6
fontGetGlyphHAdvances :: (HasCallStack, MonadIO m) => FontT -> Word32 -> Word32 -> Word32 -> Word32 -> m Int32

-- | Fetches the kerning-adjustment value for a glyph-pair in the specified
--   font, for horizontal text segments.
--   
--   <note>It handles legacy kerning only (as returned by the
--   corresponding FontFuncsT function).</note>
--   
--   Since: 0.9.2
fontGetGlyphHKerning :: (HasCallStack, MonadIO m) => FontT -> Word32 -> Word32 -> m Int32

-- | Fetches the (X,Y) coordinates of the origin for a glyph ID in the
--   specified font, for horizontal text segments.
--   
--   Since: 0.9.2
fontGetGlyphHOrigin :: (HasCallStack, MonadIO m) => FontT -> Word32 -> m (Int32, Int32, Int32)

-- | Fetches the kerning-adjustment value for a glyph-pair in the specified
--   font.
--   
--   Calls the appropriate direction-specific variant (horizontal or
--   vertical) depending on the value of direction.
--   
--   Since: 0.9.2
fontGetGlyphKerningForDirection :: (HasCallStack, MonadIO m) => FontT -> Word32 -> Word32 -> DirectionT -> m (Int32, Int32)

-- | Fetches the glyph-name string for a glyph ID in the specified
--   font.
--   
--   According to the OpenType specification, glyph names are limited to 63
--   characters and can only contain (a subset of) ASCII.
--   
--   Since: 0.9.2
fontGetGlyphName :: (HasCallStack, MonadIO m) => FontT -> Word32 -> m (Int32, [Text])

-- | Fetches the (X,Y) coordinates of the origin for a glyph in the
--   specified font.
--   
--   Calls the appropriate direction-specific variant (horizontal or
--   vertical) depending on the value of direction.
--   
--   Since: 0.9.2
fontGetGlyphOriginForDirection :: (HasCallStack, MonadIO m) => FontT -> Word32 -> DirectionT -> m (Int32, Int32)

-- | Fetches the glyph shape that corresponds to a glyph in the specified
--   font. The shape is returned by way of calls to the
--   callbacks of the dfuncs objects, with
--   drawData passed to them.
--   
--   Since: 4.0.0

-- | Deprecated: (Since version 7.0.0)Use fontDrawGlyph
--   instead
fontGetGlyphShape :: (HasCallStack, MonadIO m) => FontT -> Word32 -> DrawFuncsT -> Ptr () -> m ()

-- | Fetches the advance for a glyph ID in the specified font, for vertical
--   text segments.
--   
--   Since: 0.9.2
fontGetGlyphVAdvance :: (HasCallStack, MonadIO m) => FontT -> Word32 -> m Int32

-- | Fetches the advances for a sequence of glyph IDs in the specified
--   font, for vertical text segments.
--   
--   Since: 1.8.6
fontGetGlyphVAdvances :: (HasCallStack, MonadIO m) => FontT -> Word32 -> Word32 -> Word32 -> m (Int32, Word32)

-- | Fetches the kerning-adjustment value for a glyph-pair in the specified
--   font, for vertical text segments.
--   
--   <note>It handles legacy kerning only (as returned by the
--   corresponding FontFuncsT function).</note>
--   
--   Since: 0.9.2

-- | Deprecated: (Since version 2.0.0)
fontGetGlyphVKerning :: (HasCallStack, MonadIO m) => FontT -> Word32 -> Word32 -> m Int32

-- | Fetches the (X,Y) coordinates of the origin for a glyph ID in the
--   specified font, for vertical text segments.
--   
--   Since: 0.9.2
fontGetGlyphVOrigin :: (HasCallStack, MonadIO m) => FontT -> Word32 -> m (Int32, Int32, Int32)

-- | Fetches the extents for a specified font, for horizontal text
--   segments.
--   
--   Since: 1.1.3
fontGetHExtents :: (HasCallStack, MonadIO m) => FontT -> m (Int32, FontExtentsT)

-- | Fetches the nominal glyph ID for a Unicode code point in the specified
--   font.
--   
--   This version of the function should not be used to fetch glyph IDs for
--   code points modified by variation selectors. For variation-selector
--   support, user fontGetVariationGlyph or use fontGetGlyph.
--   
--   Since: 1.2.3
fontGetNominalGlyph :: (HasCallStack, MonadIO m) => FontT -> Word32 -> m (Int32, Word32)

-- | Fetches the nominal glyph IDs for a sequence of Unicode code points.
--   Glyph IDs must be returned in a hb_codepoint_t output
--   parameter. Stops at the first unsupported glyph ID.
--   
--   Since: 2.6.3
fontGetNominalGlyphs :: (HasCallStack, MonadIO m) => FontT -> Word32 -> Word32 -> Word32 -> Word32 -> m (Word32, Word32)

-- | Fetches the parent font of font.
--   
--   Since: 0.9.2
fontGetParent :: (HasCallStack, MonadIO m) => FontT -> m FontT

-- | Fetches the horizontal and vertical points-per-em (ppem) of a font.
--   
--   Since: 0.9.2
fontGetPpem :: (HasCallStack, MonadIO m) => FontT -> m (Word32, Word32)

-- | Fetches the "point size" of a font. Used in CoreText to implement
--   optical sizing.
--   
--   Since: 1.6.0
fontGetPtem :: (HasCallStack, MonadIO m) => FontT -> m Float

-- | Fetches the horizontal and vertical scale of a font.
--   
--   Since: 0.9.2
fontGetScale :: (HasCallStack, MonadIO m) => FontT -> m (Int32, Int32)

-- | Returns the internal serial number of the font. The serial number is
--   increased every time a setting on the font is changed, using a setter
--   function.
--   
--   Since: 4.4.0
fontGetSerial :: (HasCallStack, MonadIO m) => FontT -> m Word32

-- | Fetches the "synthetic boldness" parameters of a font.
--   
--   Since: 7.0.0
fontGetSyntheticBold :: (HasCallStack, MonadIO m) => FontT -> m (Float, Float, Int32)

-- | Fetches the "synthetic slant" of a font.
--   
--   Since: 3.3.0
fontGetSyntheticSlant :: (HasCallStack, MonadIO m) => FontT -> m Float

-- | Fetches the extents for a specified font, for vertical text segments.
--   
--   Since: 1.1.3
fontGetVExtents :: (HasCallStack, MonadIO m) => FontT -> m (Int32, FontExtentsT)

-- | Fetches the list of variation coordinates (in design-space units)
--   currently set on a font.
--   
--   Note that this returned array may only contain values for some (or
--   none) of the axes; omitted axes effectively have their default values.
--   
--   Return value is valid as long as variation coordinates of the font are
--   not modified.
--   
--   Since: 3.3.0
fontGetVarCoordsDesign :: (HasCallStack, MonadIO m) => FontT -> m (Float, Word32)

-- | Fetches the list of normalized variation coordinates currently set on
--   a font.
--   
--   Note that this returned array may only contain values for some (or
--   none) of the axes; omitted axes effectively have zero values.
--   
--   Return value is valid as long as variation coordinates of the font are
--   not modified.
--   
--   Since: 1.4.2
fontGetVarCoordsNormalized :: (HasCallStack, MonadIO m) => FontT -> m (Int32, Word32)

-- | Returns the currently-set named-instance index of the font.
--   
--   Since: 7.0.0
fontGetVarNamedInstance :: (HasCallStack, MonadIO m) => FontT -> m Word32

-- | Fetches the glyph ID for a Unicode code point when followed by by the
--   specified variation-selector code point, in the specified font.
--   
--   Since: 1.2.3
fontGetVariationGlyph :: (HasCallStack, MonadIO m) => FontT -> Word32 -> Word32 -> m (Int32, Word32)

-- | Fetches the glyph ID from font that matches the
--   specified string. Strings of the format gidDDD or
--   uniUUUU are parsed automatically.
--   
--   <note>Note: len == -1 means the string is
--   null-terminated.</note>
--   
--   Since: 0.9.2
fontGlyphFromString :: (HasCallStack, MonadIO m) => FontT -> ByteString -> m (Int32, Word32)

-- | Fetches the name of the specified glyph ID in font and
--   returns it in string s.
--   
--   If the glyph ID has no name in font, a string of the
--   form gidDDD is generated, with DDD being the glyph
--   ID.
--   
--   According to the OpenType specification, glyph names are limited to 63
--   characters and can only contain (a subset of) ASCII.
--   
--   Since: 0.9.2
fontGlyphToString :: (HasCallStack, MonadIO m) => FontT -> Word32 -> m [Text]

-- | Tests whether a font object is immutable.
--   
--   Since: 0.9.2
fontIsImmutable :: (HasCallStack, MonadIO m) => FontT -> m Int32

-- | Makes font immutable.
--   
--   Since: 0.9.2
fontMakeImmutable :: (HasCallStack, MonadIO m) => FontT -> m ()

-- | Paints the glyph.
--   
--   The painting instructions are returned by way of calls to the
--   callbacks of the funcs object, with
--   paintData passed to them.
--   
--   If the font has color palettes (see otColorHasPalettes), then
--   paletteIndex selects the palette to use. If the font
--   only has one palette, this will be 0.
--   
--   Since: 7.0.0
fontPaintGlyph :: (HasCallStack, MonadIO m) => FontT -> Word32 -> PaintFuncsT -> Ptr () -> Word32 -> Word32 -> m ()

-- | Sets face as the font-face value of
--   font.
--   
--   Since: 1.4.3
fontSetFace :: (HasCallStack, MonadIO m) => FontT -> FaceT -> m ()

-- | Replaces the font-functions structure attached to a font, updating the
--   font's user-data with font-data and the
--   destroy callback.
--   
--   Since: 0.9.2
fontSetFuncs :: (HasCallStack, MonadIO m) => FontT -> FontFuncsT -> Ptr () -> Maybe DestroyFuncT -> m ()

-- | Replaces the user data attached to a font, updating the font's
--   destroy callback.
--   
--   Since: 0.9.2
fontSetFuncsData :: (HasCallStack, MonadIO m) => FontT -> Ptr () -> Maybe DestroyFuncT -> m ()

-- | Sets the parent font of font.
--   
--   Since: 1.0.5
fontSetParent :: (HasCallStack, MonadIO m) => FontT -> FontT -> m ()

-- | Sets the horizontal and vertical pixels-per-em (PPEM) of a font.
--   
--   These values are used for pixel-size-specific adjustment to shaping
--   and draw results, though for the most part they are unused and can be
--   left unset.
--   
--   Since: 0.9.2
fontSetPpem :: (HasCallStack, MonadIO m) => FontT -> Word32 -> Word32 -> m ()

-- | Sets the "point size" of a font. Set to zero to unset. Used in
--   CoreText to implement optical sizing.
--   
--   <note>Note: There are 72 points in an inch.</note>
--   
--   Since: 1.6.0
fontSetPtem :: (HasCallStack, MonadIO m) => FontT -> Float -> m ()

-- | Sets the horizontal and vertical scale of a font.
--   
--   The font scale is a number related to, but not the same as, font size.
--   Typically the client establishes a scale factor to be used between the
--   two. For example, 64, or 256, which would be the fractional-precision
--   part of the font scale. This is necessary because
--   hb_position_t values are integer types and you need to
--   leave room for fractional values in there.
--   
--   For example, to set the font size to 20, with 64 levels of fractional
--   precision you would call hb_font_set_scale(font, 20 * 64, 20 *
--   64).
--   
--   In the example above, even what font size 20 means is up to you. It
--   might be 20 pixels, or 20 points, or 20 millimeters. HarfBuzz does not
--   care about that. You can set the point size of the font using
--   fontSetPtem, and the pixel size using fontSetPpem.
--   
--   The choice of scale is yours but needs to be consistent between what
--   you set here, and what you expect out of hb_position_t
--   as well has draw / paint API output values.
--   
--   Fonts default to a scale equal to the UPEM value of their face. A font
--   with this setting is sometimes called an "unscaled" font.
--   
--   Since: 0.9.2
fontSetScale :: (HasCallStack, MonadIO m) => FontT -> Int32 -> Int32 -> m ()

-- | Sets the "synthetic boldness" of a font.
--   
--   Positive values for xEmbolden /
--   yEmbolden make a font bolder, negative values thinner.
--   Typical values are in the 0.01 to 0.05 range. The default value is
--   zero.
--   
--   Synthetic boldness is applied by offsetting the contour points of the
--   glyph shape.
--   
--   Synthetic boldness is applied when rendering a glyph via
--   fontDrawGlyph.
--   
--   If inPlace is false, then glyph
--   advance-widths are also adjusted, otherwise they are not. The in-place
--   mode is useful for simulating font grading.
--   
--   Since: 7.0.0
fontSetSyntheticBold :: (HasCallStack, MonadIO m) => FontT -> Float -> Float -> Int32 -> m ()

-- | Sets the "synthetic slant" of a font. By default is zero. Synthetic
--   slant is the graphical skew applied to the font at rendering time.
--   
--   HarfBuzz needs to know this value to adjust shaping results, metrics,
--   and style values to match the slanted rendering.
--   
--   <note>Note: The glyph shape fetched via the fontDrawGlyph
--   function is slanted to reflect this value as well.</note>
--   
--   <note>Note: The slant value is a ratio. For example, a 20% slant
--   would be represented as a 0.2 value.</note>
--   
--   Since: 3.3.0
fontSetSyntheticSlant :: (HasCallStack, MonadIO m) => FontT -> Float -> m ()

-- | Applies a list of variation coordinates (in design-space units) to a
--   font.
--   
--   Note that this overrides all existing variations set on
--   font. Axes not included in coords will
--   be effectively set to their default values.
--   
--   Since: 1.4.2
fontSetVarCoordsDesign :: (HasCallStack, MonadIO m) => FontT -> [Float] -> m ()

-- | Applies a list of variation coordinates (in normalized units) to a
--   font.
--   
--   Note that this overrides all existing variations set on
--   font. Axes not included in coords will
--   be effectively set to their default values.
--   
--   <note>Note: Coordinates should be normalized to
--   2.14.</note>
--   
--   Since: 1.4.2
fontSetVarCoordsNormalized :: (HasCallStack, MonadIO m) => FontT -> [Int32] -> m ()

-- | Sets design coords of a font from a named-instance index.
--   
--   Since: 2.6.0
fontSetVarNamedInstance :: (HasCallStack, MonadIO m) => FontT -> Word32 -> m ()

-- | Change the value of one variation axis on the font.
--   
--   Note: This function is expensive to be called repeatedly. If you want
--   to set multiple variation axes at the same time, use
--   fontSetVariations instead.
--   
--   Since: 7.1.0
fontSetVariation :: (HasCallStack, MonadIO m) => FontT -> Word32 -> Float -> m ()

-- | Applies a list of font-variation settings to a font.
--   
--   Note that this overrides all existing variations set on
--   font. Axes not included in variations
--   will be effectively set to their default values.
--   
--   Since: 1.4.2
fontSetVariations :: (HasCallStack, MonadIO m) => FontT -> [VariationT] -> m ()

-- | Subtracts the origin coordinates from an (X,Y) point coordinate, in
--   the specified glyph ID in the specified font.
--   
--   Calls the appropriate direction-specific variant (horizontal or
--   vertical) depending on the value of direction.
--   
--   Since: 0.9.2
fontSubtractGlyphOriginForDirection :: (HasCallStack, MonadIO m) => FontT -> Word32 -> DirectionT -> Int32 -> Int32 -> m (Int32, Int32)

-- | Creates an FaceT face object from the specified FT_Face.
--   
--   Note that this is using the FT_Face object just to get at the
--   underlying font data, and fonts created from the returned FaceT
--   will use the native HarfBuzz font implementation, unless you call
--   ftFontSetFuncs on them.
--   
--   This variant of the function does not provide any life-cycle
--   management.
--   
--   Most client programs should use ftFaceCreateReferenced (or,
--   perhaps, ftFaceCreateCached) instead.
--   
--   If you know you have valid reasons not to use
--   ftFaceCreateReferenced, then it is the client program's
--   responsibility to destroy ftFace after the
--   FaceT face object has been destroyed.
--   
--   Since: 0.9.2
ftFaceCreate :: (HasCallStack, MonadIO m) => Face -> Maybe DestroyFuncT -> m FaceT

-- | Creates an FaceT face object from the specified FT_Face.
--   
--   Note that this is using the FT_Face object just to get at the
--   underlying font data, and fonts created from the returned FaceT
--   will use the native HarfBuzz font implementation, unless you call
--   ftFontSetFuncs on them.
--   
--   This variant of the function caches the newly created FaceT
--   face object, using the generic pointer of
--   ftFace. Subsequent function calls that are passed the
--   same ftFace parameter will have the same FaceT
--   returned to them, and that FaceT will be correctly reference
--   counted.
--   
--   However, client programs are still responsible for destroying
--   ftFace after the last FaceT face object has
--   been destroyed.
--   
--   Since: 0.9.2
ftFaceCreateCached :: (HasCallStack, MonadIO m) => Face -> m FaceT

-- | Creates an FaceT face object from the specified FT_Face.
--   
--   Note that this is using the FT_Face object just to get at the
--   underlying font data, and fonts created from the returned FaceT
--   will use the native HarfBuzz font implementation, unless you call
--   ftFontSetFuncs on them.
--   
--   This is the preferred variant of the hb_ft_face_create* function
--   family, because it calls FT_Reference_Face() on
--   ftFace, ensuring that ftFace remains
--   alive as long as the resulting FaceT face object remains alive.
--   Also calls FT_Done_Face() when the FaceT face
--   object is destroyed.
--   
--   Use this version unless you know you have good reasons not to.
--   
--   Since: 0.9.38
ftFaceCreateReferenced :: (HasCallStack, MonadIO m) => Face -> m FaceT

-- | Refreshes the state of font when the underlying
--   FT_Face has changed. This function should be called after changing the
--   size or variation-axis settings on the FT_Face.
--   
--   Since: 1.0.5
ftFontChanged :: (HasCallStack, MonadIO m) => FontT -> m ()

-- | Creates an FontT font object from the specified FT_Face.
--   
--   <note>Note: You must set the face size on ftFace
--   before calling ftFontCreate on it. HarfBuzz assumes size is
--   always set and will access size member of FT_Face
--   unconditionally.</note>
--   
--   This variant of the function does not provide any life-cycle
--   management.
--   
--   Most client programs should use ftFontCreateReferenced instead.
--   
--   If you know you have valid reasons not to use
--   ftFontCreateReferenced, then it is the client program's
--   responsibility to destroy ftFace after the
--   FontT font object has been destroyed.
--   
--   HarfBuzz will use the destroy callback on the
--   FontT font object if it is supplied when you use this function.
--   However, even if destroy is provided, it is the client
--   program's responsibility to destroy ftFace, and it is
--   the client program's responsibility to ensure that
--   ftFace is destroyed only after the FontT font
--   object has been destroyed.
--   
--   Since: 0.9.2
ftFontCreate :: (HasCallStack, MonadIO m) => Face -> Maybe DestroyFuncT -> m FontT

-- | Creates an FontT font object from the specified FT_Face.
--   
--   <note>Note: You must set the face size on ftFace
--   before calling ftFontCreateReferenced on it. HarfBuzz assumes
--   size is always set and will access size member of FT_Face
--   unconditionally.</note>
--   
--   This is the preferred variant of the hb_ft_font_create* function
--   family, because it calls FT_Reference_Face() on
--   ftFace, ensuring that ftFace remains
--   alive as long as the resulting FontT font object remains alive.
--   
--   Use this version unless you know you have good reasons not to.
--   
--   Since: 0.9.38
ftFontCreateReferenced :: (HasCallStack, MonadIO m) => Face -> m FontT

-- | Fetches the FT_Load_Glyph load flags of the specified FontT.
--   
--   For more information, see
--   <https://freetype.org/freetype2/docs/reference/ft2-glyph_retrieval.htmlft_load_xxx>
--   
--   This function works with FontT objects created by
--   ftFontCreate or ftFontCreateReferenced.
--   
--   Since: 1.0.5
ftFontGetLoadFlags :: (HasCallStack, MonadIO m) => FontT -> m Int32

-- | Configures the font-functions structure of the specified FontT
--   font object to use FreeType font functions.
--   
--   In particular, you can use this function to configure an existing
--   FaceT face object for use with FreeType font functions even if
--   that FaceT face object was initially created with
--   faceCreate, and therefore was not initially configured to use
--   FreeType font functions.
--   
--   An FontT object created with ftFontCreate is
--   preconfigured for FreeType font functions and does not require this
--   function to be used.
--   
--   Note that if you modify the underlying FontT after calling this
--   function, you need to call ftHbFontChanged to update the
--   underlying FT_Face.
--   
--   <note>Note: Internally, this function creates an FT_Face.
--   </note>
--   
--   Since: 1.0.5
ftFontSetFuncs :: (HasCallStack, MonadIO m) => FontT -> m ()

-- | Sets the FT_Load_Glyph load flags for the specified FontT.
--   
--   For more information, see
--   <https://freetype.org/freetype2/docs/reference/ft2-glyph_retrieval.htmlft_load_xxx>
--   
--   This function works with FontT objects created by
--   ftFontCreate or ftFontCreateReferenced.
--   
--   Since: 1.0.5
ftFontSetLoadFlags :: (HasCallStack, MonadIO m) => FontT -> Int32 -> m ()

-- | Refreshes the state of the underlying FT_Face of font
--   when the hb_font_t font has changed. This function
--   should be called after changing the size or variation-axis settings on
--   the font. This call is fast if nothing has changed on
--   font.
--   
--   Since: 4.4.0
ftHbFontChanged :: (HasCallStack, MonadIO m) => FontT -> m Int32

-- | Creates an BlobT blob from the specified GBytes data structure.
--   
--   Since: 0.9.38
glibBlobCreate :: (HasCallStack, MonadIO m) => Bytes -> m BlobT

-- | Fetches a Unicode-functions structure that is populated with the
--   appropriate GLib function for each method.
--   
--   Since: 0.9.38
glibGetUnicodeFuncs :: (HasCallStack, MonadIO m) => m UnicodeFuncsT

-- | Fetches the GUnicodeScript identifier that corresponds to the
--   specified ScriptT script.
--   
--   Since: 0.9.38
glibScriptFromScript :: (HasCallStack, MonadIO m) => ScriptT -> m UnicodeScript

-- | Fetches the ScriptT script that corresponds to the specified
--   GUnicodeScript identifier.
--   
--   Since: 0.9.38
glibScriptToScript :: (HasCallStack, MonadIO m) => UnicodeScript -> m ScriptT

-- | Returns glyph flags encoded within a GlyphInfoT.
--   
--   Since: 1.5.0
glyphInfoGetGlyphFlags :: (HasCallStack, MonadIO m) => GlyphInfoT -> m [GlyphFlagsT]

-- | Converts str representing a BCP 47 language tag to the
--   corresponding LanguageT.
--   
--   Since: 0.9.2
languageFromString :: (HasCallStack, MonadIO m) => ByteString -> m LanguageT

-- | Fetch the default language from current locale.
--   
--   <note>Note that the first time this function is called, it calls
--   "setlocale (LC_CTYPE, nullptr)" to fetch current locale. The
--   underlying setlocale function is, in many implementations, NOT
--   threadsafe. To avoid problems, call this function once before multiple
--   threads can call it. This function is only used from
--   bufferGuessSegmentProperties by HarfBuzz itself.</note>
--   
--   Since: 0.9.2
languageGetDefault :: (HasCallStack, MonadIO m) => m LanguageT

-- | Check whether a second language tag is the same or a more specific
--   version of the provided language tag. For example, "fa_IR.utf8" is a
--   more specific tag for "fa" or for "fa_IR".
--   
--   Since: 5.0.0
languageMatches :: (HasCallStack, MonadIO m) => LanguageT -> LanguageT -> m Int32

-- | Converts an LanguageT to a string.
--   
--   Since: 0.9.2
languageToString :: (HasCallStack, MonadIO m) => LanguageT -> m Text

-- | Tests whether memory allocation for a set was successful.
--   
--   Since: 1.7.7
mapAllocationSuccessful :: (HasCallStack, MonadIO m) => MapT -> m Int32

-- | Clears out the contents of map.
--   
--   Since: 1.7.7
mapClear :: (HasCallStack, MonadIO m) => MapT -> m ()

-- | Allocate a copy of map.
--   
--   Since: 4.4.0
mapCopy :: (HasCallStack, MonadIO m) => MapT -> m MapT

-- | Creates a new, initially empty map.
--   
--   Since: 1.7.7
mapCreate :: (HasCallStack, MonadIO m) => m MapT

-- | Removes key and its stored value from
--   map.
--   
--   Since: 1.7.7
mapDel :: (HasCallStack, MonadIO m) => MapT -> Word32 -> m ()

-- | Fetches the value stored for key in
--   map.
--   
--   Since: 1.7.7
mapGet :: (HasCallStack, MonadIO m) => MapT -> Word32 -> m Word32

-- | Fetches the singleton empty MapT.
--   
--   Since: 1.7.7
mapGetEmpty :: (HasCallStack, MonadIO m) => m MapT

-- | Returns the number of key-value pairs in the map.
--   
--   Since: 1.7.7
mapGetPopulation :: (HasCallStack, MonadIO m) => MapT -> m Word32

-- | Tests whether key is an element of
--   map.
--   
--   Since: 1.7.7
mapHas :: (HasCallStack, MonadIO m) => MapT -> Word32 -> m Int32

-- | Creates a hash representing map.
--   
--   Since: 4.4.0
mapHash :: (HasCallStack, MonadIO m) => MapT -> m Word32

-- | Tests whether map is empty (contains no elements).
--   
--   Since: 1.7.7
mapIsEmpty :: (HasCallStack, MonadIO m) => MapT -> m Int32

-- | Tests whether map and other are equal
--   (contain the same elements).
--   
--   Since: 4.3.0
mapIsEqual :: (HasCallStack, MonadIO m) => MapT -> MapT -> m Int32

-- | Add the keys of map to keys.
--   
--   Since: 7.0.0
mapKeys :: (HasCallStack, MonadIO m) => MapT -> SetT -> m ()

-- | Fetches the next key/value pair in map.
--   
--   Set idx to -1 to get started.
--   
--   If the map is modified during iteration, the behavior is undefined.
--   
--   The order in which the key/values are returned is undefined.
--   
--   Since: 7.0.0
mapNext :: (HasCallStack, MonadIO m) => MapT -> Int32 -> m (Int32, Int32, Word32, Word32)

-- | Stores key:value in the map.
--   
--   Since: 1.7.7
mapSet :: (HasCallStack, MonadIO m) => MapT -> Word32 -> Word32 -> m ()

-- | Add the contents of other to map.
--   
--   Since: 7.0.0
mapUpdate :: (HasCallStack, MonadIO m) => MapT -> MapT -> m ()

-- | Add the values of map to values.
--   
--   Since: 7.0.0
mapValues :: (HasCallStack, MonadIO m) => MapT -> SetT -> m ()

-- | Fetches a list of all color layers for the specified glyph index in
--   the specified face. The list returned will begin at the offset
--   provided.
--   
--   Since: 2.1.0
otColorGlyphGetLayers :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> Maybe [OtColorLayerT] -> m (Word32, Maybe [OtColorLayerT])

-- | Tests where a face includes COLRv1 paint data for
--   glyph.
--   
--   Since: 7.0.0
otColorGlyphHasPaint :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> m Int32

-- | Fetches the PNG image for a glyph. This function takes a font object,
--   not a face object, as input. To get an optimally sized PNG blob, the
--   PPEM values must be set on the font object. If PPEM is
--   unset, the blob returned will be the largest PNG available.
--   
--   If the glyph has no PNG image, the singleton empty blob is returned.
--   
--   Since: 2.1.0
otColorGlyphReferencePng :: (HasCallStack, MonadIO m) => FontT -> Word32 -> m BlobT

-- | Fetches the SVG document for a glyph. The blob may be either plain
--   text or gzip-encoded.
--   
--   If the glyph has no SVG document, the singleton empty blob is
--   returned.
--   
--   Since: 2.1.0
otColorGlyphReferenceSvg :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> m BlobT

-- | Tests whether a face includes a COLR table with data
--   according to COLRv0.
--   
--   Since: 2.1.0
otColorHasLayers :: (HasCallStack, MonadIO m) => FaceT -> m Int32

-- | Tests where a face includes a COLR table with data according
--   to COLRv1.
--   
--   Since: 7.0.0
otColorHasPaint :: (HasCallStack, MonadIO m) => FaceT -> m Int32

-- | Tests whether a face includes a CPAL color-palette table.
--   
--   Since: 2.1.0
otColorHasPalettes :: (HasCallStack, MonadIO m) => FaceT -> m Int32

-- | Tests whether a face has PNG glyph images (either in CBDT or
--   sbix tables).
--   
--   Since: 2.1.0
otColorHasPng :: (HasCallStack, MonadIO m) => FaceT -> m Int32

-- | Tests whether a face includes any SVG glyph images.
--   
--   Since: 2.1.0
otColorHasSvg :: (HasCallStack, MonadIO m) => FaceT -> m Int32

-- | Fetches the name table Name ID that provides display names
--   for the specified color in a face's CPAL color palette.
--   
--   Display names can be generic (e.g., "Background") or specific (e.g.,
--   "Eye color").
--   
--   Since: 2.1.0
otColorPaletteColorGetNameId :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> m Word32

-- | Fetches a list of the colors in a color palette.
--   
--   After calling this function, colors will be filled
--   with the palette colors. If colors is NULL, the
--   function will just return the number of total colors without storing
--   any actual colors; this can be used for allocating a buffer of
--   suitable size before calling otColorPaletteGetColors a second
--   time.
--   
--   The RGBA values in the palette are unpremultiplied. See the OpenType
--   spec CPAL section for details.
--   
--   Since: 2.1.0
otColorPaletteGetColors :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> m (Word32, Maybe [Word32])

-- | Fetches the number of color palettes in a face.
--   
--   Since: 2.1.0
otColorPaletteGetCount :: (HasCallStack, MonadIO m) => FaceT -> m Word32

-- | Fetches the flags defined for a color palette.
--   
--   Since: 2.1.0
otColorPaletteGetFlags :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> m [OtColorPaletteFlagsT]

-- | Fetches the name table Name ID that provides display names
--   for a CPAL color palette.
--   
--   Palette display names can be generic (e.g., "Default") or provide
--   specific, themed names (e.g., "Spring", "Summer", "Fall", and
--   "Winter").
--   
--   Since: 2.1.0
otColorPaletteGetNameId :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> m Word32

-- | Sets the font functions to use when working with font.
--   
--   Since: 0.9.28
otFontSetFuncs :: (HasCallStack, MonadIO m) => FontT -> m ()

-- | Fetches a list of the characters defined as having a variant under the
--   specified "Character Variant" ("cvXX") feature tag.
--   
--   Since: 2.0.0
otLayoutFeatureGetCharacters :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> Word32 -> [Word32] -> m (Word32, [Word32])

-- | Fetches a list of all lookups enumerated for the specified feature, in
--   the specified face's GSUB table or GPOS table. The list returned will
--   begin at the offset provided.
--   
--   Since: 0.9.7
otLayoutFeatureGetLookups :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> Word32 -> m (Word32, [Word32])

-- | Fetches name indices from feature parameters for "Stylistic Set"
--   ('ssXX') or "Character Variant" ('cvXX') features.
--   
--   Since: 2.0.0
otLayoutFeatureGetNameIds :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> m (Int32, Word32, Word32, Word32, Word32, Word32)

-- | Fetches a list of all lookups enumerated for the specified feature, in
--   the specified face's GSUB table or GPOS table, enabled at the
--   specified variations index. The list returned will begin at the offset
--   provided.
--   
--   Since: 1.4.0
otLayoutFeatureWithVariationsGetLookups :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> Word32 -> Word32 -> m (Word32, [Word32])

-- | Fetches a list of all attachment points for the specified glyph in the
--   GDEF table of the face. The list returned will begin at the offset
--   provided.
--   
--   Useful if the client program wishes to cache the list.
otLayoutGetAttachPoints :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> m (Word32, [Word32])

-- | Fetches a baseline value from the face.
--   
--   Since: 2.6.0
otLayoutGetBaseline :: (HasCallStack, MonadIO m) => FontT -> OtLayoutBaselineTagT -> DirectionT -> Word32 -> Word32 -> m (Int32, Int32)

-- | Fetches a baseline value from the face.
--   
--   This function is like otLayoutGetBaseline but takes
--   ScriptT and LanguageT instead of OpenType
--   hb_tag_t.
--   
--   Since: 8.0.0
otLayoutGetBaseline2 :: (HasCallStack, MonadIO m) => FontT -> OtLayoutBaselineTagT -> DirectionT -> ScriptT -> Maybe LanguageT -> m (Int32, Int32)

-- | Fetches a baseline value from the face, and synthesizes it if the font
--   does not have it.
--   
--   Since: 4.0.0
otLayoutGetBaselineWithFallback :: (HasCallStack, MonadIO m) => FontT -> OtLayoutBaselineTagT -> DirectionT -> Word32 -> Word32 -> m Int32

-- | Fetches a baseline value from the face, and synthesizes it if the font
--   does not have it.
--   
--   This function is like otLayoutGetBaselineWithFallback but takes
--   ScriptT and LanguageT instead of OpenType
--   hb_tag_t.
--   
--   Since: 8.0.0
otLayoutGetBaselineWithFallback2 :: (HasCallStack, MonadIO m) => FontT -> OtLayoutBaselineTagT -> DirectionT -> ScriptT -> Maybe LanguageT -> m Int32

-- | Fetches script/language-specific font extents. These values are looked
--   up in the BASE table's MinMax records.
--   
--   If no such extents are found, the default extents for the font are
--   fetched. As such, the return value of this function can for the most
--   part be ignored. Note that the per-script/language extents do not have
--   a line-gap value, and the line-gap is set to zero in that case.
--   
--   Since: 8.0.0
otLayoutGetFontExtents :: (HasCallStack, MonadIO m) => FontT -> DirectionT -> Word32 -> Word32 -> m (Int32, Maybe FontExtentsT)

-- | Fetches script/language-specific font extents. These values are looked
--   up in the BASE table's MinMax records.
--   
--   If no such extents are found, the default extents for the font are
--   fetched. As such, the return value of this function can for the most
--   part be ignored. Note that the per-script/language extents do not have
--   a line-gap value, and the line-gap is set to zero in that case.
--   
--   This function is like otLayoutGetFontExtents but takes
--   ScriptT and LanguageT instead of OpenType
--   hb_tag_t.
--   
--   Since: 8.0.0
otLayoutGetFontExtents2 :: (HasCallStack, MonadIO m) => FontT -> DirectionT -> ScriptT -> Maybe LanguageT -> m (Int32, Maybe FontExtentsT)

-- | Fetches the GDEF class of the requested glyph in the specified face.
--   
--   Since: 0.9.7
otLayoutGetGlyphClass :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> m OtLayoutGlyphClassT

-- | Fetches the dominant horizontal baseline tag used by
--   script.
--   
--   Since: 4.0.0
otLayoutGetHorizontalBaselineTagForScript :: (HasCallStack, MonadIO m) => ScriptT -> m OtLayoutBaselineTagT

-- | Fetches a list of the caret positions defined for a ligature glyph in
--   the GDEF table of the font. The list returned will begin at the offset
--   provided.
--   
--   Note that a ligature that is formed from n characters will have n-1
--   caret positions. The first character is not represented in the array,
--   since its caret position is the glyph position.
--   
--   The positions returned by this function are 'unshaped', and will have
--   to be fixed up for kerning that may be applied to the ligature glyph.
otLayoutGetLigatureCarets :: (HasCallStack, MonadIO m) => FontT -> DirectionT -> Word32 -> Word32 -> m (Word32, [Int32])

-- | Fetches optical-size feature data (i.e., the size feature
--   from GPOS). Note that the subfamily_id and the subfamily name string
--   (accessible via the subfamily_name_id) as used here are defined as
--   pertaining only to fonts within a font family that differ specifically
--   in their respective size ranges; other ways to differentiate fonts
--   within a subfamily are not covered by the size feature.
--   
--   For more information on this distinction, see the
--   <http://developer.gnome.org/harfbuzz/stable/
--   https://docs.microsoft.com/en-us/typography/opentype/spec/features_pt#tag-size
--   size feature documentation>.
--   
--   Since: 0.9.10
otLayoutGetSizeParams :: (HasCallStack, MonadIO m) => FaceT -> m (Int32, Word32, Word32, Word32, Word32, Word32)

-- | Tests whether a face has any glyph classes defined in its GDEF table.
otLayoutHasGlyphClasses :: (HasCallStack, MonadIO m) => FaceT -> m Int32

-- | Tests whether the specified face includes any GPOS positioning.
otLayoutHasPositioning :: (HasCallStack, MonadIO m) => FaceT -> m Int32

-- | Tests whether the specified face includes any GSUB substitutions.
--   
--   Since: 0.6.0
otLayoutHasSubstitution :: (HasCallStack, MonadIO m) => FaceT -> m Int32

-- | Fetches the index of a given feature tag in the specified face's GSUB
--   table or GPOS table, underneath the specified script and language.
--   
--   Since: 0.6.0
otLayoutLanguageFindFeature :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> Word32 -> Word32 -> m (Int32, Word32)

-- | Fetches a list of all features in the specified face's GSUB table or
--   GPOS table, underneath the specified script and language. The list
--   returned will begin at the offset provided.
--   
--   Since: 0.6.0
otLayoutLanguageGetFeatureIndexes :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> Word32 -> Word32 -> m (Word32, [Word32])

-- | Fetches a list of all features in the specified face's GSUB table or
--   GPOS table, underneath the specified script and language. The list
--   returned will begin at the offset provided.
--   
--   Since: 0.6.0
otLayoutLanguageGetFeatureTags :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> Word32 -> Word32 -> m (Word32, [Word32])

-- | Fetches the tag of a requested feature index in the given face's GSUB
--   or GPOS table, underneath the specified script and language.
--   
--   Since: 0.9.30
otLayoutLanguageGetRequiredFeature :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> Word32 -> m (Int32, Word32, Word32)

-- | Fetches the index of a requested feature in the given face's GSUB or
--   GPOS table, underneath the specified script and language.
--   
--   Since: 0.6.0
otLayoutLanguageGetRequiredFeatureIndex :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> Word32 -> m (Int32, Word32)

-- | Fetches alternates of a glyph from a given GSUB lookup index.
--   
--   Since: 2.6.8
otLayoutLookupGetGlyphAlternates :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> Word32 -> [Word32] -> m (Word32, [Word32])

-- | Fetches the optical bound of a glyph positioned at the margin of text.
--   The direction identifies which edge of the glyph to query.
--   
--   Since: 5.3.0
otLayoutLookupGetOpticalBound :: (HasCallStack, MonadIO m) => FontT -> Word32 -> DirectionT -> Word32 -> m Int32

-- | Tests whether a specified lookup in the specified face would trigger a
--   substitution on the given glyph sequence.
--   
--   Since: 0.9.7
otLayoutLookupWouldSubstitute :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> Word32 -> Int32 -> m Int32

-- | Fetches the index of a given language tag in the specified face's GSUB
--   table or GPOS table, underneath the specified script tag.
--   
--   Since: 0.6.0

-- | Deprecated: (Since version 2.0.0)
otLayoutScriptFindLanguage :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> Word32 -> Word32 -> m Int32

-- | Fetches a list of language tags in the given face's GSUB or GPOS
--   table, underneath the specified script index. The list returned will
--   begin at the offset provided.
--   
--   Since: 0.6.0
otLayoutScriptGetLanguageTags :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> Word32 -> m (Word32, [Word32])

-- | Fetches the index of the first language tag fom
--   languageTags that is present in the specified face's
--   GSUB or GPOS table, underneath the specified script index.
--   
--   If none of the given language tags is found, false is
--   returned and languageIndex is set to the default
--   language index.
--   
--   Since: 2.0.0
otLayoutScriptSelectLanguage :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> Word32 -> Word32 -> m (Int32, Word32)

-- | Fetches the index of the first language tag fom
--   languageTags that is present in the specified face's
--   GSUB or GPOS table, underneath the specified script index.
--   
--   If none of the given language tags is found, false is
--   returned and languageIndex is set to
--   OT_LAYOUT_DEFAULT_LANGUAGE_INDEX and
--   chosenLanguage is set to HB_TAG_NONE.
--   
--   Since: 7.0.0
otLayoutScriptSelectLanguage2 :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> Word32 -> Word32 -> m (Int32, Word32, Word32)

-- | Deprecated since 2.0.0
otLayoutTableChooseScript :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> m (Int32, Word32, Word32)

-- | Fetches a list of feature variations in the specified face's GSUB
--   table or GPOS table, at the specified variation coordinates.
--   
--   Since: 1.4.0
otLayoutTableFindFeatureVariations :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Int32 -> Word32 -> m (Int32, Word32)

-- | Fetches the index if a given script tag in the specified face's GSUB
--   table or GPOS table.
otLayoutTableFindScript :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> m (Int32, Word32)

-- | Fetches a list of all feature tags in the given face's GSUB or GPOS
--   table. Note that there might be duplicate feature tags, belonging to
--   different script/language-system pairs of the table.
--   
--   Since: 0.6.0
otLayoutTableGetFeatureTags :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> m (Word32, [Word32])

-- | Fetches the total number of lookups enumerated in the specified face's
--   GSUB table or GPOS table.
--   
--   Since: 0.9.22
otLayoutTableGetLookupCount :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> m Word32

-- | Fetches a list of all scripts enumerated in the specified face's GSUB
--   table or GPOS table. The list returned will begin at the offset
--   provided.
otLayoutTableGetScriptTags :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> m (Word32, [Word32])

-- | Selects an OpenType script for tableTag from the
--   scriptTags array.
--   
--   If the table does not have any of the requested scripts, then
--   DFLT, dflt, and latn tags are tried in that
--   order. If the table still does not have any of these scripts,
--   scriptIndex is set to OT_LAYOUT_NO_SCRIPT_INDEX
--   and chosenScript is set to
--   HB_TAG_NONE.
--   
--   Since: 2.0.0
otLayoutTableSelectScript :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> Word32 -> m (Int32, Word32, Word32)

-- | Fetches the specified math constant. For most constants, the value
--   returned is an hb_position_t.
--   
--   However, if the requested constant is
--   HB_OT_MATH_CONSTANT_SCRIPT_PERCENT_SCALE_DOWN,
--   HB_OT_MATH_CONSTANT_SCRIPT_SCRIPT_PERCENT_SCALE_DOWN
--   or
--   HB_OT_MATH_CONSTANT_RADICAL_DEGREE_BOTTOM_RAISE_PERCENT,
--   then the return value is an integer between 0 and 100 representing
--   that percentage.
--   
--   Since: 1.3.3
otMathGetConstant :: (HasCallStack, MonadIO m) => FontT -> OtMathConstantT -> m Int32

-- | Fetches the GlyphAssembly for the specified font, glyph index, and
--   direction. Returned are a list of OtMathGlyphPartT glyph parts
--   that can be used to draw the glyph and an italics-correction value (if
--   one is defined in the font).
--   
--   <note>The direction parameter is only used to
--   select between horizontal or vertical directions for the construction.
--   Even though all DirectionT values are accepted, only the result
--   of HB_DIRECTION_IS_HORIZONTAL is
--   considered.</note>
--   
--   Since: 1.3.3
otMathGetGlyphAssembly :: (HasCallStack, MonadIO m) => FontT -> Word32 -> DirectionT -> Word32 -> [OtMathGlyphPartT] -> m (Word32, [OtMathGlyphPartT], Int32)

-- | Fetches an italics-correction value (if one exists) for the specified
--   glyph index.
--   
--   Since: 1.3.3
otMathGetGlyphItalicsCorrection :: (HasCallStack, MonadIO m) => FontT -> Word32 -> m Int32

-- | Fetches the math kerning (cut-ins) value for the specified font, glyph
--   index, and kern.
--   
--   If the MathKern table is found, the function examines it to find a
--   height value that is greater or equal to
--   correctionHeight. If such a height value is found,
--   corresponding kerning value from the table is returned. If no such
--   height value is found, the last kerning value is returned.
--   
--   Since: 1.3.3
otMathGetGlyphKerning :: (HasCallStack, MonadIO m) => FontT -> Word32 -> OtMathKernT -> Int32 -> m Int32

-- | Fetches the raw MathKern (cut-in) data for the specified font, glyph
--   index, and kern. The corresponding list of kern values
--   and correction heights is returned as a list of
--   OtMathKernEntryT structs.
--   
--   See also hb_ot_math_get_glyph_kerning, which handles
--   selecting the appropriate kern value for a given correction height.
--   
--   <note>For a glyph with n defined kern values
--   (where n > 0), there are only n−1
--   defined correction heights, as each correction height defines a
--   boundary past which the next kern value should be selected. Therefore,
--   only the OtMathKernEntryT.kern_value of the
--   uppermost OtMathKernEntryT actually comes from the font; its
--   corresponding
--   OtMathKernEntryT.max_correction_height is
--   always set to <code>INT32_MAX</code>.</note>
--   
--   Since: 3.4.0
otMathGetGlyphKernings :: (HasCallStack, MonadIO m) => FontT -> Word32 -> OtMathKernT -> Word32 -> [OtMathKernEntryT] -> m (Word32, [OtMathKernEntryT])

-- | Fetches a top-accent-attachment value (if one exists) for the
--   specified glyph index.
--   
--   For any glyph that does not have a top-accent-attachment value - that
--   is, a glyph not covered by the MathTopAccentAttachment table
--   (or, when font has no MathTopAccentAttachment
--   table or no MATH table, any glyph) - the function synthesizes
--   a value, returning the position at one-half the glyph's advance width.
--   
--   Since: 1.3.3
otMathGetGlyphTopAccentAttachment :: (HasCallStack, MonadIO m) => FontT -> Word32 -> m Int32

-- | Fetches the MathGlyphConstruction for the specified font, glyph index,
--   and direction. The corresponding list of size variants is returned as
--   a list of OtMathGlyphVariantT structs.
--   
--   <note>The direction parameter is only used to
--   select between horizontal or vertical directions for the construction.
--   Even though all DirectionT values are accepted, only the result
--   of HB_DIRECTION_IS_HORIZONTAL is
--   considered.</note>
--   
--   Since: 1.3.3
otMathGetGlyphVariants :: (HasCallStack, MonadIO m) => FontT -> Word32 -> DirectionT -> Word32 -> [OtMathGlyphVariantT] -> m (Word32, [OtMathGlyphVariantT])

-- | Fetches the MathVariants table for the specified font and returns the
--   minimum overlap of connecting glyphs that are required to draw a glyph
--   assembly in the specified direction.
--   
--   <note>The direction parameter is only used to
--   select between horizontal or vertical directions for the construction.
--   Even though all DirectionT values are accepted, only the result
--   of HB_DIRECTION_IS_HORIZONTAL is
--   considered.</note>
--   
--   Since: 1.3.3
otMathGetMinConnectorOverlap :: (HasCallStack, MonadIO m) => FontT -> DirectionT -> m Int32

-- | Tests whether a face has a MATH table.
--   
--   Since: 1.3.3
otMathHasData :: (HasCallStack, MonadIO m) => FaceT -> m Int32

-- | Tests whether the given glyph index is an extended shape in the face.
--   
--   Since: 1.3.3
otMathIsGlyphExtendedShape :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> m Int32

-- | Fetches all available feature types.
--   
--   Since: 2.6.0
otMetaGetEntryTags :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> [OtMetaTagT] -> m (Word32, [OtMetaTagT])

-- | It fetches metadata entry of a given tag from a font.
--   
--   Since: 2.6.0
otMetaReferenceEntry :: (HasCallStack, MonadIO m) => FaceT -> OtMetaTagT -> m BlobT

-- | Fetches metrics value corresponding to metricsTag from
--   font.
--   
--   Since: 2.6.0
otMetricsGetPosition :: (HasCallStack, MonadIO m) => FontT -> OtMetricsTagT -> m (Int32, Int32)

-- | Fetches metrics value corresponding to metricsTag from
--   font, and synthesizes a value if it the value is
--   missing in the font.
--   
--   Since: 4.0.0
otMetricsGetPositionWithFallback :: (HasCallStack, MonadIO m) => FontT -> OtMetricsTagT -> m Int32

-- | Fetches metrics value corresponding to metricsTag from
--   font with the current font variation settings applied.
--   
--   Since: 2.6.0
otMetricsGetVariation :: (HasCallStack, MonadIO m) => FontT -> OtMetricsTagT -> m Float

-- | Fetches horizontal metrics value corresponding to
--   metricsTag from font with the current
--   font variation settings applied.
--   
--   Since: 2.6.0
otMetricsGetXVariation :: (HasCallStack, MonadIO m) => FontT -> OtMetricsTagT -> m Int32

-- | Fetches vertical metrics value corresponding to
--   metricsTag from font with the current
--   font variation settings applied.
--   
--   Since: 2.6.0
otMetricsGetYVariation :: (HasCallStack, MonadIO m) => FontT -> OtMetricsTagT -> m Int32

-- | Fetches a font name from the OpenType 'name' table. If
--   language is LANGUAGE_INVALID, English ("en") is
--   assumed. Returns string in UTF-16 encoding. A NUL terminator is always
--   written for convenience, and isn't included in the output
--   textSize.
--   
--   Since: 2.1.0
otNameGetUtf16 :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> LanguageT -> [Word16] -> m (Word32, [Word16])

-- | Fetches a font name from the OpenType 'name' table. If
--   language is LANGUAGE_INVALID, English ("en") is
--   assumed. Returns string in UTF-32 encoding. A NUL terminator is always
--   written for convenience, and isn't included in the output
--   textSize.
--   
--   Since: 2.1.0
otNameGetUtf32 :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> LanguageT -> [Word32] -> m (Word32, [Word32])

-- | Fetches a font name from the OpenType 'name' table. If
--   language is LANGUAGE_INVALID, English ("en") is
--   assumed. Returns string in UTF-8 encoding. A NUL terminator is always
--   written for convenience, and isn't included in the output
--   textSize.
--   
--   Since: 2.1.0
otNameGetUtf8 :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> LanguageT -> [Text] -> m (Word32, [Text])

-- | Enumerates all available name IDs and language combinations. Returned
--   array is owned by the face and should not be modified.
--   It can be used as long as face is alive.
--   
--   Since: 2.1.0
otNameListNames :: (HasCallStack, MonadIO m) => FaceT -> m [OtNameEntryT]

-- | Converts an LanguageT to an hb_tag_t.
--   
--   Since: 0.6.0

-- | Deprecated: (Since version 2.0.0)use
--   otTagsFromScriptAndLanguage instead
otTagFromLanguage :: (HasCallStack, MonadIO m) => LanguageT -> m Word32

-- | Converts a language tag to an LanguageT.
--   
--   Since: 0.9.2
otTagToLanguage :: (HasCallStack, MonadIO m) => Word32 -> m (Maybe LanguageT)

-- | Converts a script tag to an ScriptT.
otTagToScript :: (HasCallStack, MonadIO m) => Word32 -> m ScriptT

-- | Converts an ScriptT to script tags.
--   
--   Since: 0.6.0

-- | Deprecated: (Since version 2.0.0)use
--   otTagsFromScriptAndLanguage instead
otTagsFromScript :: (HasCallStack, MonadIO m) => ScriptT -> m (Word32, Word32)

-- | Converts an ScriptT and an LanguageT to script and
--   language tags.
--   
--   Since: 2.0.0
otTagsFromScriptAndLanguage :: (HasCallStack, MonadIO m) => ScriptT -> Maybe LanguageT -> Word32 -> Word32 -> m (Word32, Word32, Word32, Word32)

-- | Fetches the variation-axis information corresponding to the specified
--   axis tag in the specified face.
--   
--   Since: 1.4.2

-- | Deprecated: (Since version 2.2.0)- use otVarFindAxisInfo
--   instead
otVarFindAxis :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Word32 -> m (Int32, OtVarAxisT)

-- | Fetches the variation-axis information corresponding to the specified
--   axis tag in the specified face.
--   
--   Since: 2.2.0
otVarFindAxisInfo :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> m (Int32, OtVarAxisInfoT)

-- | Fetches a list of all variation axes in the specified face. The list
--   returned will begin at the offset provided.
--   
--   Since: 1.4.2

-- | Deprecated: (Since version 2.2.0)use otVarGetAxisInfos
--   instead
otVarGetAxes :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> [OtVarAxisT] -> m (Word32, [OtVarAxisT])

-- | Fetches the number of OpenType variation axes included in the face.
--   
--   Since: 1.4.2
otVarGetAxisCount :: (HasCallStack, MonadIO m) => FaceT -> m Word32

-- | Fetches a list of all variation axes in the specified face. The list
--   returned will begin at the offset provided.
--   
--   Since: 2.2.0
otVarGetAxisInfos :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> [OtVarAxisInfoT] -> m (Word32, [OtVarAxisInfoT])

-- | Fetches the number of named instances included in the face.
--   
--   Since: 2.2.0
otVarGetNamedInstanceCount :: (HasCallStack, MonadIO m) => FaceT -> m Word32

-- | Tests whether a face includes any OpenType variation data in the
--   fvar table.
--   
--   Since: 1.4.2
otVarHasData :: (HasCallStack, MonadIO m) => FaceT -> m Int32

-- | Fetches the design-space coordinates corresponding to the given named
--   instance in the face.
--   
--   Since: 2.2.0
otVarNamedInstanceGetDesignCoords :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> m (Word32, [Float])

-- | Fetches the name table Name ID that provides display names
--   for the "PostScript name" defined for the given named instance in the
--   face.
--   
--   Since: 2.2.0
otVarNamedInstanceGetPostscriptNameId :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> m Word32

-- | Fetches the name table Name ID that provides display names
--   for the "Subfamily name" defined for the given named instance in the
--   face.
--   
--   Since: 2.2.0
otVarNamedInstanceGetSubfamilyNameId :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> m Word32

-- | Normalizes the given design-space coordinates. The minimum and maximum
--   values for the axis are mapped to the interval [-1,1], with the
--   default axis value mapped to 0.
--   
--   The normalized values have 14 bits of fixed-point sub-integer
--   precision as per OpenType specification.
--   
--   Any additional scaling defined in the face's avar table is
--   also applied, as described at
--   https://docs.microsoft.com/en-us/typography/opentype/spec/avar
--   
--   Since: 1.4.2
otVarNormalizeCoords :: (HasCallStack, MonadIO m) => FaceT -> Word32 -> Float -> m Int32

-- | Normalizes all of the coordinates in the given list of variation axes.
--   
--   Since: 1.4.2
otVarNormalizeVariations :: (HasCallStack, MonadIO m) => FaceT -> VariationT -> Word32 -> m [Int32]

-- | Perform a "color" paint operation.
--   
--   Since: 7.0.0
paintColor :: (HasCallStack, MonadIO m) => PaintFuncsT -> Ptr () -> Int32 -> Word32 -> m ()

-- | Perform a "color-glyph" paint operation.
--   
--   Since: 8.2.0
paintColorGlyph :: (HasCallStack, MonadIO m) => PaintFuncsT -> Ptr () -> Word32 -> FontT -> m Int32

-- | Gets the custom palette color for colorIndex.
--   
--   Since: 7.0.0
paintCustomPaletteColor :: (HasCallStack, MonadIO m) => PaintFuncsT -> Ptr () -> Word32 -> m (Int32, Word32)

-- | Creates a new PaintFuncsT structure of paint functions.
--   
--   The initial reference count of 1 should be released with
--   hb_paint_funcs_destroy() when you are done using the
--   PaintFuncsT. This function never returns NULL. If
--   memory cannot be allocated, a special singleton PaintFuncsT
--   object will be returned.
--   
--   Since: 7.0.0
paintFuncsCreate :: (HasCallStack, MonadIO m) => m PaintFuncsT

-- | Fetches the singleton empty paint-functions structure.
--   
--   Since: 7.0.0
paintFuncsGetEmpty :: (HasCallStack, MonadIO m) => m PaintFuncsT

-- | Tests whether a paint-functions structure is immutable.
--   
--   Since: 7.0.0
paintFuncsIsImmutable :: (HasCallStack, MonadIO m) => PaintFuncsT -> m Int32

-- | Makes a paint-functions structure immutable.
--   
--   After this call, all attempts to set one of the callbacks on
--   funcs will fail.
--   
--   Since: 7.0.0
paintFuncsMakeImmutable :: (HasCallStack, MonadIO m) => PaintFuncsT -> m ()

-- | Perform a "image" paint operation.
--   
--   Since: 7.0.0
paintImage :: (HasCallStack, MonadIO m) => PaintFuncsT -> Ptr () -> BlobT -> Word32 -> Word32 -> Word32 -> Float -> Maybe GlyphExtentsT -> m ()

-- | Perform a "linear-gradient" paint operation.
--   
--   Since: 7.0.0
paintLinearGradient :: (HasCallStack, MonadIO m) => PaintFuncsT -> Ptr () -> ColorLineT -> Float -> Float -> Float -> Float -> Float -> Float -> m ()

-- | Perform a "pop-clip" paint operation.
--   
--   Since: 7.0.0
paintPopClip :: (HasCallStack, MonadIO m) => PaintFuncsT -> Ptr () -> m ()

-- | Perform a "pop-group" paint operation.
--   
--   Since: 7.0.0
paintPopGroup :: (HasCallStack, MonadIO m) => PaintFuncsT -> Ptr () -> PaintCompositeModeT -> m ()

-- | Perform a "pop-transform" paint operation.
--   
--   Since: 7.0.0
paintPopTransform :: (HasCallStack, MonadIO m) => PaintFuncsT -> Ptr () -> m ()

-- | Perform a "push-clip-glyph" paint operation.
--   
--   Since: 7.0.0
paintPushClipGlyph :: (HasCallStack, MonadIO m) => PaintFuncsT -> Ptr () -> Word32 -> FontT -> m ()

-- | Perform a "push-clip-rect" paint operation.
--   
--   Since: 7.0.0
paintPushClipRectangle :: (HasCallStack, MonadIO m) => PaintFuncsT -> Ptr () -> Float -> Float -> Float -> Float -> m ()

-- | Perform a "push-group" paint operation.
--   
--   Since: 7.0.0
paintPushGroup :: (HasCallStack, MonadIO m) => PaintFuncsT -> Ptr () -> m ()

-- | Perform a "push-transform" paint operation.
--   
--   Since: 7.0.0
paintPushTransform :: (HasCallStack, MonadIO m) => PaintFuncsT -> Ptr () -> Float -> Float -> Float -> Float -> Float -> Float -> m ()

-- | Perform a "radial-gradient" paint operation.
--   
--   Since: 7.0.0
paintRadialGradient :: (HasCallStack, MonadIO m) => PaintFuncsT -> Ptr () -> ColorLineT -> Float -> Float -> Float -> Float -> Float -> Float -> m ()

-- | Perform a "sweep-gradient" paint operation.
--   
--   Since: 7.0.0
paintSweepGradient :: (HasCallStack, MonadIO m) => PaintFuncsT -> Ptr () -> ColorLineT -> Float -> Float -> Float -> Float -> m ()

-- | Converts an ISO 15924 script tag to a corresponding ScriptT.
--   
--   Since: 0.9.2
scriptFromIso15924Tag :: (HasCallStack, MonadIO m) => Word32 -> m ScriptT

-- | Converts a string str representing an ISO 15924 script
--   tag to a corresponding ScriptT. Shorthand for
--   tagFromString then scriptFromIso15924Tag.
--   
--   Since: 0.9.2
scriptFromString :: (HasCallStack, MonadIO m) => ByteString -> m ScriptT

-- | Fetches the DirectionT of a script when it is set horizontally.
--   All right-to-left scripts will return
--   HB_DIRECTION_RTL. All left-to-right scripts will
--   return HB_DIRECTION_LTR. Scripts that can be written
--   either horizontally or vertically will return
--   HB_DIRECTION_INVALID. Unknown scripts will return
--   HB_DIRECTION_LTR.
--   
--   Since: 0.9.2
scriptGetHorizontalDirection :: (HasCallStack, MonadIO m) => ScriptT -> m DirectionT

-- | Converts an ScriptT to a corresponding ISO 15924 script tag.
--   
--   Since: 0.9.2
scriptToIso15924Tag :: (HasCallStack, MonadIO m) => ScriptT -> m Word32

-- | Checks the equality of two SegmentPropertiesT's.
--   
--   Since: 0.9.7
segmentPropertiesEqual :: (HasCallStack, MonadIO m) => SegmentPropertiesT -> SegmentPropertiesT -> m Int32

-- | Creates a hash representing p.
--   
--   Since: 0.9.7
segmentPropertiesHash :: (HasCallStack, MonadIO m) => SegmentPropertiesT -> m Word32

-- | Fills in missing fields of p from src
--   in a considered manner.
--   
--   First, if p does not have direction set, direction is
--   copied from src.
--   
--   Next, if p and src have the same
--   direction (which can be unset), if p does not have
--   script set, script is copied from src.
--   
--   Finally, if p and src have the same
--   direction and script (which either can be unset), if p
--   does not have language set, language is copied from
--   src.
--   
--   Since: 3.3.0
segmentPropertiesOverlay :: (HasCallStack, MonadIO m) => SegmentPropertiesT -> SegmentPropertiesT -> m ()

-- | Adds codepoint to set.
--   
--   Since: 0.9.2
setAdd :: (HasCallStack, MonadIO m) => SetT -> Word32 -> m ()

-- | Adds all of the elements from first to
--   last (inclusive) to set.
--   
--   Since: 0.9.7
setAddRange :: (HasCallStack, MonadIO m) => SetT -> Word32 -> Word32 -> m ()

-- | Adds numCodepoints codepoints to a set at once. The
--   codepoints array must be in increasing order, with size at least
--   numCodepoints.
--   
--   Since: 4.1.0
setAddSortedArray :: (HasCallStack, MonadIO m) => SetT -> [Word32] -> m ()

-- | Tests whether memory allocation for a set was successful.
--   
--   Since: 0.9.2
setAllocationSuccessful :: (HasCallStack, MonadIO m) => SetT -> m Int32

-- | Clears out the contents of a set.
--   
--   Since: 0.9.2
setClear :: (HasCallStack, MonadIO m) => SetT -> m ()

-- | Allocate a copy of set.
--   
--   Since: 2.8.2
setCopy :: (HasCallStack, MonadIO m) => SetT -> m SetT

-- | Creates a new, initially empty set.
--   
--   Since: 0.9.2
setCreate :: (HasCallStack, MonadIO m) => m SetT

-- | Removes codepoint from set.
--   
--   Since: 0.9.2
setDel :: (HasCallStack, MonadIO m) => SetT -> Word32 -> m ()

-- | Removes all of the elements from first to
--   last (inclusive) from set.
--   
--   If last is HB_SET_VALUE_INVALID, then
--   all values greater than or equal to first are removed.
--   
--   Since: 0.9.7
setDelRange :: (HasCallStack, MonadIO m) => SetT -> Word32 -> Word32 -> m ()

-- | Fetches the singleton empty SetT.
--   
--   Since: 0.9.2
setGetEmpty :: (HasCallStack, MonadIO m) => m SetT

-- | Finds the largest element in the set.
--   
--   Since: 0.9.7
setGetMax :: (HasCallStack, MonadIO m) => SetT -> m Word32

-- | Finds the smallest element in the set.
--   
--   Since: 0.9.7
setGetMin :: (HasCallStack, MonadIO m) => SetT -> m Word32

-- | Returns the number of elements in the set.
--   
--   Since: 0.9.7
setGetPopulation :: (HasCallStack, MonadIO m) => SetT -> m Word32

-- | Tests whether codepoint belongs to
--   set.
--   
--   Since: 0.9.2
setHas :: (HasCallStack, MonadIO m) => SetT -> Word32 -> m Int32

-- | Creates a hash representing set.
--   
--   Since: 4.4.0
setHash :: (HasCallStack, MonadIO m) => SetT -> m Word32

-- | Makes set the intersection of set and
--   other.
--   
--   Since: 0.9.2
setIntersect :: (HasCallStack, MonadIO m) => SetT -> SetT -> m ()

-- | Inverts the contents of set.
--   
--   Since: 3.0.0
setInvert :: (HasCallStack, MonadIO m) => SetT -> m ()

-- | Tests whether a set is empty (contains no elements).
--   
--   Since: 0.9.7
setIsEmpty :: (HasCallStack, MonadIO m) => SetT -> m Int32

-- | Tests whether set and other are equal
--   (contain the same elements).
--   
--   Since: 0.9.7
setIsEqual :: (HasCallStack, MonadIO m) => SetT -> SetT -> m Int32

-- | Returns whether the set is inverted.
--   
--   Since: 7.0.0
setIsInverted :: (HasCallStack, MonadIO m) => SetT -> m Int32

-- | Tests whether set is a subset of
--   largerSet.
--   
--   Since: 1.8.1
setIsSubset :: (HasCallStack, MonadIO m) => SetT -> SetT -> m Int32

-- | Fetches the next element in set that is greater than
--   current value of codepoint.
--   
--   Set codepoint to HB_SET_VALUE_INVALID
--   to get started.
--   
--   Since: 0.9.2
setNext :: (HasCallStack, MonadIO m) => SetT -> Word32 -> m (Int32, Word32)

-- | Finds the next element in set that is greater than
--   codepoint. Writes out codepoints to
--   out, until either the set runs out of elements, or
--   size codepoints are written, whichever comes first.
--   
--   Since: 4.2.0
setNextMany :: (HasCallStack, MonadIO m) => SetT -> Word32 -> [Word32] -> m Word32

-- | Fetches the next consecutive range of elements in set
--   that are greater than current value of last.
--   
--   Set last to HB_SET_VALUE_INVALID to
--   get started.
--   
--   Since: 0.9.7
setNextRange :: (HasCallStack, MonadIO m) => SetT -> Word32 -> m (Int32, Word32, Word32)

-- | Fetches the previous element in set that is lower than
--   current value of codepoint.
--   
--   Set codepoint to HB_SET_VALUE_INVALID
--   to get started.
--   
--   Since: 1.8.0
setPrevious :: (HasCallStack, MonadIO m) => SetT -> Word32 -> m (Int32, Word32)

-- | Fetches the previous consecutive range of elements in
--   set that are greater than current value of
--   last.
--   
--   Set first to HB_SET_VALUE_INVALID to
--   get started.
--   
--   Since: 1.8.0
setPreviousRange :: (HasCallStack, MonadIO m) => SetT -> Word32 -> m (Int32, Word32, Word32)

-- | Makes the contents of set equal to the contents of
--   other.
--   
--   Since: 0.9.2
setSet :: (HasCallStack, MonadIO m) => SetT -> SetT -> m ()

-- | Subtracts the contents of other from
--   set.
--   
--   Since: 0.9.2
setSubtract :: (HasCallStack, MonadIO m) => SetT -> SetT -> m ()

-- | Makes set the symmetric difference of
--   set and other.
--   
--   Since: 0.9.2
setSymmetricDifference :: (HasCallStack, MonadIO m) => SetT -> SetT -> m ()

-- | Makes set the union of set and
--   other.
--   
--   Since: 0.9.2
setUnion :: (HasCallStack, MonadIO m) => SetT -> SetT -> m ()

-- | Shapes buffer using font turning its
--   Unicode characters content to positioned glyphs. If
--   features is not NULL, it will be used to
--   control the features applied during shaping. If two
--   features have the same tag but overlapping ranges the
--   value of the feature with the higher index takes precedence.
--   
--   Since: 0.9.2
shape :: (HasCallStack, MonadIO m) => FontT -> BufferT -> Maybe [FeatureT] -> m ()

-- | See shape for details. If shaperList is not
--   NULL, the specified shapers will be used in the given order,
--   otherwise the default shapers list will be used.
--   
--   Since: 0.9.2
shapeFull :: (HasCallStack, MonadIO m) => FontT -> BufferT -> Maybe [FeatureT] -> Maybe [Text] -> m Int32

-- | Retrieves the list of shapers supported by HarfBuzz.
--   
--   Since: 0.9.2
shapeListShapers :: (HasCallStack, MonadIO m) => m [Text]

-- | Constructs a shaping plan for a combination of face,
--   userFeatures, props, and
--   shaperList.
--   
--   Since: 0.9.7
shapePlanCreate :: (HasCallStack, MonadIO m) => FaceT -> SegmentPropertiesT -> [FeatureT] -> [Text] -> m ShapePlanT

-- | The variable-font version of hb_shape_plan_create.
--   Constructs a shaping plan for a combination of face,
--   userFeatures, props, and
--   shaperList, plus the variation-space coordinates
--   coords.
--   
--   Since: 1.4.0
shapePlanCreate2 :: (HasCallStack, MonadIO m) => FaceT -> SegmentPropertiesT -> [FeatureT] -> [Int32] -> [Text] -> m ShapePlanT

-- | Creates a cached shaping plan suitable for reuse, for a combination of
--   face, userFeatures,
--   props, and shaperList.
--   
--   Since: 0.9.7
shapePlanCreateCached :: (HasCallStack, MonadIO m) => FaceT -> SegmentPropertiesT -> [FeatureT] -> [Text] -> m ShapePlanT

-- | The variable-font version of
--   hb_shape_plan_create_cached. Creates a cached shaping
--   plan suitable for reuse, for a combination of face,
--   userFeatures, props, and
--   shaperList, plus the variation-space coordinates
--   coords.
--   
--   Since: 1.4.0
shapePlanCreateCached2 :: (HasCallStack, MonadIO m) => FaceT -> SegmentPropertiesT -> [FeatureT] -> [Int32] -> [Text] -> m ShapePlanT

-- | Executes the given shaping plan on the specified buffer, using the
--   given font and features.
--   
--   Since: 0.9.7
shapePlanExecute :: (HasCallStack, MonadIO m) => ShapePlanT -> FontT -> BufferT -> [FeatureT] -> m Int32

-- | Fetches the singleton empty shaping plan.
--   
--   Since: 0.9.7
shapePlanGetEmpty :: (HasCallStack, MonadIO m) => m ShapePlanT

-- | Fetches the shaper from a given shaping plan.
--   
--   Since: 0.9.7
shapePlanGetShaper :: (HasCallStack, MonadIO m) => ShapePlanT -> m Text

-- | Searches variation axes of a FontT object for a specific axis
--   first, if not set, first tries to get default style values in
--   STAT table then tries to polyfill from different tables of
--   the font.
--   
--   Since: 3.0.0
styleGetValue :: (HasCallStack, MonadIO m) => FontT -> StyleTagT -> m Float

-- | Converts a string into an hb_tag_t. Valid tags are
--   four characters. Shorter input strings will be padded with spaces.
--   Longer input strings will be truncated.
--   
--   Since: 0.9.2
tagFromString :: (HasCallStack, MonadIO m) => ByteString -> m Word32

-- | Retrieves the Canonical Combining Class (ccc) property of code point
--   unicode.
--   
--   Since: 0.9.2
unicodeCombiningClass :: (HasCallStack, MonadIO m) => UnicodeFuncsT -> Word32 -> m UnicodeCombiningClassT

-- | Fetches the composition of a sequence of two Unicode code points.
--   
--   Calls the composition function of the specified Unicode-functions
--   structure ufuncs.
--   
--   Since: 0.9.2
unicodeCompose :: (HasCallStack, MonadIO m) => UnicodeFuncsT -> Word32 -> Word32 -> m (Int32, Word32)

-- | Fetches the decomposition of a Unicode code point.
--   
--   Calls the decomposition function of the specified Unicode-functions
--   structure ufuncs.
--   
--   Since: 0.9.2
unicodeDecompose :: (HasCallStack, MonadIO m) => UnicodeFuncsT -> Word32 -> m (Int32, Word32, Word32)

-- | Fetches the compatibility decomposition of a Unicode code point.
--   Deprecated.
--   
--   Since: 0.9.2

-- | Deprecated: (Since version 2.0.0)
unicodeDecomposeCompatibility :: (HasCallStack, MonadIO m) => UnicodeFuncsT -> Word32 -> m (Word32, Word32)

-- | Don't use. Not used by HarfBuzz.
--   
--   Since: 0.9.2

-- | Deprecated: (Since version 2.0.0)
unicodeEastasianWidth :: (HasCallStack, MonadIO m) => UnicodeFuncsT -> Word32 -> m Word32

-- | Creates a new UnicodeFuncsT structure of Unicode functions.
--   
--   Since: 0.9.2
unicodeFuncsCreate :: (HasCallStack, MonadIO m) => Maybe UnicodeFuncsT -> m UnicodeFuncsT

-- | Fetches a pointer to the default Unicode-functions structure that is
--   used when no functions are explicitly set on BufferT.
--   
--   Since: 0.9.2
unicodeFuncsGetDefault :: (HasCallStack, MonadIO m) => m UnicodeFuncsT

-- | Fetches the singleton empty Unicode-functions structure.
--   
--   Since: 0.9.2
unicodeFuncsGetEmpty :: (HasCallStack, MonadIO m) => m UnicodeFuncsT

-- | Fetches the parent of the Unicode-functions structure
--   ufuncs.
--   
--   Since: 0.9.2
unicodeFuncsGetParent :: (HasCallStack, MonadIO m) => UnicodeFuncsT -> m UnicodeFuncsT

-- | Tests whether the specified Unicode-functions structure is immutable.
--   
--   Since: 0.9.2
unicodeFuncsIsImmutable :: (HasCallStack, MonadIO m) => UnicodeFuncsT -> m Int32

-- | Makes the specified Unicode-functions structure immutable.
--   
--   Since: 0.9.2
unicodeFuncsMakeImmutable :: (HasCallStack, MonadIO m) => UnicodeFuncsT -> m ()

-- | Retrieves the General Category (gc) property of code point
--   unicode.
--   
--   Since: 0.9.2
unicodeGeneralCategory :: (HasCallStack, MonadIO m) => UnicodeFuncsT -> Word32 -> m UnicodeGeneralCategoryT

-- | Retrieves the Bi-directional Mirroring Glyph code point defined for
--   code point unicode.
--   
--   Since: 0.9.2
unicodeMirroring :: (HasCallStack, MonadIO m) => UnicodeFuncsT -> Word32 -> m Word32

-- | Retrieves the ScriptT script to which code point
--   unicode belongs.
--   
--   Since: 0.9.2
unicodeScript :: (HasCallStack, MonadIO m) => UnicodeFuncsT -> Word32 -> m ScriptT

-- | Parses a string into a VariationT.
--   
--   The format for specifying variation settings follows. All valid CSS
--   font-variation-settings values other than 'normal' and 'inherited' are
--   also accepted, though, not documented below.
--   
--   The format is a tag, optionally followed by an equals sign, followed
--   by a number. For example wght=500, or slnt=-7.5.
--   
--   Since: 1.4.2
variationFromString :: (HasCallStack, MonadIO m) => ByteString -> m (Int32, VariationT)

-- | Converts an VariationT into a NULL-terminated string
--   in the format understood by variationFromString. The client in
--   responsible for allocating big enough size for buf,
--   128 bytes is more than enough.
--   
--   Since: 1.4.2
variationToString :: (HasCallStack, MonadIO m) => VariationT -> [Text] -> m [Text]

-- | No description available in the introspection data.
module GI.HarfBuzz.Unions.VarIntT

-- | Memory-managed wrapper type.
newtype VarIntT
VarIntT :: ManagedPtr VarIntT -> VarIntT

-- | Construct a VarIntT struct initialized to zero.
newZeroVarIntT :: MonadIO m => m VarIntT

-- | Get the value of the “i32” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get varIntT #i32
--   
getVarIntTI32 :: MonadIO m => VarIntT -> m Int32

-- | Set the value of the “i32” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set varIntT [ #i32 := value ]
--   
setVarIntTI32 :: MonadIO m => VarIntT -> Int32 -> m ()

-- | Get the value of the “u32” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get varIntT #u32
--   
getVarIntTU32 :: MonadIO m => VarIntT -> m Word32

-- | Set the value of the “u32” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set varIntT [ #u32 := value ]
--   
setVarIntTU32 :: MonadIO m => VarIntT -> Word32 -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Unions.VarIntT.VarIntT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Unions.VarIntT.VarIntT
instance Data.GI.Base.BasicTypes.BoxedPtr GI.HarfBuzz.Unions.VarIntT.VarIntT
instance Data.GI.Base.BasicTypes.CallocPtr GI.HarfBuzz.Unions.VarIntT.VarIntT
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Unions.VarIntT.VarIntT tag

-- | No description available in the introspection data.
module GI.HarfBuzz.Unions.VarNumT

-- | Memory-managed wrapper type.
newtype VarNumT
VarNumT :: ManagedPtr VarNumT -> VarNumT

-- | Construct a VarNumT struct initialized to zero.
newZeroVarNumT :: MonadIO m => m VarNumT

-- | Get the value of the “f” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get varNumT #f
--   
getVarNumTF :: MonadIO m => VarNumT -> m Float

-- | Set the value of the “f” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set varNumT [ #f := value ]
--   
setVarNumTF :: MonadIO m => VarNumT -> Float -> m ()

-- | Get the value of the “i32” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get varNumT #i32
--   
getVarNumTI32 :: MonadIO m => VarNumT -> m Int32

-- | Set the value of the “i32” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set varNumT [ #i32 := value ]
--   
setVarNumTI32 :: MonadIO m => VarNumT -> Int32 -> m ()

-- | Get the value of the “u32” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get varNumT #u32
--   
getVarNumTU32 :: MonadIO m => VarNumT -> m Word32

-- | Set the value of the “u32” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set varNumT [ #u32 := value ]
--   
setVarNumTU32 :: MonadIO m => VarNumT -> Word32 -> m ()
instance GHC.Classes.Eq GI.HarfBuzz.Unions.VarNumT.VarNumT
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.HarfBuzz.Unions.VarNumT.VarNumT
instance Data.GI.Base.BasicTypes.BoxedPtr GI.HarfBuzz.Unions.VarNumT.VarNumT
instance Data.GI.Base.BasicTypes.CallocPtr GI.HarfBuzz.Unions.VarNumT.VarNumT
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.HarfBuzz.Unions.VarNumT.VarNumT tag

module GI.HarfBuzz.Unions

module GI.HarfBuzz
