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

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

    module GI.Cairo.Enums
        (

     -- * Enumerations

    -- ** Antialias #enum:Antialias#

        Antialias(..)                           ,

    -- ** Content #enum:Content#

        Content(..)                             ,

    -- ** DeviceType #enum:DeviceType#

        DeviceType(..)                          ,

    -- ** Extend #enum:Extend#

        Extend(..)                              ,

    -- ** FillRule #enum:FillRule#

        FillRule(..)                            ,

    -- ** Filter #enum:Filter#

        Filter(..)                              ,

    -- ** FontSlant #enum:FontSlant#

        FontSlant(..)                           ,

    -- ** FontType #enum:FontType#

        FontType(..)                            ,

    -- ** FontWeight #enum:FontWeight#

        FontWeight(..)                          ,

    -- ** Format #enum:Format#

        Format(..)                              ,

    -- ** HintMetrics #enum:HintMetrics#

        HintMetrics(..)                         ,

    -- ** HintStyle #enum:HintStyle#

        HintStyle(..)                           ,

    -- ** LineCap #enum:LineCap#

        LineCap(..)                             ,

    -- ** LineJoin #enum:LineJoin#

        LineJoin(..)                            ,

    -- ** Operator #enum:Operator#

        Operator(..)                            ,

    -- ** PathDataType #enum:PathDataType#

        PathDataType(..)                        ,

    -- ** PatternType #enum:PatternType#

        PatternType(..)                         ,

    -- ** RegionOverlap #enum:RegionOverlap#

        RegionOverlap(..)                       ,

    -- ** Status #enum:Status#

        Status(..)                              ,

    -- ** SubpixelOrder #enum:SubpixelOrder#

        SubpixelOrder(..)                       ,

    -- ** SurfaceType #enum:SurfaceType#

        SurfaceType(..)                         ,

    -- ** TextClusterFlags #enum:TextClusterFlags#

        TextClusterFlags(..)                    ,

        ) where

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

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

    -- Enum TextClusterFlags
    -- | /No description available in the introspection data./
    data TextClusterFlags =
          TextClusterFlagsBackward
        -- ^ /No description available in the introspection data./
        | AnotherTextClusterFlags Int
        -- ^ Catch-all for unknown values
        deriving (Int -> TextClusterFlags -> ShowS
    [TextClusterFlags] -> ShowS
    TextClusterFlags -> String
    (Int -> TextClusterFlags -> ShowS)
    -> (TextClusterFlags -> String)
    -> ([TextClusterFlags] -> ShowS)
    -> Show TextClusterFlags
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> TextClusterFlags -> ShowS
    showsPrec :: Int -> TextClusterFlags -> ShowS
    $cshow :: TextClusterFlags -> String
    show :: TextClusterFlags -> String
    $cshowList :: [TextClusterFlags] -> ShowS
    showList :: [TextClusterFlags] -> ShowS
    Show, TextClusterFlags -> TextClusterFlags -> Bool
    (TextClusterFlags -> TextClusterFlags -> Bool)
    -> (TextClusterFlags -> TextClusterFlags -> Bool)
    -> Eq TextClusterFlags
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: TextClusterFlags -> TextClusterFlags -> Bool
    == :: TextClusterFlags -> TextClusterFlags -> Bool
    $c/= :: TextClusterFlags -> TextClusterFlags -> Bool
    /= :: TextClusterFlags -> TextClusterFlags -> Bool
    Eq)

    instance P.Enum TextClusterFlags where
        fromEnum :: TextClusterFlags -> Int
    fromEnum TextClusterFlags
    TextClusterFlagsBackward = Int
    1
        fromEnum (AnotherTextClusterFlags Int
    k) = Int
    k

        toEnum :: Int -> TextClusterFlags
    toEnum Int
    1 = TextClusterFlags
    TextClusterFlagsBackward
        toEnum Int
    k = Int -> TextClusterFlags
    AnotherTextClusterFlags Int
    k

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

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

    foreign import ccall "cairo_gobject_text_cluster_flags_get_type" c_cairo_gobject_text_cluster_flags_get_type ::
        IO GType

    instance B.Types.TypedObject TextClusterFlags where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_text_cluster_flags_get_type

    instance B.Types.BoxedEnum TextClusterFlags

    -- Enum SurfaceType
    -- | /No description available in the introspection data./
    data SurfaceType =
          SurfaceTypeImage
        -- ^ /No description available in the introspection data./
        | SurfaceTypePdf
        -- ^ /No description available in the introspection data./
        | SurfaceTypePs
        -- ^ /No description available in the introspection data./
        | SurfaceTypeXlib
        -- ^ /No description available in the introspection data./
        | SurfaceTypeXcb
        -- ^ /No description available in the introspection data./
        | SurfaceTypeGlitz
        -- ^ /No description available in the introspection data./
        | SurfaceTypeQuartz
        -- ^ /No description available in the introspection data./
        | SurfaceTypeWin32
        -- ^ /No description available in the introspection data./
        | SurfaceTypeBeos
        -- ^ /No description available in the introspection data./
        | SurfaceTypeDirectfb
        -- ^ /No description available in the introspection data./
        | SurfaceTypeSvg
        -- ^ /No description available in the introspection data./
        | SurfaceTypeOs2
        -- ^ /No description available in the introspection data./
        | SurfaceTypeWin32Printing
        -- ^ /No description available in the introspection data./
        | SurfaceTypeQuartzImage
        -- ^ /No description available in the introspection data./
        | SurfaceTypeScript
        -- ^ /No description available in the introspection data./
        | SurfaceTypeQt
        -- ^ /No description available in the introspection data./
        | SurfaceTypeRecording
        -- ^ /No description available in the introspection data./
        | SurfaceTypeVg
        -- ^ /No description available in the introspection data./
        | SurfaceTypeGl
        -- ^ /No description available in the introspection data./
        | SurfaceTypeDrm
        -- ^ /No description available in the introspection data./
        | SurfaceTypeTee
        -- ^ /No description available in the introspection data./
        | SurfaceTypeXml
        -- ^ /No description available in the introspection data./
        | SurfaceTypeSkia
        -- ^ /No description available in the introspection data./
        | SurfaceTypeSubsurface
        -- ^ /No description available in the introspection data./
        | SurfaceTypeCogl
        -- ^ /No description available in the introspection data./
        | AnotherSurfaceType Int
        -- ^ Catch-all for unknown values
        deriving (Int -> SurfaceType -> ShowS
    [SurfaceType] -> ShowS
    SurfaceType -> String
    (Int -> SurfaceType -> ShowS)
    -> (SurfaceType -> String)
    -> ([SurfaceType] -> ShowS)
    -> Show SurfaceType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> SurfaceType -> ShowS
    showsPrec :: Int -> SurfaceType -> ShowS
    $cshow :: SurfaceType -> String
    show :: SurfaceType -> String
    $cshowList :: [SurfaceType] -> ShowS
    showList :: [SurfaceType] -> ShowS
    Show, SurfaceType -> SurfaceType -> Bool
    (SurfaceType -> SurfaceType -> Bool)
    -> (SurfaceType -> SurfaceType -> Bool) -> Eq SurfaceType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: SurfaceType -> SurfaceType -> Bool
    == :: SurfaceType -> SurfaceType -> Bool
    $c/= :: SurfaceType -> SurfaceType -> Bool
    /= :: SurfaceType -> SurfaceType -> Bool
    Eq)

    instance P.Enum SurfaceType where
        fromEnum :: SurfaceType -> Int
    fromEnum SurfaceType
    SurfaceTypeImage = Int
    0
        fromEnum SurfaceType
    SurfaceTypePdf = Int
    1
        fromEnum SurfaceType
    SurfaceTypePs = Int
    2
        fromEnum SurfaceType
    SurfaceTypeXlib = Int
    3
        fromEnum SurfaceType
    SurfaceTypeXcb = Int
    4
        fromEnum SurfaceType
    SurfaceTypeGlitz = Int
    5
        fromEnum SurfaceType
    SurfaceTypeQuartz = Int
    6
        fromEnum SurfaceType
    SurfaceTypeWin32 = Int
    7
        fromEnum SurfaceType
    SurfaceTypeBeos = Int
    8
        fromEnum SurfaceType
    SurfaceTypeDirectfb = Int
    9
        fromEnum SurfaceType
    SurfaceTypeSvg = Int
    10
        fromEnum SurfaceType
    SurfaceTypeOs2 = Int
    11
        fromEnum SurfaceType
    SurfaceTypeWin32Printing = Int
    12
        fromEnum SurfaceType
    SurfaceTypeQuartzImage = Int
    13
        fromEnum SurfaceType
    SurfaceTypeScript = Int
    14
        fromEnum SurfaceType
    SurfaceTypeQt = Int
    15
        fromEnum SurfaceType
    SurfaceTypeRecording = Int
    16
        fromEnum SurfaceType
    SurfaceTypeVg = Int
    17
        fromEnum SurfaceType
    SurfaceTypeGl = Int
    18
        fromEnum SurfaceType
    SurfaceTypeDrm = Int
    19
        fromEnum SurfaceType
    SurfaceTypeTee = Int
    20
        fromEnum SurfaceType
    SurfaceTypeXml = Int
    21
        fromEnum SurfaceType
    SurfaceTypeSkia = Int
    22
        fromEnum SurfaceType
    SurfaceTypeSubsurface = Int
    23
        fromEnum SurfaceType
    SurfaceTypeCogl = Int
    24
        fromEnum (AnotherSurfaceType Int
    k) = Int
    k

        toEnum :: Int -> SurfaceType
    toEnum Int
    0 = SurfaceType
    SurfaceTypeImage
        toEnum Int
    1 = SurfaceType
    SurfaceTypePdf
        toEnum Int
    2 = SurfaceType
    SurfaceTypePs
        toEnum Int
    3 = SurfaceType
    SurfaceTypeXlib
        toEnum Int
    4 = SurfaceType
    SurfaceTypeXcb
        toEnum Int
    5 = SurfaceType
    SurfaceTypeGlitz
        toEnum Int
    6 = SurfaceType
    SurfaceTypeQuartz
        toEnum Int
    7 = SurfaceType
    SurfaceTypeWin32
        toEnum Int
    8 = SurfaceType
    SurfaceTypeBeos
        toEnum Int
    9 = SurfaceType
    SurfaceTypeDirectfb
        toEnum Int
    10 = SurfaceType
    SurfaceTypeSvg
        toEnum Int
    11 = SurfaceType
    SurfaceTypeOs2
        toEnum Int
    12 = SurfaceType
    SurfaceTypeWin32Printing
        toEnum Int
    13 = SurfaceType
    SurfaceTypeQuartzImage
        toEnum Int
    14 = SurfaceType
    SurfaceTypeScript
        toEnum Int
    15 = SurfaceType
    SurfaceTypeQt
        toEnum Int
    16 = SurfaceType
    SurfaceTypeRecording
        toEnum Int
    17 = SurfaceType
    SurfaceTypeVg
        toEnum Int
    18 = SurfaceType
    SurfaceTypeGl
        toEnum Int
    19 = SurfaceType
    SurfaceTypeDrm
        toEnum Int
    20 = SurfaceType
    SurfaceTypeTee
        toEnum Int
    21 = SurfaceType
    SurfaceTypeXml
        toEnum Int
    22 = SurfaceType
    SurfaceTypeSkia
        toEnum Int
    23 = SurfaceType
    SurfaceTypeSubsurface
        toEnum Int
    24 = SurfaceType
    SurfaceTypeCogl
        toEnum Int
    k = Int -> SurfaceType
    AnotherSurfaceType Int
    k

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

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

    foreign import ccall "cairo_gobject_surface_type_get_type" c_cairo_gobject_surface_type_get_type ::
        IO GType

    instance B.Types.TypedObject SurfaceType where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_surface_type_get_type

    instance B.Types.BoxedEnum SurfaceType

    -- Enum SubpixelOrder
    -- | /No description available in the introspection data./
    data SubpixelOrder =
          SubpixelOrderDefault
        -- ^ /No description available in the introspection data./
        | SubpixelOrderRgb
        -- ^ /No description available in the introspection data./
        | SubpixelOrderBgr
        -- ^ /No description available in the introspection data./
        | SubpixelOrderVrgb
        -- ^ /No description available in the introspection data./
        | SubpixelOrderVbgr
        -- ^ /No description available in the introspection data./
        | AnotherSubpixelOrder Int
        -- ^ Catch-all for unknown values
        deriving (Int -> SubpixelOrder -> ShowS
    [SubpixelOrder] -> ShowS
    SubpixelOrder -> String
    (Int -> SubpixelOrder -> ShowS)
    -> (SubpixelOrder -> String)
    -> ([SubpixelOrder] -> ShowS)
    -> Show SubpixelOrder
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> SubpixelOrder -> ShowS
    showsPrec :: Int -> SubpixelOrder -> ShowS
    $cshow :: SubpixelOrder -> String
    show :: SubpixelOrder -> String
    $cshowList :: [SubpixelOrder] -> ShowS
    showList :: [SubpixelOrder] -> ShowS
    Show, SubpixelOrder -> SubpixelOrder -> Bool
    (SubpixelOrder -> SubpixelOrder -> Bool)
    -> (SubpixelOrder -> SubpixelOrder -> Bool) -> Eq SubpixelOrder
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: SubpixelOrder -> SubpixelOrder -> Bool
    == :: SubpixelOrder -> SubpixelOrder -> Bool
    $c/= :: SubpixelOrder -> SubpixelOrder -> Bool
    /= :: SubpixelOrder -> SubpixelOrder -> Bool
    Eq)

    instance P.Enum SubpixelOrder where
        fromEnum :: SubpixelOrder -> Int
    fromEnum SubpixelOrder
    SubpixelOrderDefault = Int
    0
        fromEnum SubpixelOrder
    SubpixelOrderRgb = Int
    1
        fromEnum SubpixelOrder
    SubpixelOrderBgr = Int
    2
        fromEnum SubpixelOrder
    SubpixelOrderVrgb = Int
    3
        fromEnum SubpixelOrder
    SubpixelOrderVbgr = Int
    4
        fromEnum (AnotherSubpixelOrder Int
    k) = Int
    k

        toEnum :: Int -> SubpixelOrder
    toEnum Int
    0 = SubpixelOrder
    SubpixelOrderDefault
        toEnum Int
    1 = SubpixelOrder
    SubpixelOrderRgb
        toEnum Int
    2 = SubpixelOrder
    SubpixelOrderBgr
        toEnum Int
    3 = SubpixelOrder
    SubpixelOrderVrgb
        toEnum Int
    4 = SubpixelOrder
    SubpixelOrderVbgr
        toEnum Int
    k = Int -> SubpixelOrder
    AnotherSubpixelOrder Int
    k

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

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

    foreign import ccall "cairo_gobject_subpixel_order_get_type" c_cairo_gobject_subpixel_order_get_type ::
        IO GType

    instance B.Types.TypedObject SubpixelOrder where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_subpixel_order_get_type

    instance B.Types.BoxedEnum SubpixelOrder

    -- Enum Status
    -- | /No description available in the introspection data./
    data Status =
          StatusSuccess
        -- ^ /No description available in the introspection data./
        | StatusNoMemory
        -- ^ /No description available in the introspection data./
        | StatusInvalidRestore
        -- ^ /No description available in the introspection data./
        | StatusInvalidPopGroup
        -- ^ /No description available in the introspection data./
        | StatusNoCurrentPoint
        -- ^ /No description available in the introspection data./
        | StatusInvalidMatrix
        -- ^ /No description available in the introspection data./
        | StatusInvalidStatus
        -- ^ /No description available in the introspection data./
        | StatusNullPointer
        -- ^ /No description available in the introspection data./
        | StatusInvalidString
        -- ^ /No description available in the introspection data./
        | StatusInvalidPathData
        -- ^ /No description available in the introspection data./
        | StatusReadError
        -- ^ /No description available in the introspection data./
        | StatusWriteError
        -- ^ /No description available in the introspection data./
        | StatusSurfaceFinished
        -- ^ /No description available in the introspection data./
        | StatusSurfaceTypeMismatch
        -- ^ /No description available in the introspection data./
        | StatusPatternTypeMismatch
        -- ^ /No description available in the introspection data./
        | StatusInvalidContent
        -- ^ /No description available in the introspection data./
        | StatusInvalidFormat
        -- ^ /No description available in the introspection data./
        | StatusInvalidVisual
        -- ^ /No description available in the introspection data./
        | StatusFileNotFound
        -- ^ /No description available in the introspection data./
        | StatusInvalidDash
        -- ^ /No description available in the introspection data./
        | StatusInvalidDscComment
        -- ^ /No description available in the introspection data./
        | StatusInvalidIndex
        -- ^ /No description available in the introspection data./
        | StatusClipNotRepresentable
        -- ^ /No description available in the introspection data./
        | StatusTempFileError
        -- ^ /No description available in the introspection data./
        | StatusInvalidStride
        -- ^ /No description available in the introspection data./
        | StatusFontTypeMismatch
        -- ^ /No description available in the introspection data./
        | StatusUserFontImmutable
        -- ^ /No description available in the introspection data./
        | StatusUserFontError
        -- ^ /No description available in the introspection data./
        | StatusNegativeCount
        -- ^ /No description available in the introspection data./
        | StatusInvalidClusters
        -- ^ /No description available in the introspection data./
        | StatusInvalidSlant
        -- ^ /No description available in the introspection data./
        | StatusInvalidWeight
        -- ^ /No description available in the introspection data./
        | StatusInvalidSize
        -- ^ /No description available in the introspection data./
        | StatusUserFontNotImplemented
        -- ^ /No description available in the introspection data./
        | StatusDeviceTypeMismatch
        -- ^ /No description available in the introspection data./
        | StatusDeviceError
        -- ^ /No description available in the introspection data./
        | StatusInvalidMeshConstruction
        -- ^ /No description available in the introspection data./
        | StatusDeviceFinished
        -- ^ /No description available in the introspection data./
        | StatusJbig2GlobalMissing
        -- ^ /No description available in the introspection data./
        | AnotherStatus Int
        -- ^ Catch-all for unknown values
        deriving (Int -> Status -> ShowS
    [Status] -> ShowS
    Status -> String
    (Int -> Status -> ShowS)
    -> (Status -> String) -> ([Status] -> ShowS) -> Show Status
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> Status -> ShowS
    showsPrec :: Int -> Status -> ShowS
    $cshow :: Status -> String
    show :: Status -> String
    $cshowList :: [Status] -> ShowS
    showList :: [Status] -> ShowS
    Show, Status -> Status -> Bool
    (Status -> Status -> Bool)
    -> (Status -> Status -> Bool) -> Eq Status
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: Status -> Status -> Bool
    == :: Status -> Status -> Bool
    $c/= :: Status -> Status -> Bool
    /= :: Status -> Status -> Bool
    Eq)

    instance P.Enum Status where
        fromEnum :: Status -> Int
    fromEnum Status
    StatusSuccess = Int
    0
        fromEnum Status
    StatusNoMemory = Int
    1
        fromEnum Status
    StatusInvalidRestore = Int
    2
        fromEnum Status
    StatusInvalidPopGroup = Int
    3
        fromEnum Status
    StatusNoCurrentPoint = Int
    4
        fromEnum Status
    StatusInvalidMatrix = Int
    5
        fromEnum Status
    StatusInvalidStatus = Int
    6
        fromEnum Status
    StatusNullPointer = Int
    7
        fromEnum Status
    StatusInvalidString = Int
    8
        fromEnum Status
    StatusInvalidPathData = Int
    9
        fromEnum Status
    StatusReadError = Int
    10
        fromEnum Status
    StatusWriteError = Int
    11
        fromEnum Status
    StatusSurfaceFinished = Int
    12
        fromEnum Status
    StatusSurfaceTypeMismatch = Int
    13
        fromEnum Status
    StatusPatternTypeMismatch = Int
    14
        fromEnum Status
    StatusInvalidContent = Int
    15
        fromEnum Status
    StatusInvalidFormat = Int
    16
        fromEnum Status
    StatusInvalidVisual = Int
    17
        fromEnum Status
    StatusFileNotFound = Int
    18
        fromEnum Status
    StatusInvalidDash = Int
    19
        fromEnum Status
    StatusInvalidDscComment = Int
    20
        fromEnum Status
    StatusInvalidIndex = Int
    21
        fromEnum Status
    StatusClipNotRepresentable = Int
    22
        fromEnum Status
    StatusTempFileError = Int
    23
        fromEnum Status
    StatusInvalidStride = Int
    24
        fromEnum Status
    StatusFontTypeMismatch = Int
    25
        fromEnum Status
    StatusUserFontImmutable = Int
    26
        fromEnum Status
    StatusUserFontError = Int
    27
        fromEnum Status
    StatusNegativeCount = Int
    28
        fromEnum Status
    StatusInvalidClusters = Int
    29
        fromEnum Status
    StatusInvalidSlant = Int
    30
        fromEnum Status
    StatusInvalidWeight = Int
    31
        fromEnum Status
    StatusInvalidSize = Int
    32
        fromEnum Status
    StatusUserFontNotImplemented = Int
    33
        fromEnum Status
    StatusDeviceTypeMismatch = Int
    34
        fromEnum Status
    StatusDeviceError = Int
    35
        fromEnum Status
    StatusInvalidMeshConstruction = Int
    36
        fromEnum Status
    StatusDeviceFinished = Int
    37
        fromEnum Status
    StatusJbig2GlobalMissing = Int
    38
        fromEnum (AnotherStatus Int
    k) = Int
    k

        toEnum :: Int -> Status
    toEnum Int
    0 = Status
    StatusSuccess
        toEnum Int
    1 = Status
    StatusNoMemory
        toEnum Int
    2 = Status
    StatusInvalidRestore
        toEnum Int
    3 = Status
    StatusInvalidPopGroup
        toEnum Int
    4 = Status
    StatusNoCurrentPoint
        toEnum Int
    5 = Status
    StatusInvalidMatrix
        toEnum Int
    6 = Status
    StatusInvalidStatus
        toEnum Int
    7 = Status
    StatusNullPointer
        toEnum Int
    8 = Status
    StatusInvalidString
        toEnum Int
    9 = Status
    StatusInvalidPathData
        toEnum Int
    10 = Status
    StatusReadError
        toEnum Int
    11 = Status
    StatusWriteError
        toEnum Int
    12 = Status
    StatusSurfaceFinished
        toEnum Int
    13 = Status
    StatusSurfaceTypeMismatch
        toEnum Int
    14 = Status
    StatusPatternTypeMismatch
        toEnum Int
    15 = Status
    StatusInvalidContent
        toEnum Int
    16 = Status
    StatusInvalidFormat
        toEnum Int
    17 = Status
    StatusInvalidVisual
        toEnum Int
    18 = Status
    StatusFileNotFound
        toEnum Int
    19 = Status
    StatusInvalidDash
        toEnum Int
    20 = Status
    StatusInvalidDscComment
        toEnum Int
    21 = Status
    StatusInvalidIndex
        toEnum Int
    22 = Status
    StatusClipNotRepresentable
        toEnum Int
    23 = Status
    StatusTempFileError
        toEnum Int
    24 = Status
    StatusInvalidStride
        toEnum Int
    25 = Status
    StatusFontTypeMismatch
        toEnum Int
    26 = Status
    StatusUserFontImmutable
        toEnum Int
    27 = Status
    StatusUserFontError
        toEnum Int
    28 = Status
    StatusNegativeCount
        toEnum Int
    29 = Status
    StatusInvalidClusters
        toEnum Int
    30 = Status
    StatusInvalidSlant
        toEnum Int
    31 = Status
    StatusInvalidWeight
        toEnum Int
    32 = Status
    StatusInvalidSize
        toEnum Int
    33 = Status
    StatusUserFontNotImplemented
        toEnum Int
    34 = Status
    StatusDeviceTypeMismatch
        toEnum Int
    35 = Status
    StatusDeviceError
        toEnum Int
    36 = Status
    StatusInvalidMeshConstruction
        toEnum Int
    37 = Status
    StatusDeviceFinished
        toEnum Int
    38 = Status
    StatusJbig2GlobalMissing
        toEnum Int
    k = Int -> Status
    AnotherStatus Int
    k

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

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

    foreign import ccall "cairo_gobject_status_get_type" c_cairo_gobject_status_get_type ::
        IO GType

    instance B.Types.TypedObject Status where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_status_get_type

    instance B.Types.BoxedEnum Status

    -- Enum RegionOverlap
    -- | /No description available in the introspection data./
    data RegionOverlap =
          RegionOverlapIn
        -- ^ /No description available in the introspection data./
        | RegionOverlapOut
        -- ^ /No description available in the introspection data./
        | RegionOverlapPart
        -- ^ /No description available in the introspection data./
        | AnotherRegionOverlap Int
        -- ^ Catch-all for unknown values
        deriving (Int -> RegionOverlap -> ShowS
    [RegionOverlap] -> ShowS
    RegionOverlap -> String
    (Int -> RegionOverlap -> ShowS)
    -> (RegionOverlap -> String)
    -> ([RegionOverlap] -> ShowS)
    -> Show RegionOverlap
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> RegionOverlap -> ShowS
    showsPrec :: Int -> RegionOverlap -> ShowS
    $cshow :: RegionOverlap -> String
    show :: RegionOverlap -> String
    $cshowList :: [RegionOverlap] -> ShowS
    showList :: [RegionOverlap] -> ShowS
    Show, RegionOverlap -> RegionOverlap -> Bool
    (RegionOverlap -> RegionOverlap -> Bool)
    -> (RegionOverlap -> RegionOverlap -> Bool) -> Eq RegionOverlap
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: RegionOverlap -> RegionOverlap -> Bool
    == :: RegionOverlap -> RegionOverlap -> Bool
    $c/= :: RegionOverlap -> RegionOverlap -> Bool
    /= :: RegionOverlap -> RegionOverlap -> Bool
    Eq)

    instance P.Enum RegionOverlap where
        fromEnum :: RegionOverlap -> Int
    fromEnum RegionOverlap
    RegionOverlapIn = Int
    0
        fromEnum RegionOverlap
    RegionOverlapOut = Int
    1
        fromEnum RegionOverlap
    RegionOverlapPart = Int
    2
        fromEnum (AnotherRegionOverlap Int
    k) = Int
    k

        toEnum :: Int -> RegionOverlap
    toEnum Int
    0 = RegionOverlap
    RegionOverlapIn
        toEnum Int
    1 = RegionOverlap
    RegionOverlapOut
        toEnum Int
    2 = RegionOverlap
    RegionOverlapPart
        toEnum Int
    k = Int -> RegionOverlap
    AnotherRegionOverlap Int
    k

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

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

    foreign import ccall "cairo_gobject_region_overlap_get_type" c_cairo_gobject_region_overlap_get_type ::
        IO GType

    instance B.Types.TypedObject RegionOverlap where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_region_overlap_get_type

    instance B.Types.BoxedEnum RegionOverlap

    -- Enum PatternType
    -- | /No description available in the introspection data./
    data PatternType =
          PatternTypeSolid
        -- ^ /No description available in the introspection data./
        | PatternTypeSurface
        -- ^ /No description available in the introspection data./
        | PatternTypeLinear
        -- ^ /No description available in the introspection data./
        | PatternTypeRadial
        -- ^ /No description available in the introspection data./
        | PatternTypeMesh
        -- ^ /No description available in the introspection data./
        | PatternTypeRasterSource
        -- ^ /No description available in the introspection data./
        | AnotherPatternType Int
        -- ^ Catch-all for unknown values
        deriving (Int -> PatternType -> ShowS
    [PatternType] -> ShowS
    PatternType -> String
    (Int -> PatternType -> ShowS)
    -> (PatternType -> String)
    -> ([PatternType] -> ShowS)
    -> Show PatternType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> PatternType -> ShowS
    showsPrec :: Int -> PatternType -> ShowS
    $cshow :: PatternType -> String
    show :: PatternType -> String
    $cshowList :: [PatternType] -> ShowS
    showList :: [PatternType] -> ShowS
    Show, PatternType -> PatternType -> Bool
    (PatternType -> PatternType -> Bool)
    -> (PatternType -> PatternType -> Bool) -> Eq PatternType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: PatternType -> PatternType -> Bool
    == :: PatternType -> PatternType -> Bool
    $c/= :: PatternType -> PatternType -> Bool
    /= :: PatternType -> PatternType -> Bool
    Eq)

    instance P.Enum PatternType where
        fromEnum :: PatternType -> Int
    fromEnum PatternType
    PatternTypeSolid = Int
    0
        fromEnum PatternType
    PatternTypeSurface = Int
    1
        fromEnum PatternType
    PatternTypeLinear = Int
    2
        fromEnum PatternType
    PatternTypeRadial = Int
    3
        fromEnum PatternType
    PatternTypeMesh = Int
    4
        fromEnum PatternType
    PatternTypeRasterSource = Int
    5
        fromEnum (AnotherPatternType Int
    k) = Int
    k

        toEnum :: Int -> PatternType
    toEnum Int
    0 = PatternType
    PatternTypeSolid
        toEnum Int
    1 = PatternType
    PatternTypeSurface
        toEnum Int
    2 = PatternType
    PatternTypeLinear
        toEnum Int
    3 = PatternType
    PatternTypeRadial
        toEnum Int
    4 = PatternType
    PatternTypeMesh
        toEnum Int
    5 = PatternType
    PatternTypeRasterSource
        toEnum Int
    k = Int -> PatternType
    AnotherPatternType Int
    k

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

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

    foreign import ccall "cairo_gobject_pattern_type_get_type" c_cairo_gobject_pattern_type_get_type ::
        IO GType

    instance B.Types.TypedObject PatternType where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_pattern_type_get_type

    instance B.Types.BoxedEnum PatternType

    -- Enum PathDataType
    -- | /No description available in the introspection data./
    data PathDataType =
          PathDataTypeMoveTo
        -- ^ /No description available in the introspection data./
        | PathDataTypeLineTo
        -- ^ /No description available in the introspection data./
        | PathDataTypeCurveTo
        -- ^ /No description available in the introspection data./
        | PathDataTypeClosePath
        -- ^ /No description available in the introspection data./
        | AnotherPathDataType Int
        -- ^ Catch-all for unknown values
        deriving (Int -> PathDataType -> ShowS
    [PathDataType] -> ShowS
    PathDataType -> String
    (Int -> PathDataType -> ShowS)
    -> (PathDataType -> String)
    -> ([PathDataType] -> ShowS)
    -> Show PathDataType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> PathDataType -> ShowS
    showsPrec :: Int -> PathDataType -> ShowS
    $cshow :: PathDataType -> String
    show :: PathDataType -> String
    $cshowList :: [PathDataType] -> ShowS
    showList :: [PathDataType] -> ShowS
    Show, PathDataType -> PathDataType -> Bool
    (PathDataType -> PathDataType -> Bool)
    -> (PathDataType -> PathDataType -> Bool) -> Eq PathDataType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: PathDataType -> PathDataType -> Bool
    == :: PathDataType -> PathDataType -> Bool
    $c/= :: PathDataType -> PathDataType -> Bool
    /= :: PathDataType -> PathDataType -> Bool
    Eq)

    instance P.Enum PathDataType where
        fromEnum :: PathDataType -> Int
    fromEnum PathDataType
    PathDataTypeMoveTo = Int
    0
        fromEnum PathDataType
    PathDataTypeLineTo = Int
    1
        fromEnum PathDataType
    PathDataTypeCurveTo = Int
    2
        fromEnum PathDataType
    PathDataTypeClosePath = Int
    3
        fromEnum (AnotherPathDataType Int
    k) = Int
    k

        toEnum :: Int -> PathDataType
    toEnum Int
    0 = PathDataType
    PathDataTypeMoveTo
        toEnum Int
    1 = PathDataType
    PathDataTypeLineTo
        toEnum Int
    2 = PathDataType
    PathDataTypeCurveTo
        toEnum Int
    3 = PathDataType
    PathDataTypeClosePath
        toEnum Int
    k = Int -> PathDataType
    AnotherPathDataType Int
    k

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

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

    foreign import ccall "cairo_gobject_path_data_type_get_type" c_cairo_gobject_path_data_type_get_type ::
        IO GType

    instance B.Types.TypedObject PathDataType where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_path_data_type_get_type

    instance B.Types.BoxedEnum PathDataType

    -- Enum Operator
    -- | /No description available in the introspection data./
    data Operator =
          OperatorClear
        -- ^ /No description available in the introspection data./
        | OperatorSource
        -- ^ /No description available in the introspection data./
        | OperatorOver
        -- ^ /No description available in the introspection data./
        | OperatorIn
        -- ^ /No description available in the introspection data./
        | OperatorOut
        -- ^ /No description available in the introspection data./
        | OperatorAtop
        -- ^ /No description available in the introspection data./
        | OperatorDest
        -- ^ /No description available in the introspection data./
        | OperatorDestOver
        -- ^ /No description available in the introspection data./
        | OperatorDestIn
        -- ^ /No description available in the introspection data./
        | OperatorDestOut
        -- ^ /No description available in the introspection data./
        | OperatorDestAtop
        -- ^ /No description available in the introspection data./
        | OperatorXor
        -- ^ /No description available in the introspection data./
        | OperatorAdd
        -- ^ /No description available in the introspection data./
        | OperatorSaturate
        -- ^ /No description available in the introspection data./
        | OperatorMultiply
        -- ^ /No description available in the introspection data./
        | OperatorScreen
        -- ^ /No description available in the introspection data./
        | OperatorOverlay
        -- ^ /No description available in the introspection data./
        | OperatorDarken
        -- ^ /No description available in the introspection data./
        | OperatorLighten
        -- ^ /No description available in the introspection data./
        | OperatorColorDodge
        -- ^ /No description available in the introspection data./
        | OperatorColorBurn
        -- ^ /No description available in the introspection data./
        | OperatorHardLight
        -- ^ /No description available in the introspection data./
        | OperatorSoftLight
        -- ^ /No description available in the introspection data./
        | OperatorDifference
        -- ^ /No description available in the introspection data./
        | OperatorExclusion
        -- ^ /No description available in the introspection data./
        | OperatorHslHue
        -- ^ /No description available in the introspection data./
        | OperatorHslSaturation
        -- ^ /No description available in the introspection data./
        | OperatorHslColor
        -- ^ /No description available in the introspection data./
        | OperatorHslLuminosity
        -- ^ /No description available in the introspection data./
        | AnotherOperator Int
        -- ^ Catch-all for unknown values
        deriving (Int -> Operator -> ShowS
    [Operator] -> ShowS
    Operator -> String
    (Int -> Operator -> ShowS)
    -> (Operator -> String) -> ([Operator] -> ShowS) -> Show Operator
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> Operator -> ShowS
    showsPrec :: Int -> Operator -> ShowS
    $cshow :: Operator -> String
    show :: Operator -> String
    $cshowList :: [Operator] -> ShowS
    showList :: [Operator] -> ShowS
    Show, Operator -> Operator -> Bool
    (Operator -> Operator -> Bool)
    -> (Operator -> Operator -> Bool) -> Eq Operator
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: Operator -> Operator -> Bool
    == :: Operator -> Operator -> Bool
    $c/= :: Operator -> Operator -> Bool
    /= :: Operator -> Operator -> Bool
    Eq)

    instance P.Enum Operator where
        fromEnum :: Operator -> Int
    fromEnum Operator
    OperatorClear = Int
    0
        fromEnum Operator
    OperatorSource = Int
    1
        fromEnum Operator
    OperatorOver = Int
    2
        fromEnum Operator
    OperatorIn = Int
    3
        fromEnum Operator
    OperatorOut = Int
    4
        fromEnum Operator
    OperatorAtop = Int
    5
        fromEnum Operator
    OperatorDest = Int
    6
        fromEnum Operator
    OperatorDestOver = Int
    7
        fromEnum Operator
    OperatorDestIn = Int
    8
        fromEnum Operator
    OperatorDestOut = Int
    9
        fromEnum Operator
    OperatorDestAtop = Int
    10
        fromEnum Operator
    OperatorXor = Int
    11
        fromEnum Operator
    OperatorAdd = Int
    12
        fromEnum Operator
    OperatorSaturate = Int
    13
        fromEnum Operator
    OperatorMultiply = Int
    14
        fromEnum Operator
    OperatorScreen = Int
    15
        fromEnum Operator
    OperatorOverlay = Int
    16
        fromEnum Operator
    OperatorDarken = Int
    17
        fromEnum Operator
    OperatorLighten = Int
    18
        fromEnum Operator
    OperatorColorDodge = Int
    19
        fromEnum Operator
    OperatorColorBurn = Int
    20
        fromEnum Operator
    OperatorHardLight = Int
    21
        fromEnum Operator
    OperatorSoftLight = Int
    22
        fromEnum Operator
    OperatorDifference = Int
    23
        fromEnum Operator
    OperatorExclusion = Int
    24
        fromEnum Operator
    OperatorHslHue = Int
    25
        fromEnum Operator
    OperatorHslSaturation = Int
    26
        fromEnum Operator
    OperatorHslColor = Int
    27
        fromEnum Operator
    OperatorHslLuminosity = Int
    28
        fromEnum (AnotherOperator Int
    k) = Int
    k

        toEnum :: Int -> Operator
    toEnum Int
    0 = Operator
    OperatorClear
        toEnum Int
    1 = Operator
    OperatorSource
        toEnum Int
    2 = Operator
    OperatorOver
        toEnum Int
    3 = Operator
    OperatorIn
        toEnum Int
    4 = Operator
    OperatorOut
        toEnum Int
    5 = Operator
    OperatorAtop
        toEnum Int
    6 = Operator
    OperatorDest
        toEnum Int
    7 = Operator
    OperatorDestOver
        toEnum Int
    8 = Operator
    OperatorDestIn
        toEnum Int
    9 = Operator
    OperatorDestOut
        toEnum Int
    10 = Operator
    OperatorDestAtop
        toEnum Int
    11 = Operator
    OperatorXor
        toEnum Int
    12 = Operator
    OperatorAdd
        toEnum Int
    13 = Operator
    OperatorSaturate
        toEnum Int
    14 = Operator
    OperatorMultiply
        toEnum Int
    15 = Operator
    OperatorScreen
        toEnum Int
    16 = Operator
    OperatorOverlay
        toEnum Int
    17 = Operator
    OperatorDarken
        toEnum Int
    18 = Operator
    OperatorLighten
        toEnum Int
    19 = Operator
    OperatorColorDodge
        toEnum Int
    20 = Operator
    OperatorColorBurn
        toEnum Int
    21 = Operator
    OperatorHardLight
        toEnum Int
    22 = Operator
    OperatorSoftLight
        toEnum Int
    23 = Operator
    OperatorDifference
        toEnum Int
    24 = Operator
    OperatorExclusion
        toEnum Int
    25 = Operator
    OperatorHslHue
        toEnum Int
    26 = Operator
    OperatorHslSaturation
        toEnum Int
    27 = Operator
    OperatorHslColor
        toEnum Int
    28 = Operator
    OperatorHslLuminosity
        toEnum Int
    k = Int -> Operator
    AnotherOperator Int
    k

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

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

    foreign import ccall "cairo_gobject_operator_get_type" c_cairo_gobject_operator_get_type ::
        IO GType

    instance B.Types.TypedObject Operator where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_operator_get_type

    instance B.Types.BoxedEnum Operator

    -- Enum LineJoin
    -- | /No description available in the introspection data./
    data LineJoin =
          LineJoinMiter
        -- ^ /No description available in the introspection data./
        | LineJoinRound
        -- ^ /No description available in the introspection data./
        | LineJoinBevel
        -- ^ /No description available in the introspection data./
        | AnotherLineJoin Int
        -- ^ Catch-all for unknown values
        deriving (Int -> LineJoin -> ShowS
    [LineJoin] -> ShowS
    LineJoin -> String
    (Int -> LineJoin -> ShowS)
    -> (LineJoin -> String) -> ([LineJoin] -> ShowS) -> Show LineJoin
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> LineJoin -> ShowS
    showsPrec :: Int -> LineJoin -> ShowS
    $cshow :: LineJoin -> String
    show :: LineJoin -> String
    $cshowList :: [LineJoin] -> ShowS
    showList :: [LineJoin] -> ShowS
    Show, LineJoin -> LineJoin -> Bool
    (LineJoin -> LineJoin -> Bool)
    -> (LineJoin -> LineJoin -> Bool) -> Eq LineJoin
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: LineJoin -> LineJoin -> Bool
    == :: LineJoin -> LineJoin -> Bool
    $c/= :: LineJoin -> LineJoin -> Bool
    /= :: LineJoin -> LineJoin -> Bool
    Eq)

    instance P.Enum LineJoin where
        fromEnum :: LineJoin -> Int
    fromEnum LineJoin
    LineJoinMiter = Int
    0
        fromEnum LineJoin
    LineJoinRound = Int
    1
        fromEnum LineJoin
    LineJoinBevel = Int
    2
        fromEnum (AnotherLineJoin Int
    k) = Int
    k

        toEnum :: Int -> LineJoin
    toEnum Int
    0 = LineJoin
    LineJoinMiter
        toEnum Int
    1 = LineJoin
    LineJoinRound
        toEnum Int
    2 = LineJoin
    LineJoinBevel
        toEnum Int
    k = Int -> LineJoin
    AnotherLineJoin Int
    k

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

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

    foreign import ccall "cairo_gobject_line_join_get_type" c_cairo_gobject_line_join_get_type ::
        IO GType

    instance B.Types.TypedObject LineJoin where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_line_join_get_type

    instance B.Types.BoxedEnum LineJoin

    -- Enum LineCap
    -- | /No description available in the introspection data./
    data LineCap =
          LineCapButt
        -- ^ /No description available in the introspection data./
        | LineCapRound
        -- ^ /No description available in the introspection data./
        | LineCapSquare
        -- ^ /No description available in the introspection data./
        | AnotherLineCap Int
        -- ^ Catch-all for unknown values
        deriving (Int -> LineCap -> ShowS
    [LineCap] -> ShowS
    LineCap -> String
    (Int -> LineCap -> ShowS)
    -> (LineCap -> String) -> ([LineCap] -> ShowS) -> Show LineCap
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> LineCap -> ShowS
    showsPrec :: Int -> LineCap -> ShowS
    $cshow :: LineCap -> String
    show :: LineCap -> String
    $cshowList :: [LineCap] -> ShowS
    showList :: [LineCap] -> ShowS
    Show, LineCap -> LineCap -> Bool
    (LineCap -> LineCap -> Bool)
    -> (LineCap -> LineCap -> Bool) -> Eq LineCap
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: LineCap -> LineCap -> Bool
    == :: LineCap -> LineCap -> Bool
    $c/= :: LineCap -> LineCap -> Bool
    /= :: LineCap -> LineCap -> Bool
    Eq)

    instance P.Enum LineCap where
        fromEnum :: LineCap -> Int
    fromEnum LineCap
    LineCapButt = Int
    0
        fromEnum LineCap
    LineCapRound = Int
    1
        fromEnum LineCap
    LineCapSquare = Int
    2
        fromEnum (AnotherLineCap Int
    k) = Int
    k

        toEnum :: Int -> LineCap
    toEnum Int
    0 = LineCap
    LineCapButt
        toEnum Int
    1 = LineCap
    LineCapRound
        toEnum Int
    2 = LineCap
    LineCapSquare
        toEnum Int
    k = Int -> LineCap
    AnotherLineCap Int
    k

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

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

    foreign import ccall "cairo_gobject_line_cap_get_type" c_cairo_gobject_line_cap_get_type ::
        IO GType

    instance B.Types.TypedObject LineCap where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_line_cap_get_type

    instance B.Types.BoxedEnum LineCap

    -- Enum HintStyle
    -- | /No description available in the introspection data./
    data HintStyle =
          HintStyleDefault
        -- ^ /No description available in the introspection data./
        | HintStyleNone
        -- ^ /No description available in the introspection data./
        | HintStyleSlight
        -- ^ /No description available in the introspection data./
        | HintStyleMedium
        -- ^ /No description available in the introspection data./
        | HintStyleFull
        -- ^ /No description available in the introspection data./
        | AnotherHintStyle Int
        -- ^ Catch-all for unknown values
        deriving (Int -> HintStyle -> ShowS
    [HintStyle] -> ShowS
    HintStyle -> String
    (Int -> HintStyle -> ShowS)
    -> (HintStyle -> String)
    -> ([HintStyle] -> ShowS)
    -> Show HintStyle
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> HintStyle -> ShowS
    showsPrec :: Int -> HintStyle -> ShowS
    $cshow :: HintStyle -> String
    show :: HintStyle -> String
    $cshowList :: [HintStyle] -> ShowS
    showList :: [HintStyle] -> ShowS
    Show, HintStyle -> HintStyle -> Bool
    (HintStyle -> HintStyle -> Bool)
    -> (HintStyle -> HintStyle -> Bool) -> Eq HintStyle
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: HintStyle -> HintStyle -> Bool
    == :: HintStyle -> HintStyle -> Bool
    $c/= :: HintStyle -> HintStyle -> Bool
    /= :: HintStyle -> HintStyle -> Bool
    Eq)

    instance P.Enum HintStyle where
        fromEnum :: HintStyle -> Int
    fromEnum HintStyle
    HintStyleDefault = Int
    0
        fromEnum HintStyle
    HintStyleNone = Int
    1
        fromEnum HintStyle
    HintStyleSlight = Int
    2
        fromEnum HintStyle
    HintStyleMedium = Int
    3
        fromEnum HintStyle
    HintStyleFull = Int
    4
        fromEnum (AnotherHintStyle Int
    k) = Int
    k

        toEnum :: Int -> HintStyle
    toEnum Int
    0 = HintStyle
    HintStyleDefault
        toEnum Int
    1 = HintStyle
    HintStyleNone
        toEnum Int
    2 = HintStyle
    HintStyleSlight
        toEnum Int
    3 = HintStyle
    HintStyleMedium
        toEnum Int
    4 = HintStyle
    HintStyleFull
        toEnum Int
    k = Int -> HintStyle
    AnotherHintStyle Int
    k

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

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

    foreign import ccall "cairo_gobject_hint_style_get_type" c_cairo_gobject_hint_style_get_type ::
        IO GType

    instance B.Types.TypedObject HintStyle where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_hint_style_get_type

    instance B.Types.BoxedEnum HintStyle

    -- Enum HintMetrics
    -- | /No description available in the introspection data./
    data HintMetrics =
          HintMetricsDefault
        -- ^ /No description available in the introspection data./
        | HintMetricsOff
        -- ^ /No description available in the introspection data./
        | HintMetricsOn
        -- ^ /No description available in the introspection data./
        | AnotherHintMetrics Int
        -- ^ Catch-all for unknown values
        deriving (Int -> HintMetrics -> ShowS
    [HintMetrics] -> ShowS
    HintMetrics -> String
    (Int -> HintMetrics -> ShowS)
    -> (HintMetrics -> String)
    -> ([HintMetrics] -> ShowS)
    -> Show HintMetrics
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> HintMetrics -> ShowS
    showsPrec :: Int -> HintMetrics -> ShowS
    $cshow :: HintMetrics -> String
    show :: HintMetrics -> String
    $cshowList :: [HintMetrics] -> ShowS
    showList :: [HintMetrics] -> ShowS
    Show, HintMetrics -> HintMetrics -> Bool
    (HintMetrics -> HintMetrics -> Bool)
    -> (HintMetrics -> HintMetrics -> Bool) -> Eq HintMetrics
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: HintMetrics -> HintMetrics -> Bool
    == :: HintMetrics -> HintMetrics -> Bool
    $c/= :: HintMetrics -> HintMetrics -> Bool
    /= :: HintMetrics -> HintMetrics -> Bool
    Eq)

    instance P.Enum HintMetrics where
        fromEnum :: HintMetrics -> Int
    fromEnum HintMetrics
    HintMetricsDefault = Int
    0
        fromEnum HintMetrics
    HintMetricsOff = Int
    1
        fromEnum HintMetrics
    HintMetricsOn = Int
    2
        fromEnum (AnotherHintMetrics Int
    k) = Int
    k

        toEnum :: Int -> HintMetrics
    toEnum Int
    0 = HintMetrics
    HintMetricsDefault
        toEnum Int
    1 = HintMetrics
    HintMetricsOff
        toEnum Int
    2 = HintMetrics
    HintMetricsOn
        toEnum Int
    k = Int -> HintMetrics
    AnotherHintMetrics Int
    k

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

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

    foreign import ccall "cairo_gobject_hint_metrics_get_type" c_cairo_gobject_hint_metrics_get_type ::
        IO GType

    instance B.Types.TypedObject HintMetrics where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_hint_metrics_get_type

    instance B.Types.BoxedEnum HintMetrics

    -- Enum Format
    -- | /No description available in the introspection data./
    data Format =
          FormatInvalid
        -- ^ /No description available in the introspection data./
        | FormatArgb32
        -- ^ /No description available in the introspection data./
        | FormatRgb24
        -- ^ /No description available in the introspection data./
        | FormatA8
        -- ^ /No description available in the introspection data./
        | FormatA1
        -- ^ /No description available in the introspection data./
        | FormatRgb16565
        -- ^ /No description available in the introspection data./
        | FormatRgb30
        -- ^ /No description available in the introspection data./
        | AnotherFormat Int
        -- ^ Catch-all for unknown values
        deriving (Int -> Format -> ShowS
    [Format] -> ShowS
    Format -> String
    (Int -> Format -> ShowS)
    -> (Format -> String) -> ([Format] -> ShowS) -> Show Format
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> Format -> ShowS
    showsPrec :: Int -> Format -> ShowS
    $cshow :: Format -> String
    show :: Format -> String
    $cshowList :: [Format] -> ShowS
    showList :: [Format] -> ShowS
    Show, Format -> Format -> Bool
    (Format -> Format -> Bool)
    -> (Format -> Format -> Bool) -> Eq Format
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: Format -> Format -> Bool
    == :: Format -> Format -> Bool
    $c/= :: Format -> Format -> Bool
    /= :: Format -> Format -> Bool
    Eq)

    instance P.Enum Format where
        fromEnum :: Format -> Int
    fromEnum Format
    FormatInvalid = Int
    -1
        fromEnum Format
    FormatArgb32 = Int
    0
        fromEnum Format
    FormatRgb24 = Int
    1
        fromEnum Format
    FormatA8 = Int
    2
        fromEnum Format
    FormatA1 = Int
    3
        fromEnum Format
    FormatRgb16565 = Int
    4
        fromEnum Format
    FormatRgb30 = Int
    5
        fromEnum (AnotherFormat Int
    k) = Int
    k

        toEnum :: Int -> Format
    toEnum Int
    -1 = Format
    FormatInvalid
        toEnum Int
    0 = Format
    FormatArgb32
        toEnum Int
    1 = Format
    FormatRgb24
        toEnum Int
    2 = Format
    FormatA8
        toEnum Int
    3 = Format
    FormatA1
        toEnum Int
    4 = Format
    FormatRgb16565
        toEnum Int
    5 = Format
    FormatRgb30
        toEnum Int
    k = Int -> Format
    AnotherFormat Int
    k

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

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

    foreign import ccall "cairo_gobject_format_get_type" c_cairo_gobject_format_get_type ::
        IO GType

    instance B.Types.TypedObject Format where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_format_get_type

    instance B.Types.BoxedEnum Format

    -- Enum FontWeight
    -- | /No description available in the introspection data./
    data FontWeight =
          FontWeightNormal
        -- ^ /No description available in the introspection data./
        | FontWeightBold
        -- ^ /No description available in the introspection data./
        | AnotherFontWeight Int
        -- ^ Catch-all for unknown values
        deriving (Int -> FontWeight -> ShowS
    [FontWeight] -> ShowS
    FontWeight -> String
    (Int -> FontWeight -> ShowS)
    -> (FontWeight -> String)
    -> ([FontWeight] -> ShowS)
    -> Show FontWeight
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> FontWeight -> ShowS
    showsPrec :: Int -> FontWeight -> ShowS
    $cshow :: FontWeight -> String
    show :: FontWeight -> String
    $cshowList :: [FontWeight] -> ShowS
    showList :: [FontWeight] -> ShowS
    Show, FontWeight -> FontWeight -> Bool
    (FontWeight -> FontWeight -> Bool)
    -> (FontWeight -> FontWeight -> Bool) -> Eq FontWeight
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: FontWeight -> FontWeight -> Bool
    == :: FontWeight -> FontWeight -> Bool
    $c/= :: FontWeight -> FontWeight -> Bool
    /= :: FontWeight -> FontWeight -> Bool
    Eq)

    instance P.Enum FontWeight where
        fromEnum :: FontWeight -> Int
    fromEnum FontWeight
    FontWeightNormal = Int
    0
        fromEnum FontWeight
    FontWeightBold = Int
    1
        fromEnum (AnotherFontWeight Int
    k) = Int
    k

        toEnum :: Int -> FontWeight
    toEnum Int
    0 = FontWeight
    FontWeightNormal
        toEnum Int
    1 = FontWeight
    FontWeightBold
        toEnum Int
    k = Int -> FontWeight
    AnotherFontWeight Int
    k

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

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

    foreign import ccall "cairo_gobject_font_weight_get_type" c_cairo_gobject_font_weight_get_type ::
        IO GType

    instance B.Types.TypedObject FontWeight where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_font_weight_get_type

    instance B.Types.BoxedEnum FontWeight

    -- Enum FontType
    -- | /No description available in the introspection data./
    data FontType =
          FontTypeToy
        -- ^ /No description available in the introspection data./
        | FontTypeFt
        -- ^ /No description available in the introspection data./
        | FontTypeWin32
        -- ^ /No description available in the introspection data./
        | FontTypeQuartz
        -- ^ /No description available in the introspection data./
        | FontTypeUser
        -- ^ /No description available in the introspection data./
        | AnotherFontType Int
        -- ^ Catch-all for unknown values
        deriving (Int -> FontType -> ShowS
    [FontType] -> ShowS
    FontType -> String
    (Int -> FontType -> ShowS)
    -> (FontType -> String) -> ([FontType] -> ShowS) -> Show FontType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> FontType -> ShowS
    showsPrec :: Int -> FontType -> ShowS
    $cshow :: FontType -> String
    show :: FontType -> String
    $cshowList :: [FontType] -> ShowS
    showList :: [FontType] -> ShowS
    Show, FontType -> FontType -> Bool
    (FontType -> FontType -> Bool)
    -> (FontType -> FontType -> Bool) -> Eq FontType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: FontType -> FontType -> Bool
    == :: FontType -> FontType -> Bool
    $c/= :: FontType -> FontType -> Bool
    /= :: FontType -> FontType -> Bool
    Eq)

    instance P.Enum FontType where
        fromEnum :: FontType -> Int
    fromEnum FontType
    FontTypeToy = Int
    0
        fromEnum FontType
    FontTypeFt = Int
    1
        fromEnum FontType
    FontTypeWin32 = Int
    2
        fromEnum FontType
    FontTypeQuartz = Int
    3
        fromEnum FontType
    FontTypeUser = Int
    4
        fromEnum (AnotherFontType Int
    k) = Int
    k

        toEnum :: Int -> FontType
    toEnum Int
    0 = FontType
    FontTypeToy
        toEnum Int
    1 = FontType
    FontTypeFt
        toEnum Int
    2 = FontType
    FontTypeWin32
        toEnum Int
    3 = FontType
    FontTypeQuartz
        toEnum Int
    4 = FontType
    FontTypeUser
        toEnum Int
    k = Int -> FontType
    AnotherFontType Int
    k

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

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

    foreign import ccall "cairo_gobject_font_type_get_type" c_cairo_gobject_font_type_get_type ::
        IO GType

    instance B.Types.TypedObject FontType where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_font_type_get_type

    instance B.Types.BoxedEnum FontType

    -- Enum FontSlant
    -- | /No description available in the introspection data./
    data FontSlant =
          FontSlantNormal
        -- ^ /No description available in the introspection data./
        | FontSlantItalic
        -- ^ /No description available in the introspection data./
        | FontSlantOblique
        -- ^ /No description available in the introspection data./
        | AnotherFontSlant Int
        -- ^ Catch-all for unknown values
        deriving (Int -> FontSlant -> ShowS
    [FontSlant] -> ShowS
    FontSlant -> String
    (Int -> FontSlant -> ShowS)
    -> (FontSlant -> String)
    -> ([FontSlant] -> ShowS)
    -> Show FontSlant
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> FontSlant -> ShowS
    showsPrec :: Int -> FontSlant -> ShowS
    $cshow :: FontSlant -> String
    show :: FontSlant -> String
    $cshowList :: [FontSlant] -> ShowS
    showList :: [FontSlant] -> ShowS
    Show, FontSlant -> FontSlant -> Bool
    (FontSlant -> FontSlant -> Bool)
    -> (FontSlant -> FontSlant -> Bool) -> Eq FontSlant
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: FontSlant -> FontSlant -> Bool
    == :: FontSlant -> FontSlant -> Bool
    $c/= :: FontSlant -> FontSlant -> Bool
    /= :: FontSlant -> FontSlant -> Bool
    Eq)

    instance P.Enum FontSlant where
        fromEnum :: FontSlant -> Int
    fromEnum FontSlant
    FontSlantNormal = Int
    0
        fromEnum FontSlant
    FontSlantItalic = Int
    1
        fromEnum FontSlant
    FontSlantOblique = Int
    2
        fromEnum (AnotherFontSlant Int
    k) = Int
    k

        toEnum :: Int -> FontSlant
    toEnum Int
    0 = FontSlant
    FontSlantNormal
        toEnum Int
    1 = FontSlant
    FontSlantItalic
        toEnum Int
    2 = FontSlant
    FontSlantOblique
        toEnum Int
    k = Int -> FontSlant
    AnotherFontSlant Int
    k

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

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

    foreign import ccall "cairo_gobject_font_slant_get_type" c_cairo_gobject_font_slant_get_type ::
        IO GType

    instance B.Types.TypedObject FontSlant where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_font_slant_get_type

    instance B.Types.BoxedEnum FontSlant

    -- Enum Filter
    -- | /No description available in the introspection data./
    data Filter =
          FilterFast
        -- ^ /No description available in the introspection data./
        | FilterGood
        -- ^ /No description available in the introspection data./
        | FilterBest
        -- ^ /No description available in the introspection data./
        | FilterNearest
        -- ^ /No description available in the introspection data./
        | FilterBilinear
        -- ^ /No description available in the introspection data./
        | FilterGaussian
        -- ^ /No description available in the introspection data./
        | AnotherFilter Int
        -- ^ Catch-all for unknown values
        deriving (Int -> Filter -> ShowS
    [Filter] -> ShowS
    Filter -> String
    (Int -> Filter -> ShowS)
    -> (Filter -> String) -> ([Filter] -> ShowS) -> Show Filter
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> Filter -> ShowS
    showsPrec :: Int -> Filter -> ShowS
    $cshow :: Filter -> String
    show :: Filter -> String
    $cshowList :: [Filter] -> ShowS
    showList :: [Filter] -> ShowS
    Show, Filter -> Filter -> Bool
    (Filter -> Filter -> Bool)
    -> (Filter -> Filter -> Bool) -> Eq Filter
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: Filter -> Filter -> Bool
    == :: Filter -> Filter -> Bool
    $c/= :: Filter -> Filter -> Bool
    /= :: Filter -> Filter -> Bool
    Eq)

    instance P.Enum Filter where
        fromEnum :: Filter -> Int
    fromEnum Filter
    FilterFast = Int
    0
        fromEnum Filter
    FilterGood = Int
    1
        fromEnum Filter
    FilterBest = Int
    2
        fromEnum Filter
    FilterNearest = Int
    3
        fromEnum Filter
    FilterBilinear = Int
    4
        fromEnum Filter
    FilterGaussian = Int
    5
        fromEnum (AnotherFilter Int
    k) = Int
    k

        toEnum :: Int -> Filter
    toEnum Int
    0 = Filter
    FilterFast
        toEnum Int
    1 = Filter
    FilterGood
        toEnum Int
    2 = Filter
    FilterBest
        toEnum Int
    3 = Filter
    FilterNearest
        toEnum Int
    4 = Filter
    FilterBilinear
        toEnum Int
    5 = Filter
    FilterGaussian
        toEnum Int
    k = Int -> Filter
    AnotherFilter Int
    k

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

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

    foreign import ccall "cairo_gobject_filter_get_type" c_cairo_gobject_filter_get_type ::
        IO GType

    instance B.Types.TypedObject Filter where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_filter_get_type

    instance B.Types.BoxedEnum Filter

    -- Enum FillRule
    -- | /No description available in the introspection data./
    data FillRule =
          FillRuleWinding
        -- ^ /No description available in the introspection data./
        | FillRuleEvenOdd
        -- ^ /No description available in the introspection data./
        | AnotherFillRule Int
        -- ^ Catch-all for unknown values
        deriving (Int -> FillRule -> ShowS
    [FillRule] -> ShowS
    FillRule -> String
    (Int -> FillRule -> ShowS)
    -> (FillRule -> String) -> ([FillRule] -> ShowS) -> Show FillRule
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> FillRule -> ShowS
    showsPrec :: Int -> FillRule -> ShowS
    $cshow :: FillRule -> String
    show :: FillRule -> String
    $cshowList :: [FillRule] -> ShowS
    showList :: [FillRule] -> ShowS
    Show, FillRule -> FillRule -> Bool
    (FillRule -> FillRule -> Bool)
    -> (FillRule -> FillRule -> Bool) -> Eq FillRule
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: FillRule -> FillRule -> Bool
    == :: FillRule -> FillRule -> Bool
    $c/= :: FillRule -> FillRule -> Bool
    /= :: FillRule -> FillRule -> Bool
    Eq)

    instance P.Enum FillRule where
        fromEnum :: FillRule -> Int
    fromEnum FillRule
    FillRuleWinding = Int
    0
        fromEnum FillRule
    FillRuleEvenOdd = Int
    1
        fromEnum (AnotherFillRule Int
    k) = Int
    k

        toEnum :: Int -> FillRule
    toEnum Int
    0 = FillRule
    FillRuleWinding
        toEnum Int
    1 = FillRule
    FillRuleEvenOdd
        toEnum Int
    k = Int -> FillRule
    AnotherFillRule Int
    k

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

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

    foreign import ccall "cairo_gobject_fill_rule_get_type" c_cairo_gobject_fill_rule_get_type ::
        IO GType

    instance B.Types.TypedObject FillRule where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_fill_rule_get_type

    instance B.Types.BoxedEnum FillRule

    -- Enum Extend
    -- | /No description available in the introspection data./
    data Extend =
          ExtendNone
        -- ^ /No description available in the introspection data./
        | ExtendRepeat
        -- ^ /No description available in the introspection data./
        | ExtendReflect
        -- ^ /No description available in the introspection data./
        | ExtendPad
        -- ^ /No description available in the introspection data./
        | AnotherExtend Int
        -- ^ Catch-all for unknown values
        deriving (Int -> Extend -> ShowS
    [Extend] -> ShowS
    Extend -> String
    (Int -> Extend -> ShowS)
    -> (Extend -> String) -> ([Extend] -> ShowS) -> Show Extend
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> Extend -> ShowS
    showsPrec :: Int -> Extend -> ShowS
    $cshow :: Extend -> String
    show :: Extend -> String
    $cshowList :: [Extend] -> ShowS
    showList :: [Extend] -> ShowS
    Show, Extend -> Extend -> Bool
    (Extend -> Extend -> Bool)
    -> (Extend -> Extend -> Bool) -> Eq Extend
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: Extend -> Extend -> Bool
    == :: Extend -> Extend -> Bool
    $c/= :: Extend -> Extend -> Bool
    /= :: Extend -> Extend -> Bool
    Eq)

    instance P.Enum Extend where
        fromEnum :: Extend -> Int
    fromEnum Extend
    ExtendNone = Int
    0
        fromEnum Extend
    ExtendRepeat = Int
    1
        fromEnum Extend
    ExtendReflect = Int
    2
        fromEnum Extend
    ExtendPad = Int
    3
        fromEnum (AnotherExtend Int
    k) = Int
    k

        toEnum :: Int -> Extend
    toEnum Int
    0 = Extend
    ExtendNone
        toEnum Int
    1 = Extend
    ExtendRepeat
        toEnum Int
    2 = Extend
    ExtendReflect
        toEnum Int
    3 = Extend
    ExtendPad
        toEnum Int
    k = Int -> Extend
    AnotherExtend Int
    k

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

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

    foreign import ccall "cairo_gobject_extend_get_type" c_cairo_gobject_extend_get_type ::
        IO GType

    instance B.Types.TypedObject Extend where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_extend_get_type

    instance B.Types.BoxedEnum Extend

    -- Enum DeviceType
    -- | /No description available in the introspection data./
    data DeviceType =
          DeviceTypeDrm
        -- ^ /No description available in the introspection data./
        | DeviceTypeGl
        -- ^ /No description available in the introspection data./
        | DeviceTypeScript
        -- ^ /No description available in the introspection data./
        | DeviceTypeXcb
        -- ^ /No description available in the introspection data./
        | DeviceTypeXlib
        -- ^ /No description available in the introspection data./
        | DeviceTypeXml
        -- ^ /No description available in the introspection data./
        | DeviceTypeCogl
        -- ^ /No description available in the introspection data./
        | DeviceTypeWin32
        -- ^ /No description available in the introspection data./
        | DeviceTypeInvalid
        -- ^ /No description available in the introspection data./
        | AnotherDeviceType Int
        -- ^ Catch-all for unknown values
        deriving (Int -> DeviceType -> ShowS
    [DeviceType] -> ShowS
    DeviceType -> String
    (Int -> DeviceType -> ShowS)
    -> (DeviceType -> String)
    -> ([DeviceType] -> ShowS)
    -> Show DeviceType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> DeviceType -> ShowS
    showsPrec :: Int -> DeviceType -> ShowS
    $cshow :: DeviceType -> String
    show :: DeviceType -> String
    $cshowList :: [DeviceType] -> ShowS
    showList :: [DeviceType] -> ShowS
    Show, DeviceType -> DeviceType -> Bool
    (DeviceType -> DeviceType -> Bool)
    -> (DeviceType -> DeviceType -> Bool) -> Eq DeviceType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: DeviceType -> DeviceType -> Bool
    == :: DeviceType -> DeviceType -> Bool
    $c/= :: DeviceType -> DeviceType -> Bool
    /= :: DeviceType -> DeviceType -> Bool
    Eq)

    instance P.Enum DeviceType where
        fromEnum :: DeviceType -> Int
    fromEnum DeviceType
    DeviceTypeDrm = Int
    0
        fromEnum DeviceType
    DeviceTypeGl = Int
    1
        fromEnum DeviceType
    DeviceTypeScript = Int
    2
        fromEnum DeviceType
    DeviceTypeXcb = Int
    3
        fromEnum DeviceType
    DeviceTypeXlib = Int
    4
        fromEnum DeviceType
    DeviceTypeXml = Int
    5
        fromEnum DeviceType
    DeviceTypeCogl = Int
    6
        fromEnum DeviceType
    DeviceTypeWin32 = Int
    7
        fromEnum DeviceType
    DeviceTypeInvalid = Int
    -1
        fromEnum (AnotherDeviceType Int
    k) = Int
    k

        toEnum :: Int -> DeviceType
    toEnum Int
    0 = DeviceType
    DeviceTypeDrm
        toEnum Int
    1 = DeviceType
    DeviceTypeGl
        toEnum Int
    2 = DeviceType
    DeviceTypeScript
        toEnum Int
    3 = DeviceType
    DeviceTypeXcb
        toEnum Int
    4 = DeviceType
    DeviceTypeXlib
        toEnum Int
    5 = DeviceType
    DeviceTypeXml
        toEnum Int
    6 = DeviceType
    DeviceTypeCogl
        toEnum Int
    7 = DeviceType
    DeviceTypeWin32
        toEnum Int
    -1 = DeviceType
    DeviceTypeInvalid
        toEnum Int
    k = Int -> DeviceType
    AnotherDeviceType Int
    k

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

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

    foreign import ccall "cairo_gobject_device_type_get_type" c_cairo_gobject_device_type_get_type ::
        IO GType

    instance B.Types.TypedObject DeviceType where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_device_type_get_type

    instance B.Types.BoxedEnum DeviceType

    -- Enum Content
    -- | /No description available in the introspection data./
    data Content =
          ContentColor
        -- ^ /No description available in the introspection data./
        | ContentAlpha
        -- ^ /No description available in the introspection data./
        | ContentColorAlpha
        -- ^ /No description available in the introspection data./
        | AnotherContent Int
        -- ^ Catch-all for unknown values
        deriving (Int -> Content -> ShowS
    [Content] -> ShowS
    Content -> String
    (Int -> Content -> ShowS)
    -> (Content -> String) -> ([Content] -> ShowS) -> Show Content
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> Content -> ShowS
    showsPrec :: Int -> Content -> ShowS
    $cshow :: Content -> String
    show :: Content -> String
    $cshowList :: [Content] -> ShowS
    showList :: [Content] -> ShowS
    Show, Content -> Content -> Bool
    (Content -> Content -> Bool)
    -> (Content -> Content -> Bool) -> Eq Content
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: Content -> Content -> Bool
    == :: Content -> Content -> Bool
    $c/= :: Content -> Content -> Bool
    /= :: Content -> Content -> Bool
    Eq)

    instance P.Enum Content where
        fromEnum :: Content -> Int
    fromEnum Content
    ContentColor = Int
    4096
        fromEnum Content
    ContentAlpha = Int
    8192
        fromEnum Content
    ContentColorAlpha = Int
    12288
        fromEnum (AnotherContent Int
    k) = Int
    k

        toEnum :: Int -> Content
    toEnum Int
    4096 = Content
    ContentColor
        toEnum Int
    8192 = Content
    ContentAlpha
        toEnum Int
    12288 = Content
    ContentColorAlpha
        toEnum Int
    k = Int -> Content
    AnotherContent Int
    k

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

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

    foreign import ccall "cairo_gobject_content_get_type" c_cairo_gobject_content_get_type ::
        IO GType

    instance B.Types.TypedObject Content where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_content_get_type

    instance B.Types.BoxedEnum Content

    -- Enum Antialias
    -- | /No description available in the introspection data./
    data Antialias =
          AntialiasDefault
        -- ^ /No description available in the introspection data./
        | AntialiasNone
        -- ^ /No description available in the introspection data./
        | AntialiasGray
        -- ^ /No description available in the introspection data./
        | AntialiasSubpixel
        -- ^ /No description available in the introspection data./
        | AntialiasFast
        -- ^ /No description available in the introspection data./
        | AntialiasGood
        -- ^ /No description available in the introspection data./
        | AntialiasBest
        -- ^ /No description available in the introspection data./
        | AnotherAntialias Int
        -- ^ Catch-all for unknown values
        deriving (Int -> Antialias -> ShowS
    [Antialias] -> ShowS
    Antialias -> String
    (Int -> Antialias -> ShowS)
    -> (Antialias -> String)
    -> ([Antialias] -> ShowS)
    -> Show Antialias
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> Antialias -> ShowS
    showsPrec :: Int -> Antialias -> ShowS
    $cshow :: Antialias -> String
    show :: Antialias -> String
    $cshowList :: [Antialias] -> ShowS
    showList :: [Antialias] -> ShowS
    Show, Antialias -> Antialias -> Bool
    (Antialias -> Antialias -> Bool)
    -> (Antialias -> Antialias -> Bool) -> Eq Antialias
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: Antialias -> Antialias -> Bool
    == :: Antialias -> Antialias -> Bool
    $c/= :: Antialias -> Antialias -> Bool
    /= :: Antialias -> Antialias -> Bool
    Eq)

    instance P.Enum Antialias where
        fromEnum :: Antialias -> Int
    fromEnum Antialias
    AntialiasDefault = Int
    0
        fromEnum Antialias
    AntialiasNone = Int
    1
        fromEnum Antialias
    AntialiasGray = Int
    2
        fromEnum Antialias
    AntialiasSubpixel = Int
    3
        fromEnum Antialias
    AntialiasFast = Int
    4
        fromEnum Antialias
    AntialiasGood = Int
    5
        fromEnum Antialias
    AntialiasBest = Int
    6
        fromEnum (AnotherAntialias Int
    k) = Int
    k

        toEnum :: Int -> Antialias
    toEnum Int
    0 = Antialias
    AntialiasDefault
        toEnum Int
    1 = Antialias
    AntialiasNone
        toEnum Int
    2 = Antialias
    AntialiasGray
        toEnum Int
    3 = Antialias
    AntialiasSubpixel
        toEnum Int
    4 = Antialias
    AntialiasFast
        toEnum Int
    5 = Antialias
    AntialiasGood
        toEnum Int
    6 = Antialias
    AntialiasBest
        toEnum Int
    k = Int -> Antialias
    AnotherAntialias Int
    k

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

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

    foreign import ccall "cairo_gobject_antialias_get_type" c_cairo_gobject_antialias_get_type ::
        IO GType

    instance B.Types.TypedObject Antialias where
        glibType :: IO GType
    glibType = IO GType
    c_cairo_gobject_antialias_get_type

    instance B.Types.BoxedEnum Antialias