{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
       && !defined(__HADDOCK_VERSION__))

module GI.GObject.Enums
    (

 -- * Enumerations
-- ** NormalizeMode #enum:NormalizeMode#

    NormalizeMode(..)                       ,


-- ** UnicodeBreakType #enum:UnicodeBreakType#

    UnicodeBreakType(..)                    ,


-- ** UnicodeScript #enum:UnicodeScript#

    UnicodeScript(..)                       ,


-- ** UnicodeType #enum:UnicodeType#

    UnicodeType(..)                         ,




    ) where

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

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP


-- Enum UnicodeType
{- |
/No description available in the introspection data./
-}
data UnicodeType =
      UnicodeTypeControl
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeFormat
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeUnassigned
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypePrivateUse
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeSurrogate
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeLowercaseLetter
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeModifierLetter
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeOtherLetter
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeTitlecaseLetter
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeUppercaseLetter
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeSpacingMark
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeEnclosingMark
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeNonSpacingMark
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeDecimalNumber
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeLetterNumber
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeOtherNumber
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeConnectPunctuation
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeDashPunctuation
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeClosePunctuation
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeFinalPunctuation
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeInitialPunctuation
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeOtherPunctuation
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeOpenPunctuation
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeCurrencySymbol
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeModifierSymbol
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeMathSymbol
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeOtherSymbol
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeLineSeparator
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeParagraphSeparator
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeTypeSpaceSeparator
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherUnicodeType Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum UnicodeType where
    fromEnum UnicodeTypeControl = 0
    fromEnum UnicodeTypeFormat = 1
    fromEnum UnicodeTypeUnassigned = 2
    fromEnum UnicodeTypePrivateUse = 3
    fromEnum UnicodeTypeSurrogate = 4
    fromEnum UnicodeTypeLowercaseLetter = 5
    fromEnum UnicodeTypeModifierLetter = 6
    fromEnum UnicodeTypeOtherLetter = 7
    fromEnum UnicodeTypeTitlecaseLetter = 8
    fromEnum UnicodeTypeUppercaseLetter = 9
    fromEnum UnicodeTypeSpacingMark = 10
    fromEnum UnicodeTypeEnclosingMark = 11
    fromEnum UnicodeTypeNonSpacingMark = 12
    fromEnum UnicodeTypeDecimalNumber = 13
    fromEnum UnicodeTypeLetterNumber = 14
    fromEnum UnicodeTypeOtherNumber = 15
    fromEnum UnicodeTypeConnectPunctuation = 16
    fromEnum UnicodeTypeDashPunctuation = 17
    fromEnum UnicodeTypeClosePunctuation = 18
    fromEnum UnicodeTypeFinalPunctuation = 19
    fromEnum UnicodeTypeInitialPunctuation = 20
    fromEnum UnicodeTypeOtherPunctuation = 21
    fromEnum UnicodeTypeOpenPunctuation = 22
    fromEnum UnicodeTypeCurrencySymbol = 23
    fromEnum UnicodeTypeModifierSymbol = 24
    fromEnum UnicodeTypeMathSymbol = 25
    fromEnum UnicodeTypeOtherSymbol = 26
    fromEnum UnicodeTypeLineSeparator = 27
    fromEnum UnicodeTypeParagraphSeparator = 28
    fromEnum UnicodeTypeSpaceSeparator = 29
    fromEnum (AnotherUnicodeType k) = k

    toEnum 0 = UnicodeTypeControl
    toEnum 1 = UnicodeTypeFormat
    toEnum 2 = UnicodeTypeUnassigned
    toEnum 3 = UnicodeTypePrivateUse
    toEnum 4 = UnicodeTypeSurrogate
    toEnum 5 = UnicodeTypeLowercaseLetter
    toEnum 6 = UnicodeTypeModifierLetter
    toEnum 7 = UnicodeTypeOtherLetter
    toEnum 8 = UnicodeTypeTitlecaseLetter
    toEnum 9 = UnicodeTypeUppercaseLetter
    toEnum 10 = UnicodeTypeSpacingMark
    toEnum 11 = UnicodeTypeEnclosingMark
    toEnum 12 = UnicodeTypeNonSpacingMark
    toEnum 13 = UnicodeTypeDecimalNumber
    toEnum 14 = UnicodeTypeLetterNumber
    toEnum 15 = UnicodeTypeOtherNumber
    toEnum 16 = UnicodeTypeConnectPunctuation
    toEnum 17 = UnicodeTypeDashPunctuation
    toEnum 18 = UnicodeTypeClosePunctuation
    toEnum 19 = UnicodeTypeFinalPunctuation
    toEnum 20 = UnicodeTypeInitialPunctuation
    toEnum 21 = UnicodeTypeOtherPunctuation
    toEnum 22 = UnicodeTypeOpenPunctuation
    toEnum 23 = UnicodeTypeCurrencySymbol
    toEnum 24 = UnicodeTypeModifierSymbol
    toEnum 25 = UnicodeTypeMathSymbol
    toEnum 26 = UnicodeTypeOtherSymbol
    toEnum 27 = UnicodeTypeLineSeparator
    toEnum 28 = UnicodeTypeParagraphSeparator
    toEnum 29 = UnicodeTypeSpaceSeparator
    toEnum k = AnotherUnicodeType k

instance P.Ord UnicodeType where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

foreign import ccall "g_unicode_type_get_type" c_g_unicode_type_get_type ::
    IO GType

instance BoxedEnum UnicodeType where
    boxedEnumType _ = c_g_unicode_type_get_type

-- Enum UnicodeScript
{- |
/No description available in the introspection data./
-}
data UnicodeScript =
      UnicodeScriptInvalidCode
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptCommon
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptInherited
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptArabic
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptArmenian
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptBengali
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptBopomofo
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptCherokee
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptCoptic
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptCyrillic
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptDeseret
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptDevanagari
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptEthiopic
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptGeorgian
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptGothic
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptGreek
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptGujarati
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptGurmukhi
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptHan
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptHangul
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptHebrew
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptHiragana
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptKannada
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptKatakana
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptKhmer
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptLao
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptLatin
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptMalayalam
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptMongolian
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptMyanmar
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptOgham
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptOldItalic
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptOriya
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptRunic
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptSinhala
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptSyriac
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptTamil
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptTelugu
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptThaana
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptThai
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptTibetan
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptCanadianAboriginal
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptYi
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptTagalog
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptHanunoo
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptBuhid
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptTagbanwa
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptBraille
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptCypriot
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptLimbu
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptOsmanya
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptShavian
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptLinearB
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptTaiLe
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptUgaritic
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptNewTaiLue
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptBuginese
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptGlagolitic
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptTifinagh
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptSylotiNagri
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptOldPersian
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptKharoshthi
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptUnknown
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptBalinese
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptCuneiform
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptPhoenician
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptPhagsPa
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptNko
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptKayahLi
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptLepcha
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptRejang
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptSundanese
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptSaurashtra
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptCham
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptOlChiki
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptVai
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptCarian
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptLycian
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptLydian
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptAvestan
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptBamum
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptEgyptianHieroglyphs
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptImperialAramaic
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptInscriptionalPahlavi
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptInscriptionalParthian
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptJavanese
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptKaithi
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptLisu
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptMeeteiMayek
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptOldSouthArabian
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptOldTurkic
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptSamaritan
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptTaiTham
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptTaiViet
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptBatak
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptBrahmi
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptMandaic
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptChakma
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptMeroiticCursive
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptMeroiticHieroglyphs
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptMiao
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptSharada
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptSoraSompeng
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptTakri
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptBassaVah
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptCaucasianAlbanian
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptDuployan
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptElbasan
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptGrantha
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptKhojki
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptKhudawadi
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptLinearA
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptMahajani
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptManichaean
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptMendeKikakui
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptModi
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptMro
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptNabataean
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptOldNorthArabian
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptOldPermic
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptPahawhHmong
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptPalmyrene
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptPauCinHau
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptPsalterPahlavi
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptSiddham
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptTirhuta
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptWarangCiti
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptAhom
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptAnatolianHieroglyphs
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptHatran
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptMultani
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptOldHungarian
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptSignwriting
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptAdlam
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptBhaiksuki
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptMarchen
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptNewa
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptOsage
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptTangut
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptMasaramGondi
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptNushu
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptSoyombo
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptZanabazarSquare
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptDogra
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptGunjalaGondi
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptHanifiRohingya
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptMakasar
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptMedefaidrin
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptOldSogdian
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeScriptSogdian
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherUnicodeScript Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum UnicodeScript where
    fromEnum UnicodeScriptInvalidCode = -1
    fromEnum UnicodeScriptCommon = 0
    fromEnum UnicodeScriptInherited = 1
    fromEnum UnicodeScriptArabic = 2
    fromEnum UnicodeScriptArmenian = 3
    fromEnum UnicodeScriptBengali = 4
    fromEnum UnicodeScriptBopomofo = 5
    fromEnum UnicodeScriptCherokee = 6
    fromEnum UnicodeScriptCoptic = 7
    fromEnum UnicodeScriptCyrillic = 8
    fromEnum UnicodeScriptDeseret = 9
    fromEnum UnicodeScriptDevanagari = 10
    fromEnum UnicodeScriptEthiopic = 11
    fromEnum UnicodeScriptGeorgian = 12
    fromEnum UnicodeScriptGothic = 13
    fromEnum UnicodeScriptGreek = 14
    fromEnum UnicodeScriptGujarati = 15
    fromEnum UnicodeScriptGurmukhi = 16
    fromEnum UnicodeScriptHan = 17
    fromEnum UnicodeScriptHangul = 18
    fromEnum UnicodeScriptHebrew = 19
    fromEnum UnicodeScriptHiragana = 20
    fromEnum UnicodeScriptKannada = 21
    fromEnum UnicodeScriptKatakana = 22
    fromEnum UnicodeScriptKhmer = 23
    fromEnum UnicodeScriptLao = 24
    fromEnum UnicodeScriptLatin = 25
    fromEnum UnicodeScriptMalayalam = 26
    fromEnum UnicodeScriptMongolian = 27
    fromEnum UnicodeScriptMyanmar = 28
    fromEnum UnicodeScriptOgham = 29
    fromEnum UnicodeScriptOldItalic = 30
    fromEnum UnicodeScriptOriya = 31
    fromEnum UnicodeScriptRunic = 32
    fromEnum UnicodeScriptSinhala = 33
    fromEnum UnicodeScriptSyriac = 34
    fromEnum UnicodeScriptTamil = 35
    fromEnum UnicodeScriptTelugu = 36
    fromEnum UnicodeScriptThaana = 37
    fromEnum UnicodeScriptThai = 38
    fromEnum UnicodeScriptTibetan = 39
    fromEnum UnicodeScriptCanadianAboriginal = 40
    fromEnum UnicodeScriptYi = 41
    fromEnum UnicodeScriptTagalog = 42
    fromEnum UnicodeScriptHanunoo = 43
    fromEnum UnicodeScriptBuhid = 44
    fromEnum UnicodeScriptTagbanwa = 45
    fromEnum UnicodeScriptBraille = 46
    fromEnum UnicodeScriptCypriot = 47
    fromEnum UnicodeScriptLimbu = 48
    fromEnum UnicodeScriptOsmanya = 49
    fromEnum UnicodeScriptShavian = 50
    fromEnum UnicodeScriptLinearB = 51
    fromEnum UnicodeScriptTaiLe = 52
    fromEnum UnicodeScriptUgaritic = 53
    fromEnum UnicodeScriptNewTaiLue = 54
    fromEnum UnicodeScriptBuginese = 55
    fromEnum UnicodeScriptGlagolitic = 56
    fromEnum UnicodeScriptTifinagh = 57
    fromEnum UnicodeScriptSylotiNagri = 58
    fromEnum UnicodeScriptOldPersian = 59
    fromEnum UnicodeScriptKharoshthi = 60
    fromEnum UnicodeScriptUnknown = 61
    fromEnum UnicodeScriptBalinese = 62
    fromEnum UnicodeScriptCuneiform = 63
    fromEnum UnicodeScriptPhoenician = 64
    fromEnum UnicodeScriptPhagsPa = 65
    fromEnum UnicodeScriptNko = 66
    fromEnum UnicodeScriptKayahLi = 67
    fromEnum UnicodeScriptLepcha = 68
    fromEnum UnicodeScriptRejang = 69
    fromEnum UnicodeScriptSundanese = 70
    fromEnum UnicodeScriptSaurashtra = 71
    fromEnum UnicodeScriptCham = 72
    fromEnum UnicodeScriptOlChiki = 73
    fromEnum UnicodeScriptVai = 74
    fromEnum UnicodeScriptCarian = 75
    fromEnum UnicodeScriptLycian = 76
    fromEnum UnicodeScriptLydian = 77
    fromEnum UnicodeScriptAvestan = 78
    fromEnum UnicodeScriptBamum = 79
    fromEnum UnicodeScriptEgyptianHieroglyphs = 80
    fromEnum UnicodeScriptImperialAramaic = 81
    fromEnum UnicodeScriptInscriptionalPahlavi = 82
    fromEnum UnicodeScriptInscriptionalParthian = 83
    fromEnum UnicodeScriptJavanese = 84
    fromEnum UnicodeScriptKaithi = 85
    fromEnum UnicodeScriptLisu = 86
    fromEnum UnicodeScriptMeeteiMayek = 87
    fromEnum UnicodeScriptOldSouthArabian = 88
    fromEnum UnicodeScriptOldTurkic = 89
    fromEnum UnicodeScriptSamaritan = 90
    fromEnum UnicodeScriptTaiTham = 91
    fromEnum UnicodeScriptTaiViet = 92
    fromEnum UnicodeScriptBatak = 93
    fromEnum UnicodeScriptBrahmi = 94
    fromEnum UnicodeScriptMandaic = 95
    fromEnum UnicodeScriptChakma = 96
    fromEnum UnicodeScriptMeroiticCursive = 97
    fromEnum UnicodeScriptMeroiticHieroglyphs = 98
    fromEnum UnicodeScriptMiao = 99
    fromEnum UnicodeScriptSharada = 100
    fromEnum UnicodeScriptSoraSompeng = 101
    fromEnum UnicodeScriptTakri = 102
    fromEnum UnicodeScriptBassaVah = 103
    fromEnum UnicodeScriptCaucasianAlbanian = 104
    fromEnum UnicodeScriptDuployan = 105
    fromEnum UnicodeScriptElbasan = 106
    fromEnum UnicodeScriptGrantha = 107
    fromEnum UnicodeScriptKhojki = 108
    fromEnum UnicodeScriptKhudawadi = 109
    fromEnum UnicodeScriptLinearA = 110
    fromEnum UnicodeScriptMahajani = 111
    fromEnum UnicodeScriptManichaean = 112
    fromEnum UnicodeScriptMendeKikakui = 113
    fromEnum UnicodeScriptModi = 114
    fromEnum UnicodeScriptMro = 115
    fromEnum UnicodeScriptNabataean = 116
    fromEnum UnicodeScriptOldNorthArabian = 117
    fromEnum UnicodeScriptOldPermic = 118
    fromEnum UnicodeScriptPahawhHmong = 119
    fromEnum UnicodeScriptPalmyrene = 120
    fromEnum UnicodeScriptPauCinHau = 121
    fromEnum UnicodeScriptPsalterPahlavi = 122
    fromEnum UnicodeScriptSiddham = 123
    fromEnum UnicodeScriptTirhuta = 124
    fromEnum UnicodeScriptWarangCiti = 125
    fromEnum UnicodeScriptAhom = 126
    fromEnum UnicodeScriptAnatolianHieroglyphs = 127
    fromEnum UnicodeScriptHatran = 128
    fromEnum UnicodeScriptMultani = 129
    fromEnum UnicodeScriptOldHungarian = 130
    fromEnum UnicodeScriptSignwriting = 131
    fromEnum UnicodeScriptAdlam = 132
    fromEnum UnicodeScriptBhaiksuki = 133
    fromEnum UnicodeScriptMarchen = 134
    fromEnum UnicodeScriptNewa = 135
    fromEnum UnicodeScriptOsage = 136
    fromEnum UnicodeScriptTangut = 137
    fromEnum UnicodeScriptMasaramGondi = 138
    fromEnum UnicodeScriptNushu = 139
    fromEnum UnicodeScriptSoyombo = 140
    fromEnum UnicodeScriptZanabazarSquare = 141
    fromEnum UnicodeScriptDogra = 142
    fromEnum UnicodeScriptGunjalaGondi = 143
    fromEnum UnicodeScriptHanifiRohingya = 144
    fromEnum UnicodeScriptMakasar = 145
    fromEnum UnicodeScriptMedefaidrin = 146
    fromEnum UnicodeScriptOldSogdian = 147
    fromEnum UnicodeScriptSogdian = 148
    fromEnum (AnotherUnicodeScript k) = k

    toEnum -1 = UnicodeScriptInvalidCode
    toEnum 0 = UnicodeScriptCommon
    toEnum 1 = UnicodeScriptInherited
    toEnum 2 = UnicodeScriptArabic
    toEnum 3 = UnicodeScriptArmenian
    toEnum 4 = UnicodeScriptBengali
    toEnum 5 = UnicodeScriptBopomofo
    toEnum 6 = UnicodeScriptCherokee
    toEnum 7 = UnicodeScriptCoptic
    toEnum 8 = UnicodeScriptCyrillic
    toEnum 9 = UnicodeScriptDeseret
    toEnum 10 = UnicodeScriptDevanagari
    toEnum 11 = UnicodeScriptEthiopic
    toEnum 12 = UnicodeScriptGeorgian
    toEnum 13 = UnicodeScriptGothic
    toEnum 14 = UnicodeScriptGreek
    toEnum 15 = UnicodeScriptGujarati
    toEnum 16 = UnicodeScriptGurmukhi
    toEnum 17 = UnicodeScriptHan
    toEnum 18 = UnicodeScriptHangul
    toEnum 19 = UnicodeScriptHebrew
    toEnum 20 = UnicodeScriptHiragana
    toEnum 21 = UnicodeScriptKannada
    toEnum 22 = UnicodeScriptKatakana
    toEnum 23 = UnicodeScriptKhmer
    toEnum 24 = UnicodeScriptLao
    toEnum 25 = UnicodeScriptLatin
    toEnum 26 = UnicodeScriptMalayalam
    toEnum 27 = UnicodeScriptMongolian
    toEnum 28 = UnicodeScriptMyanmar
    toEnum 29 = UnicodeScriptOgham
    toEnum 30 = UnicodeScriptOldItalic
    toEnum 31 = UnicodeScriptOriya
    toEnum 32 = UnicodeScriptRunic
    toEnum 33 = UnicodeScriptSinhala
    toEnum 34 = UnicodeScriptSyriac
    toEnum 35 = UnicodeScriptTamil
    toEnum 36 = UnicodeScriptTelugu
    toEnum 37 = UnicodeScriptThaana
    toEnum 38 = UnicodeScriptThai
    toEnum 39 = UnicodeScriptTibetan
    toEnum 40 = UnicodeScriptCanadianAboriginal
    toEnum 41 = UnicodeScriptYi
    toEnum 42 = UnicodeScriptTagalog
    toEnum 43 = UnicodeScriptHanunoo
    toEnum 44 = UnicodeScriptBuhid
    toEnum 45 = UnicodeScriptTagbanwa
    toEnum 46 = UnicodeScriptBraille
    toEnum 47 = UnicodeScriptCypriot
    toEnum 48 = UnicodeScriptLimbu
    toEnum 49 = UnicodeScriptOsmanya
    toEnum 50 = UnicodeScriptShavian
    toEnum 51 = UnicodeScriptLinearB
    toEnum 52 = UnicodeScriptTaiLe
    toEnum 53 = UnicodeScriptUgaritic
    toEnum 54 = UnicodeScriptNewTaiLue
    toEnum 55 = UnicodeScriptBuginese
    toEnum 56 = UnicodeScriptGlagolitic
    toEnum 57 = UnicodeScriptTifinagh
    toEnum 58 = UnicodeScriptSylotiNagri
    toEnum 59 = UnicodeScriptOldPersian
    toEnum 60 = UnicodeScriptKharoshthi
    toEnum 61 = UnicodeScriptUnknown
    toEnum 62 = UnicodeScriptBalinese
    toEnum 63 = UnicodeScriptCuneiform
    toEnum 64 = UnicodeScriptPhoenician
    toEnum 65 = UnicodeScriptPhagsPa
    toEnum 66 = UnicodeScriptNko
    toEnum 67 = UnicodeScriptKayahLi
    toEnum 68 = UnicodeScriptLepcha
    toEnum 69 = UnicodeScriptRejang
    toEnum 70 = UnicodeScriptSundanese
    toEnum 71 = UnicodeScriptSaurashtra
    toEnum 72 = UnicodeScriptCham
    toEnum 73 = UnicodeScriptOlChiki
    toEnum 74 = UnicodeScriptVai
    toEnum 75 = UnicodeScriptCarian
    toEnum 76 = UnicodeScriptLycian
    toEnum 77 = UnicodeScriptLydian
    toEnum 78 = UnicodeScriptAvestan
    toEnum 79 = UnicodeScriptBamum
    toEnum 80 = UnicodeScriptEgyptianHieroglyphs
    toEnum 81 = UnicodeScriptImperialAramaic
    toEnum 82 = UnicodeScriptInscriptionalPahlavi
    toEnum 83 = UnicodeScriptInscriptionalParthian
    toEnum 84 = UnicodeScriptJavanese
    toEnum 85 = UnicodeScriptKaithi
    toEnum 86 = UnicodeScriptLisu
    toEnum 87 = UnicodeScriptMeeteiMayek
    toEnum 88 = UnicodeScriptOldSouthArabian
    toEnum 89 = UnicodeScriptOldTurkic
    toEnum 90 = UnicodeScriptSamaritan
    toEnum 91 = UnicodeScriptTaiTham
    toEnum 92 = UnicodeScriptTaiViet
    toEnum 93 = UnicodeScriptBatak
    toEnum 94 = UnicodeScriptBrahmi
    toEnum 95 = UnicodeScriptMandaic
    toEnum 96 = UnicodeScriptChakma
    toEnum 97 = UnicodeScriptMeroiticCursive
    toEnum 98 = UnicodeScriptMeroiticHieroglyphs
    toEnum 99 = UnicodeScriptMiao
    toEnum 100 = UnicodeScriptSharada
    toEnum 101 = UnicodeScriptSoraSompeng
    toEnum 102 = UnicodeScriptTakri
    toEnum 103 = UnicodeScriptBassaVah
    toEnum 104 = UnicodeScriptCaucasianAlbanian
    toEnum 105 = UnicodeScriptDuployan
    toEnum 106 = UnicodeScriptElbasan
    toEnum 107 = UnicodeScriptGrantha
    toEnum 108 = UnicodeScriptKhojki
    toEnum 109 = UnicodeScriptKhudawadi
    toEnum 110 = UnicodeScriptLinearA
    toEnum 111 = UnicodeScriptMahajani
    toEnum 112 = UnicodeScriptManichaean
    toEnum 113 = UnicodeScriptMendeKikakui
    toEnum 114 = UnicodeScriptModi
    toEnum 115 = UnicodeScriptMro
    toEnum 116 = UnicodeScriptNabataean
    toEnum 117 = UnicodeScriptOldNorthArabian
    toEnum 118 = UnicodeScriptOldPermic
    toEnum 119 = UnicodeScriptPahawhHmong
    toEnum 120 = UnicodeScriptPalmyrene
    toEnum 121 = UnicodeScriptPauCinHau
    toEnum 122 = UnicodeScriptPsalterPahlavi
    toEnum 123 = UnicodeScriptSiddham
    toEnum 124 = UnicodeScriptTirhuta
    toEnum 125 = UnicodeScriptWarangCiti
    toEnum 126 = UnicodeScriptAhom
    toEnum 127 = UnicodeScriptAnatolianHieroglyphs
    toEnum 128 = UnicodeScriptHatran
    toEnum 129 = UnicodeScriptMultani
    toEnum 130 = UnicodeScriptOldHungarian
    toEnum 131 = UnicodeScriptSignwriting
    toEnum 132 = UnicodeScriptAdlam
    toEnum 133 = UnicodeScriptBhaiksuki
    toEnum 134 = UnicodeScriptMarchen
    toEnum 135 = UnicodeScriptNewa
    toEnum 136 = UnicodeScriptOsage
    toEnum 137 = UnicodeScriptTangut
    toEnum 138 = UnicodeScriptMasaramGondi
    toEnum 139 = UnicodeScriptNushu
    toEnum 140 = UnicodeScriptSoyombo
    toEnum 141 = UnicodeScriptZanabazarSquare
    toEnum 142 = UnicodeScriptDogra
    toEnum 143 = UnicodeScriptGunjalaGondi
    toEnum 144 = UnicodeScriptHanifiRohingya
    toEnum 145 = UnicodeScriptMakasar
    toEnum 146 = UnicodeScriptMedefaidrin
    toEnum 147 = UnicodeScriptOldSogdian
    toEnum 148 = UnicodeScriptSogdian
    toEnum k = AnotherUnicodeScript k

instance P.Ord UnicodeScript where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

foreign import ccall "g_unicode_script_get_type" c_g_unicode_script_get_type ::
    IO GType

instance BoxedEnum UnicodeScript where
    boxedEnumType _ = c_g_unicode_script_get_type

-- Enum UnicodeBreakType
{- |
/No description available in the introspection data./
-}
data UnicodeBreakType =
      UnicodeBreakTypeMandatory
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeCarriageReturn
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeLineFeed
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeCombiningMark
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeSurrogate
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeZeroWidthSpace
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeInseparable
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeNonBreakingGlue
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeContingent
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeSpace
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeAfter
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeBefore
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeBeforeAndAfter
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeHyphen
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeNonStarter
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeOpenPunctuation
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeClosePunctuation
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeQuotation
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeExclamation
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeIdeographic
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeNumeric
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeInfixSeparator
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeSymbol
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeAlphabetic
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypePrefix
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypePostfix
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeComplexContext
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeAmbiguous
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeUnknown
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeNextLine
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeWordJoiner
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeHangulLJamo
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeHangulVJamo
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeHangulTJamo
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeHangulLvSyllable
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeHangulLvtSyllable
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeCloseParanthesis
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeConditionalJapaneseStarter
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeHebrewLetter
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeRegionalIndicator
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeEmojiBase
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeEmojiModifier
    {- ^
    /No description available in the introspection data./
    -}
    | UnicodeBreakTypeZeroWidthJoiner
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherUnicodeBreakType Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum UnicodeBreakType where
    fromEnum UnicodeBreakTypeMandatory = 0
    fromEnum UnicodeBreakTypeCarriageReturn = 1
    fromEnum UnicodeBreakTypeLineFeed = 2
    fromEnum UnicodeBreakTypeCombiningMark = 3
    fromEnum UnicodeBreakTypeSurrogate = 4
    fromEnum UnicodeBreakTypeZeroWidthSpace = 5
    fromEnum UnicodeBreakTypeInseparable = 6
    fromEnum UnicodeBreakTypeNonBreakingGlue = 7
    fromEnum UnicodeBreakTypeContingent = 8
    fromEnum UnicodeBreakTypeSpace = 9
    fromEnum UnicodeBreakTypeAfter = 10
    fromEnum UnicodeBreakTypeBefore = 11
    fromEnum UnicodeBreakTypeBeforeAndAfter = 12
    fromEnum UnicodeBreakTypeHyphen = 13
    fromEnum UnicodeBreakTypeNonStarter = 14
    fromEnum UnicodeBreakTypeOpenPunctuation = 15
    fromEnum UnicodeBreakTypeClosePunctuation = 16
    fromEnum UnicodeBreakTypeQuotation = 17
    fromEnum UnicodeBreakTypeExclamation = 18
    fromEnum UnicodeBreakTypeIdeographic = 19
    fromEnum UnicodeBreakTypeNumeric = 20
    fromEnum UnicodeBreakTypeInfixSeparator = 21
    fromEnum UnicodeBreakTypeSymbol = 22
    fromEnum UnicodeBreakTypeAlphabetic = 23
    fromEnum UnicodeBreakTypePrefix = 24
    fromEnum UnicodeBreakTypePostfix = 25
    fromEnum UnicodeBreakTypeComplexContext = 26
    fromEnum UnicodeBreakTypeAmbiguous = 27
    fromEnum UnicodeBreakTypeUnknown = 28
    fromEnum UnicodeBreakTypeNextLine = 29
    fromEnum UnicodeBreakTypeWordJoiner = 30
    fromEnum UnicodeBreakTypeHangulLJamo = 31
    fromEnum UnicodeBreakTypeHangulVJamo = 32
    fromEnum UnicodeBreakTypeHangulTJamo = 33
    fromEnum UnicodeBreakTypeHangulLvSyllable = 34
    fromEnum UnicodeBreakTypeHangulLvtSyllable = 35
    fromEnum UnicodeBreakTypeCloseParanthesis = 36
    fromEnum UnicodeBreakTypeConditionalJapaneseStarter = 37
    fromEnum UnicodeBreakTypeHebrewLetter = 38
    fromEnum UnicodeBreakTypeRegionalIndicator = 39
    fromEnum UnicodeBreakTypeEmojiBase = 40
    fromEnum UnicodeBreakTypeEmojiModifier = 41
    fromEnum UnicodeBreakTypeZeroWidthJoiner = 42
    fromEnum (AnotherUnicodeBreakType k) = k

    toEnum 0 = UnicodeBreakTypeMandatory
    toEnum 1 = UnicodeBreakTypeCarriageReturn
    toEnum 2 = UnicodeBreakTypeLineFeed
    toEnum 3 = UnicodeBreakTypeCombiningMark
    toEnum 4 = UnicodeBreakTypeSurrogate
    toEnum 5 = UnicodeBreakTypeZeroWidthSpace
    toEnum 6 = UnicodeBreakTypeInseparable
    toEnum 7 = UnicodeBreakTypeNonBreakingGlue
    toEnum 8 = UnicodeBreakTypeContingent
    toEnum 9 = UnicodeBreakTypeSpace
    toEnum 10 = UnicodeBreakTypeAfter
    toEnum 11 = UnicodeBreakTypeBefore
    toEnum 12 = UnicodeBreakTypeBeforeAndAfter
    toEnum 13 = UnicodeBreakTypeHyphen
    toEnum 14 = UnicodeBreakTypeNonStarter
    toEnum 15 = UnicodeBreakTypeOpenPunctuation
    toEnum 16 = UnicodeBreakTypeClosePunctuation
    toEnum 17 = UnicodeBreakTypeQuotation
    toEnum 18 = UnicodeBreakTypeExclamation
    toEnum 19 = UnicodeBreakTypeIdeographic
    toEnum 20 = UnicodeBreakTypeNumeric
    toEnum 21 = UnicodeBreakTypeInfixSeparator
    toEnum 22 = UnicodeBreakTypeSymbol
    toEnum 23 = UnicodeBreakTypeAlphabetic
    toEnum 24 = UnicodeBreakTypePrefix
    toEnum 25 = UnicodeBreakTypePostfix
    toEnum 26 = UnicodeBreakTypeComplexContext
    toEnum 27 = UnicodeBreakTypeAmbiguous
    toEnum 28 = UnicodeBreakTypeUnknown
    toEnum 29 = UnicodeBreakTypeNextLine
    toEnum 30 = UnicodeBreakTypeWordJoiner
    toEnum 31 = UnicodeBreakTypeHangulLJamo
    toEnum 32 = UnicodeBreakTypeHangulVJamo
    toEnum 33 = UnicodeBreakTypeHangulTJamo
    toEnum 34 = UnicodeBreakTypeHangulLvSyllable
    toEnum 35 = UnicodeBreakTypeHangulLvtSyllable
    toEnum 36 = UnicodeBreakTypeCloseParanthesis
    toEnum 37 = UnicodeBreakTypeConditionalJapaneseStarter
    toEnum 38 = UnicodeBreakTypeHebrewLetter
    toEnum 39 = UnicodeBreakTypeRegionalIndicator
    toEnum 40 = UnicodeBreakTypeEmojiBase
    toEnum 41 = UnicodeBreakTypeEmojiModifier
    toEnum 42 = UnicodeBreakTypeZeroWidthJoiner
    toEnum k = AnotherUnicodeBreakType k

instance P.Ord UnicodeBreakType where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

foreign import ccall "g_unicode_break_type_get_type" c_g_unicode_break_type_get_type ::
    IO GType

instance BoxedEnum UnicodeBreakType where
    boxedEnumType _ = c_g_unicode_break_type_get_type

-- Enum NormalizeMode
{- |
/No description available in the introspection data./
-}
data NormalizeMode =
      NormalizeModeDefault
    {- ^
    /No description available in the introspection data./
    -}
    | NormalizeModeNfd
    {- ^
    /No description available in the introspection data./
    -}
    | NormalizeModeDefaultCompose
    {- ^
    /No description available in the introspection data./
    -}
    | NormalizeModeNfc
    {- ^
    /No description available in the introspection data./
    -}
    | NormalizeModeAll
    {- ^
    /No description available in the introspection data./
    -}
    | NormalizeModeNfkd
    {- ^
    /No description available in the introspection data./
    -}
    | NormalizeModeAllCompose
    {- ^
    /No description available in the introspection data./
    -}
    | NormalizeModeNfkc
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherNormalizeMode Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum NormalizeMode where
    fromEnum NormalizeModeDefault = 0
    fromEnum NormalizeModeNfd = 0
    fromEnum NormalizeModeDefaultCompose = 1
    fromEnum NormalizeModeNfc = 1
    fromEnum NormalizeModeAll = 2
    fromEnum NormalizeModeNfkd = 2
    fromEnum NormalizeModeAllCompose = 3
    fromEnum NormalizeModeNfkc = 3
    fromEnum (AnotherNormalizeMode k) = k

    toEnum 0 = NormalizeModeDefault
    toEnum 0 = NormalizeModeNfd
    toEnum 1 = NormalizeModeDefaultCompose
    toEnum 1 = NormalizeModeNfc
    toEnum 2 = NormalizeModeAll
    toEnum 2 = NormalizeModeNfkd
    toEnum 3 = NormalizeModeAllCompose
    toEnum 3 = NormalizeModeNfkc
    toEnum k = AnotherNormalizeMode k

instance P.Ord NormalizeMode where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

foreign import ccall "g_normalize_mode_get_type" c_g_normalize_mode_get_type ::
    IO GType

instance BoxedEnum NormalizeMode where
    boxedEnumType _ = c_g_normalize_mode_get_type