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

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

module GI.Poppler.Enums
    (

 -- * Enumerations
-- ** ActionLayerAction #enum:ActionLayerAction#

    ActionLayerAction(..)                   ,


-- ** ActionMovieOperation #enum:ActionMovieOperation#

    ActionMovieOperation(..)                ,


-- ** ActionType #enum:ActionType#

    ActionType(..)                          ,


-- ** AdditionalActionType #enum:AdditionalActionType#

    AdditionalActionType(..)                ,


-- ** AnnotExternalDataType #enum:AnnotExternalDataType#

    AnnotExternalDataType(..)               ,


-- ** AnnotFreeTextQuadding #enum:AnnotFreeTextQuadding#

    AnnotFreeTextQuadding(..)               ,


-- ** AnnotMarkupReplyType #enum:AnnotMarkupReplyType#

    AnnotMarkupReplyType(..)                ,


-- ** AnnotTextState #enum:AnnotTextState#

    AnnotTextState(..)                      ,


-- ** AnnotType #enum:AnnotType#

    AnnotType(..)                           ,


-- ** Backend #enum:Backend#

    Backend(..)                             ,


-- ** DestType #enum:DestType#

    DestType(..)                            ,


-- ** Error #enum:Error#

    Error(..)                               ,
    catchError                              ,
    handleError                             ,


-- ** FontType #enum:FontType#

    FontType(..)                            ,


-- ** FormButtonType #enum:FormButtonType#

    FormButtonType(..)                      ,


-- ** FormChoiceType #enum:FormChoiceType#

    FormChoiceType(..)                      ,


-- ** FormFieldType #enum:FormFieldType#

    FormFieldType(..)                       ,


-- ** FormTextType #enum:FormTextType#

    FormTextType(..)                        ,


-- ** MoviePlayMode #enum:MoviePlayMode#

    MoviePlayMode(..)                       ,


-- ** PDFConformance #enum:PDFConformance#

    PDFConformance(..)                      ,


-- ** PDFPart #enum:PDFPart#

    PDFPart(..)                             ,


-- ** PDFSubtype #enum:PDFSubtype#

    PDFSubtype(..)                          ,


-- ** PageLayout #enum:PageLayout#

    PageLayout(..)                          ,


-- ** PageMode #enum:PageMode#

    PageMode(..)                            ,


-- ** PageTransitionAlignment #enum:PageTransitionAlignment#

    PageTransitionAlignment(..)             ,


-- ** PageTransitionDirection #enum:PageTransitionDirection#

    PageTransitionDirection(..)             ,


-- ** PageTransitionType #enum:PageTransitionType#

    PageTransitionType(..)                  ,


-- ** PrintScaling #enum:PrintScaling#

    PrintScaling(..)                        ,


-- ** SelectionStyle #enum:SelectionStyle#

    SelectionStyle(..)                      ,


-- ** StructureBlockAlign #enum:StructureBlockAlign#

    StructureBlockAlign(..)                 ,


-- ** StructureBorderStyle #enum:StructureBorderStyle#

    StructureBorderStyle(..)                ,


-- ** StructureElementKind #enum:StructureElementKind#

    StructureElementKind(..)                ,


-- ** StructureFormRole #enum:StructureFormRole#

    StructureFormRole(..)                   ,


-- ** StructureFormState #enum:StructureFormState#

    StructureFormState(..)                  ,


-- ** StructureGlyphOrientation #enum:StructureGlyphOrientation#

    StructureGlyphOrientation(..)           ,


-- ** StructureInlineAlign #enum:StructureInlineAlign#

    StructureInlineAlign(..)                ,


-- ** StructureListNumbering #enum:StructureListNumbering#

    StructureListNumbering(..)              ,


-- ** StructurePlacement #enum:StructurePlacement#

    StructurePlacement(..)                  ,


-- ** StructureRubyAlign #enum:StructureRubyAlign#

    StructureRubyAlign(..)                  ,


-- ** StructureRubyPosition #enum:StructureRubyPosition#

    StructureRubyPosition(..)               ,


-- ** StructureTableScope #enum:StructureTableScope#

    StructureTableScope(..)                 ,


-- ** StructureTextAlign #enum:StructureTextAlign#

    StructureTextAlign(..)                  ,


-- ** StructureTextDecoration #enum:StructureTextDecoration#

    StructureTextDecoration(..)             ,


-- ** StructureWritingMode #enum:StructureWritingMode#

    StructureWritingMode(..)                ,




    ) 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.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL


-- Enum StructureWritingMode
{- |
/No description available in the introspection data./
-}
data StructureWritingMode =
      StructureWritingModeLrTb
    {- ^
    /No description available in the introspection data./
    -}
    | StructureWritingModeRlTb
    {- ^
    /No description available in the introspection data./
    -}
    | StructureWritingModeTbRl
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherStructureWritingMode Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum StructureWritingMode where
    fromEnum StructureWritingModeLrTb = 0
    fromEnum StructureWritingModeRlTb = 1
    fromEnum StructureWritingModeTbRl = 2
    fromEnum (AnotherStructureWritingMode k) = k

    toEnum 0 = StructureWritingModeLrTb
    toEnum 1 = StructureWritingModeRlTb
    toEnum 2 = StructureWritingModeTbRl
    toEnum k = AnotherStructureWritingMode k

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

foreign import ccall "poppler_structure_writing_mode_get_type" c_poppler_structure_writing_mode_get_type ::
    IO GType

instance BoxedEnum StructureWritingMode where
    boxedEnumType _ = c_poppler_structure_writing_mode_get_type

-- Enum StructureTextDecoration
{- |
/No description available in the introspection data./
-}
data StructureTextDecoration =
      StructureTextDecorationNone
    {- ^
    /No description available in the introspection data./
    -}
    | StructureTextDecorationUnderline
    {- ^
    /No description available in the introspection data./
    -}
    | StructureTextDecorationOverline
    {- ^
    /No description available in the introspection data./
    -}
    | StructureTextDecorationLinethrough
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherStructureTextDecoration Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum StructureTextDecoration where
    fromEnum StructureTextDecorationNone = 0
    fromEnum StructureTextDecorationUnderline = 1
    fromEnum StructureTextDecorationOverline = 2
    fromEnum StructureTextDecorationLinethrough = 3
    fromEnum (AnotherStructureTextDecoration k) = k

    toEnum 0 = StructureTextDecorationNone
    toEnum 1 = StructureTextDecorationUnderline
    toEnum 2 = StructureTextDecorationOverline
    toEnum 3 = StructureTextDecorationLinethrough
    toEnum k = AnotherStructureTextDecoration k

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

foreign import ccall "poppler_structure_text_decoration_get_type" c_poppler_structure_text_decoration_get_type ::
    IO GType

instance BoxedEnum StructureTextDecoration where
    boxedEnumType _ = c_poppler_structure_text_decoration_get_type

-- Enum StructureTextAlign
{- |
/No description available in the introspection data./
-}
data StructureTextAlign =
      StructureTextAlignStart
    {- ^
    /No description available in the introspection data./
    -}
    | StructureTextAlignCenter
    {- ^
    /No description available in the introspection data./
    -}
    | StructureTextAlignEnd
    {- ^
    /No description available in the introspection data./
    -}
    | StructureTextAlignJustify
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherStructureTextAlign Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum StructureTextAlign where
    fromEnum StructureTextAlignStart = 0
    fromEnum StructureTextAlignCenter = 1
    fromEnum StructureTextAlignEnd = 2
    fromEnum StructureTextAlignJustify = 3
    fromEnum (AnotherStructureTextAlign k) = k

    toEnum 0 = StructureTextAlignStart
    toEnum 1 = StructureTextAlignCenter
    toEnum 2 = StructureTextAlignEnd
    toEnum 3 = StructureTextAlignJustify
    toEnum k = AnotherStructureTextAlign k

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

foreign import ccall "poppler_structure_text_align_get_type" c_poppler_structure_text_align_get_type ::
    IO GType

instance BoxedEnum StructureTextAlign where
    boxedEnumType _ = c_poppler_structure_text_align_get_type

-- Enum StructureTableScope
{- |
/No description available in the introspection data./
-}
data StructureTableScope =
      StructureTableScopeRow
    {- ^
    /No description available in the introspection data./
    -}
    | StructureTableScopeColumn
    {- ^
    /No description available in the introspection data./
    -}
    | StructureTableScopeBoth
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherStructureTableScope Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum StructureTableScope where
    fromEnum StructureTableScopeRow = 0
    fromEnum StructureTableScopeColumn = 1
    fromEnum StructureTableScopeBoth = 2
    fromEnum (AnotherStructureTableScope k) = k

    toEnum 0 = StructureTableScopeRow
    toEnum 1 = StructureTableScopeColumn
    toEnum 2 = StructureTableScopeBoth
    toEnum k = AnotherStructureTableScope k

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

foreign import ccall "poppler_structure_table_scope_get_type" c_poppler_structure_table_scope_get_type ::
    IO GType

instance BoxedEnum StructureTableScope where
    boxedEnumType _ = c_poppler_structure_table_scope_get_type

-- Enum StructureRubyPosition
{- |
/No description available in the introspection data./
-}
data StructureRubyPosition =
      StructureRubyPositionBefore
    {- ^
    /No description available in the introspection data./
    -}
    | StructureRubyPositionAfter
    {- ^
    /No description available in the introspection data./
    -}
    | StructureRubyPositionWarichu
    {- ^
    /No description available in the introspection data./
    -}
    | StructureRubyPositionInline
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherStructureRubyPosition Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum StructureRubyPosition where
    fromEnum StructureRubyPositionBefore = 0
    fromEnum StructureRubyPositionAfter = 1
    fromEnum StructureRubyPositionWarichu = 2
    fromEnum StructureRubyPositionInline = 3
    fromEnum (AnotherStructureRubyPosition k) = k

    toEnum 0 = StructureRubyPositionBefore
    toEnum 1 = StructureRubyPositionAfter
    toEnum 2 = StructureRubyPositionWarichu
    toEnum 3 = StructureRubyPositionInline
    toEnum k = AnotherStructureRubyPosition k

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

foreign import ccall "poppler_structure_ruby_position_get_type" c_poppler_structure_ruby_position_get_type ::
    IO GType

instance BoxedEnum StructureRubyPosition where
    boxedEnumType _ = c_poppler_structure_ruby_position_get_type

-- Enum StructureRubyAlign
{- |
/No description available in the introspection data./
-}
data StructureRubyAlign =
      StructureRubyAlignStart
    {- ^
    /No description available in the introspection data./
    -}
    | StructureRubyAlignCenter
    {- ^
    /No description available in the introspection data./
    -}
    | StructureRubyAlignEnd
    {- ^
    /No description available in the introspection data./
    -}
    | StructureRubyAlignJustify
    {- ^
    /No description available in the introspection data./
    -}
    | StructureRubyAlignDistribute
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherStructureRubyAlign Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum StructureRubyAlign where
    fromEnum StructureRubyAlignStart = 0
    fromEnum StructureRubyAlignCenter = 1
    fromEnum StructureRubyAlignEnd = 2
    fromEnum StructureRubyAlignJustify = 3
    fromEnum StructureRubyAlignDistribute = 4
    fromEnum (AnotherStructureRubyAlign k) = k

    toEnum 0 = StructureRubyAlignStart
    toEnum 1 = StructureRubyAlignCenter
    toEnum 2 = StructureRubyAlignEnd
    toEnum 3 = StructureRubyAlignJustify
    toEnum 4 = StructureRubyAlignDistribute
    toEnum k = AnotherStructureRubyAlign k

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

foreign import ccall "poppler_structure_ruby_align_get_type" c_poppler_structure_ruby_align_get_type ::
    IO GType

instance BoxedEnum StructureRubyAlign where
    boxedEnumType _ = c_poppler_structure_ruby_align_get_type

-- Enum StructurePlacement
{- |
/No description available in the introspection data./
-}
data StructurePlacement =
      StructurePlacementBlock
    {- ^
    /No description available in the introspection data./
    -}
    | StructurePlacementInline
    {- ^
    /No description available in the introspection data./
    -}
    | StructurePlacementBefore
    {- ^
    /No description available in the introspection data./
    -}
    | StructurePlacementStart
    {- ^
    /No description available in the introspection data./
    -}
    | StructurePlacementEnd
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherStructurePlacement Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum StructurePlacement where
    fromEnum StructurePlacementBlock = 0
    fromEnum StructurePlacementInline = 1
    fromEnum StructurePlacementBefore = 2
    fromEnum StructurePlacementStart = 3
    fromEnum StructurePlacementEnd = 4
    fromEnum (AnotherStructurePlacement k) = k

    toEnum 0 = StructurePlacementBlock
    toEnum 1 = StructurePlacementInline
    toEnum 2 = StructurePlacementBefore
    toEnum 3 = StructurePlacementStart
    toEnum 4 = StructurePlacementEnd
    toEnum k = AnotherStructurePlacement k

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

foreign import ccall "poppler_structure_placement_get_type" c_poppler_structure_placement_get_type ::
    IO GType

instance BoxedEnum StructurePlacement where
    boxedEnumType _ = c_poppler_structure_placement_get_type

-- Enum StructureListNumbering
{- |
/No description available in the introspection data./
-}
data StructureListNumbering =
      StructureListNumberingNone
    {- ^
    /No description available in the introspection data./
    -}
    | StructureListNumberingDisc
    {- ^
    /No description available in the introspection data./
    -}
    | StructureListNumberingCircle
    {- ^
    /No description available in the introspection data./
    -}
    | StructureListNumberingSquare
    {- ^
    /No description available in the introspection data./
    -}
    | StructureListNumberingDecimal
    {- ^
    /No description available in the introspection data./
    -}
    | StructureListNumberingUpperRoman
    {- ^
    /No description available in the introspection data./
    -}
    | StructureListNumberingLowerRoman
    {- ^
    /No description available in the introspection data./
    -}
    | StructureListNumberingUpperAlpha
    {- ^
    /No description available in the introspection data./
    -}
    | StructureListNumberingLowerAlpha
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherStructureListNumbering Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum StructureListNumbering where
    fromEnum StructureListNumberingNone = 0
    fromEnum StructureListNumberingDisc = 1
    fromEnum StructureListNumberingCircle = 2
    fromEnum StructureListNumberingSquare = 3
    fromEnum StructureListNumberingDecimal = 4
    fromEnum StructureListNumberingUpperRoman = 5
    fromEnum StructureListNumberingLowerRoman = 6
    fromEnum StructureListNumberingUpperAlpha = 7
    fromEnum StructureListNumberingLowerAlpha = 8
    fromEnum (AnotherStructureListNumbering k) = k

    toEnum 0 = StructureListNumberingNone
    toEnum 1 = StructureListNumberingDisc
    toEnum 2 = StructureListNumberingCircle
    toEnum 3 = StructureListNumberingSquare
    toEnum 4 = StructureListNumberingDecimal
    toEnum 5 = StructureListNumberingUpperRoman
    toEnum 6 = StructureListNumberingLowerRoman
    toEnum 7 = StructureListNumberingUpperAlpha
    toEnum 8 = StructureListNumberingLowerAlpha
    toEnum k = AnotherStructureListNumbering k

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

foreign import ccall "poppler_structure_list_numbering_get_type" c_poppler_structure_list_numbering_get_type ::
    IO GType

instance BoxedEnum StructureListNumbering where
    boxedEnumType _ = c_poppler_structure_list_numbering_get_type

-- Enum StructureInlineAlign
{- |
/No description available in the introspection data./
-}
data StructureInlineAlign =
      StructureInlineAlignStart
    {- ^
    /No description available in the introspection data./
    -}
    | StructureInlineAlignCenter
    {- ^
    /No description available in the introspection data./
    -}
    | StructureInlineAlignEnd
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherStructureInlineAlign Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum StructureInlineAlign where
    fromEnum StructureInlineAlignStart = 0
    fromEnum StructureInlineAlignCenter = 1
    fromEnum StructureInlineAlignEnd = 2
    fromEnum (AnotherStructureInlineAlign k) = k

    toEnum 0 = StructureInlineAlignStart
    toEnum 1 = StructureInlineAlignCenter
    toEnum 2 = StructureInlineAlignEnd
    toEnum k = AnotherStructureInlineAlign k

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

foreign import ccall "poppler_structure_inline_align_get_type" c_poppler_structure_inline_align_get_type ::
    IO GType

instance BoxedEnum StructureInlineAlign where
    boxedEnumType _ = c_poppler_structure_inline_align_get_type

-- Enum StructureGlyphOrientation
{- |
/No description available in the introspection data./
-}
data StructureGlyphOrientation =
      StructureGlyphOrientationAuto
    {- ^
    /No description available in the introspection data./
    -}
    | StructureGlyphOrientation0
    {- ^
    /No description available in the introspection data./
    -}
    | StructureGlyphOrientation90
    {- ^
    /No description available in the introspection data./
    -}
    | StructureGlyphOrientation180
    {- ^
    /No description available in the introspection data./
    -}
    | StructureGlyphOrientation270
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherStructureGlyphOrientation Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum StructureGlyphOrientation where
    fromEnum StructureGlyphOrientationAuto = 0
    fromEnum StructureGlyphOrientation0 = 0
    fromEnum StructureGlyphOrientation90 = 1
    fromEnum StructureGlyphOrientation180 = 2
    fromEnum StructureGlyphOrientation270 = 3
    fromEnum (AnotherStructureGlyphOrientation k) = k

    toEnum 0 = StructureGlyphOrientationAuto
    toEnum 1 = StructureGlyphOrientation90
    toEnum 2 = StructureGlyphOrientation180
    toEnum 3 = StructureGlyphOrientation270
    toEnum k = AnotherStructureGlyphOrientation k

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

foreign import ccall "poppler_structure_glyph_orientation_get_type" c_poppler_structure_glyph_orientation_get_type ::
    IO GType

instance BoxedEnum StructureGlyphOrientation where
    boxedEnumType _ = c_poppler_structure_glyph_orientation_get_type

-- Enum StructureFormState
{- |
/No description available in the introspection data./
-}
data StructureFormState =
      StructureFormStateOn
    {- ^
    /No description available in the introspection data./
    -}
    | StructureFormStateOff
    {- ^
    /No description available in the introspection data./
    -}
    | StructureFormStateNeutral
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherStructureFormState Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum StructureFormState where
    fromEnum StructureFormStateOn = 0
    fromEnum StructureFormStateOff = 1
    fromEnum StructureFormStateNeutral = 2
    fromEnum (AnotherStructureFormState k) = k

    toEnum 0 = StructureFormStateOn
    toEnum 1 = StructureFormStateOff
    toEnum 2 = StructureFormStateNeutral
    toEnum k = AnotherStructureFormState k

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

foreign import ccall "poppler_structure_form_state_get_type" c_poppler_structure_form_state_get_type ::
    IO GType

instance BoxedEnum StructureFormState where
    boxedEnumType _ = c_poppler_structure_form_state_get_type

-- Enum StructureFormRole
{- |
/No description available in the introspection data./
-}
data StructureFormRole =
      StructureFormRoleUndefined
    {- ^
    /No description available in the introspection data./
    -}
    | StructureFormRoleRadioButton
    {- ^
    /No description available in the introspection data./
    -}
    | StructureFormRolePushButton
    {- ^
    /No description available in the introspection data./
    -}
    | StructureFormRoleTextValue
    {- ^
    /No description available in the introspection data./
    -}
    | StructureFormRoleCheckbox
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherStructureFormRole Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum StructureFormRole where
    fromEnum StructureFormRoleUndefined = 0
    fromEnum StructureFormRoleRadioButton = 1
    fromEnum StructureFormRolePushButton = 2
    fromEnum StructureFormRoleTextValue = 3
    fromEnum StructureFormRoleCheckbox = 4
    fromEnum (AnotherStructureFormRole k) = k

    toEnum 0 = StructureFormRoleUndefined
    toEnum 1 = StructureFormRoleRadioButton
    toEnum 2 = StructureFormRolePushButton
    toEnum 3 = StructureFormRoleTextValue
    toEnum 4 = StructureFormRoleCheckbox
    toEnum k = AnotherStructureFormRole k

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

foreign import ccall "poppler_structure_form_role_get_type" c_poppler_structure_form_role_get_type ::
    IO GType

instance BoxedEnum StructureFormRole where
    boxedEnumType _ = c_poppler_structure_form_role_get_type

-- Enum StructureElementKind
{- |
/No description available in the introspection data./
-}
data StructureElementKind =
      StructureElementKindContent
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindObjectReference
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindDocument
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindPart
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindArticle
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindSection
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindDiv
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindSpan
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindQuote
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindNote
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindReference
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindBibentry
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindCode
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindLink
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindAnnot
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindBlockquote
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindCaption
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindNonstruct
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindToc
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindTocItem
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindIndex
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindPrivate
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindParagraph
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindHeading
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindHeading1
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindHeading2
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindHeading3
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindHeading4
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindHeading5
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindHeading6
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindList
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindListItem
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindListLabel
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindListBody
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindTable
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindTableRow
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindTableHeading
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindTableData
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindTableHeader
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindTableFooter
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindTableBody
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindRuby
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindRubyBaseText
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindRubyAnnotText
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindRubyPunctuation
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindWarichu
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindWarichuText
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindWarichuPunctuation
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindFigure
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindFormula
    {- ^
    /No description available in the introspection data./
    -}
    | StructureElementKindForm
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherStructureElementKind Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum StructureElementKind where
    fromEnum StructureElementKindContent = 0
    fromEnum StructureElementKindObjectReference = 1
    fromEnum StructureElementKindDocument = 2
    fromEnum StructureElementKindPart = 3
    fromEnum StructureElementKindArticle = 4
    fromEnum StructureElementKindSection = 5
    fromEnum StructureElementKindDiv = 6
    fromEnum StructureElementKindSpan = 7
    fromEnum StructureElementKindQuote = 8
    fromEnum StructureElementKindNote = 9
    fromEnum StructureElementKindReference = 10
    fromEnum StructureElementKindBibentry = 11
    fromEnum StructureElementKindCode = 12
    fromEnum StructureElementKindLink = 13
    fromEnum StructureElementKindAnnot = 14
    fromEnum StructureElementKindBlockquote = 15
    fromEnum StructureElementKindCaption = 16
    fromEnum StructureElementKindNonstruct = 17
    fromEnum StructureElementKindToc = 18
    fromEnum StructureElementKindTocItem = 19
    fromEnum StructureElementKindIndex = 20
    fromEnum StructureElementKindPrivate = 21
    fromEnum StructureElementKindParagraph = 22
    fromEnum StructureElementKindHeading = 23
    fromEnum StructureElementKindHeading1 = 24
    fromEnum StructureElementKindHeading2 = 25
    fromEnum StructureElementKindHeading3 = 26
    fromEnum StructureElementKindHeading4 = 27
    fromEnum StructureElementKindHeading5 = 28
    fromEnum StructureElementKindHeading6 = 29
    fromEnum StructureElementKindList = 30
    fromEnum StructureElementKindListItem = 31
    fromEnum StructureElementKindListLabel = 32
    fromEnum StructureElementKindListBody = 33
    fromEnum StructureElementKindTable = 34
    fromEnum StructureElementKindTableRow = 35
    fromEnum StructureElementKindTableHeading = 36
    fromEnum StructureElementKindTableData = 37
    fromEnum StructureElementKindTableHeader = 38
    fromEnum StructureElementKindTableFooter = 39
    fromEnum StructureElementKindTableBody = 40
    fromEnum StructureElementKindRuby = 41
    fromEnum StructureElementKindRubyBaseText = 42
    fromEnum StructureElementKindRubyAnnotText = 43
    fromEnum StructureElementKindRubyPunctuation = 44
    fromEnum StructureElementKindWarichu = 45
    fromEnum StructureElementKindWarichuText = 46
    fromEnum StructureElementKindWarichuPunctuation = 47
    fromEnum StructureElementKindFigure = 48
    fromEnum StructureElementKindFormula = 49
    fromEnum StructureElementKindForm = 50
    fromEnum (AnotherStructureElementKind k) = k

    toEnum 0 = StructureElementKindContent
    toEnum 1 = StructureElementKindObjectReference
    toEnum 2 = StructureElementKindDocument
    toEnum 3 = StructureElementKindPart
    toEnum 4 = StructureElementKindArticle
    toEnum 5 = StructureElementKindSection
    toEnum 6 = StructureElementKindDiv
    toEnum 7 = StructureElementKindSpan
    toEnum 8 = StructureElementKindQuote
    toEnum 9 = StructureElementKindNote
    toEnum 10 = StructureElementKindReference
    toEnum 11 = StructureElementKindBibentry
    toEnum 12 = StructureElementKindCode
    toEnum 13 = StructureElementKindLink
    toEnum 14 = StructureElementKindAnnot
    toEnum 15 = StructureElementKindBlockquote
    toEnum 16 = StructureElementKindCaption
    toEnum 17 = StructureElementKindNonstruct
    toEnum 18 = StructureElementKindToc
    toEnum 19 = StructureElementKindTocItem
    toEnum 20 = StructureElementKindIndex
    toEnum 21 = StructureElementKindPrivate
    toEnum 22 = StructureElementKindParagraph
    toEnum 23 = StructureElementKindHeading
    toEnum 24 = StructureElementKindHeading1
    toEnum 25 = StructureElementKindHeading2
    toEnum 26 = StructureElementKindHeading3
    toEnum 27 = StructureElementKindHeading4
    toEnum 28 = StructureElementKindHeading5
    toEnum 29 = StructureElementKindHeading6
    toEnum 30 = StructureElementKindList
    toEnum 31 = StructureElementKindListItem
    toEnum 32 = StructureElementKindListLabel
    toEnum 33 = StructureElementKindListBody
    toEnum 34 = StructureElementKindTable
    toEnum 35 = StructureElementKindTableRow
    toEnum 36 = StructureElementKindTableHeading
    toEnum 37 = StructureElementKindTableData
    toEnum 38 = StructureElementKindTableHeader
    toEnum 39 = StructureElementKindTableFooter
    toEnum 40 = StructureElementKindTableBody
    toEnum 41 = StructureElementKindRuby
    toEnum 42 = StructureElementKindRubyBaseText
    toEnum 43 = StructureElementKindRubyAnnotText
    toEnum 44 = StructureElementKindRubyPunctuation
    toEnum 45 = StructureElementKindWarichu
    toEnum 46 = StructureElementKindWarichuText
    toEnum 47 = StructureElementKindWarichuPunctuation
    toEnum 48 = StructureElementKindFigure
    toEnum 49 = StructureElementKindFormula
    toEnum 50 = StructureElementKindForm
    toEnum k = AnotherStructureElementKind k

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

foreign import ccall "poppler_structure_element_kind_get_type" c_poppler_structure_element_kind_get_type ::
    IO GType

instance BoxedEnum StructureElementKind where
    boxedEnumType _ = c_poppler_structure_element_kind_get_type

-- Enum StructureBorderStyle
{- |
/No description available in the introspection data./
-}
data StructureBorderStyle =
      StructureBorderStyleNone
    {- ^
    /No description available in the introspection data./
    -}
    | StructureBorderStyleHidden
    {- ^
    /No description available in the introspection data./
    -}
    | StructureBorderStyleDotted
    {- ^
    /No description available in the introspection data./
    -}
    | StructureBorderStyleDashed
    {- ^
    /No description available in the introspection data./
    -}
    | StructureBorderStyleSolid
    {- ^
    /No description available in the introspection data./
    -}
    | StructureBorderStyleDouble
    {- ^
    /No description available in the introspection data./
    -}
    | StructureBorderStyleGroove
    {- ^
    /No description available in the introspection data./
    -}
    | StructureBorderStyleInset
    {- ^
    /No description available in the introspection data./
    -}
    | StructureBorderStyleOutset
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherStructureBorderStyle Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum StructureBorderStyle where
    fromEnum StructureBorderStyleNone = 0
    fromEnum StructureBorderStyleHidden = 1
    fromEnum StructureBorderStyleDotted = 2
    fromEnum StructureBorderStyleDashed = 3
    fromEnum StructureBorderStyleSolid = 4
    fromEnum StructureBorderStyleDouble = 5
    fromEnum StructureBorderStyleGroove = 6
    fromEnum StructureBorderStyleInset = 7
    fromEnum StructureBorderStyleOutset = 8
    fromEnum (AnotherStructureBorderStyle k) = k

    toEnum 0 = StructureBorderStyleNone
    toEnum 1 = StructureBorderStyleHidden
    toEnum 2 = StructureBorderStyleDotted
    toEnum 3 = StructureBorderStyleDashed
    toEnum 4 = StructureBorderStyleSolid
    toEnum 5 = StructureBorderStyleDouble
    toEnum 6 = StructureBorderStyleGroove
    toEnum 7 = StructureBorderStyleInset
    toEnum 8 = StructureBorderStyleOutset
    toEnum k = AnotherStructureBorderStyle k

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

foreign import ccall "poppler_structure_border_style_get_type" c_poppler_structure_border_style_get_type ::
    IO GType

instance BoxedEnum StructureBorderStyle where
    boxedEnumType _ = c_poppler_structure_border_style_get_type

-- Enum StructureBlockAlign
{- |
/No description available in the introspection data./
-}
data StructureBlockAlign =
      StructureBlockAlignBefore
    {- ^
    /No description available in the introspection data./
    -}
    | StructureBlockAlignMiddle
    {- ^
    /No description available in the introspection data./
    -}
    | StructureBlockAlignAfter
    {- ^
    /No description available in the introspection data./
    -}
    | StructureBlockAlignJustify
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherStructureBlockAlign Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum StructureBlockAlign where
    fromEnum StructureBlockAlignBefore = 0
    fromEnum StructureBlockAlignMiddle = 1
    fromEnum StructureBlockAlignAfter = 2
    fromEnum StructureBlockAlignJustify = 3
    fromEnum (AnotherStructureBlockAlign k) = k

    toEnum 0 = StructureBlockAlignBefore
    toEnum 1 = StructureBlockAlignMiddle
    toEnum 2 = StructureBlockAlignAfter
    toEnum 3 = StructureBlockAlignJustify
    toEnum k = AnotherStructureBlockAlign k

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

foreign import ccall "poppler_structure_block_align_get_type" c_poppler_structure_block_align_get_type ::
    IO GType

instance BoxedEnum StructureBlockAlign where
    boxedEnumType _ = c_poppler_structure_block_align_get_type

-- Enum SelectionStyle
{- |
Selection styles
-}
data SelectionStyle =
      SelectionStyleGlyph
    {- ^
    glyph is the minimum unit for selection
    -}
    | SelectionStyleWord
    {- ^
    word is the minimum unit for selection
    -}
    | SelectionStyleLine
    {- ^
    line is the minimum unit for selection
    -}
    | AnotherSelectionStyle Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum SelectionStyle where
    fromEnum SelectionStyleGlyph = 0
    fromEnum SelectionStyleWord = 1
    fromEnum SelectionStyleLine = 2
    fromEnum (AnotherSelectionStyle k) = k

    toEnum 0 = SelectionStyleGlyph
    toEnum 1 = SelectionStyleWord
    toEnum 2 = SelectionStyleLine
    toEnum k = AnotherSelectionStyle k

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

foreign import ccall "poppler_selection_style_get_type" c_poppler_selection_style_get_type ::
    IO GType

instance BoxedEnum SelectionStyle where
    boxedEnumType _ = c_poppler_selection_style_get_type

-- Enum PrintScaling
{- |
PrintScaling viewer preference

/Since: 0.73/
-}
data PrintScaling =
      PrintScalingAppDefault
    {- ^
    application\'s default page scaling
    -}
    | PrintScalingNone
    {- ^
    no page scaling
    -}
    | AnotherPrintScaling Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum PrintScaling where
    fromEnum PrintScalingAppDefault = 0
    fromEnum PrintScalingNone = 1
    fromEnum (AnotherPrintScaling k) = k

    toEnum 0 = PrintScalingAppDefault
    toEnum 1 = PrintScalingNone
    toEnum k = AnotherPrintScaling k

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

foreign import ccall "poppler_print_scaling_get_type" c_poppler_print_scaling_get_type ::
    IO GType

instance BoxedEnum PrintScaling where
    boxedEnumType _ = c_poppler_print_scaling_get_type

-- Enum PageTransitionType
{- |
Page transition types
-}
data PageTransitionType =
      PageTransitionTypeReplace
    {- ^
    the new page replace the old one
    -}
    | PageTransitionTypeSplit
    {- ^
    two lines sweep across the screen, revealing the new page
    -}
    | PageTransitionTypeBlinds
    {- ^
    multiple lines, evenly spaced across the screen, synchronously
    sweep in the same direction to reveal the new page
    -}
    | PageTransitionTypeBox
    {- ^
    a rectangular box sweeps inward from the edges of the page or
    outward from the center revealing the new page
    -}
    | PageTransitionTypeWipe
    {- ^
    a single line sweeps across the screen from one edge to the other
    revealing the new page
    -}
    | PageTransitionTypeDissolve
    {- ^
    the old page dissolves gradually to reveal the new one
    -}
    | PageTransitionTypeGlitter
    {- ^
    similar to @/POPPLER_PAGE_TRANSITION_DISSOLVE/@, except that the effect
    sweeps across the page in a wide band moving from one side of the screen to the other
    -}
    | PageTransitionTypeFly
    {- ^
    changes are flown out or in to or from a location that is offscreen
    -}
    | PageTransitionTypePush
    {- ^
    the old page slides off the screen while the new page slides in
    -}
    | PageTransitionTypeCover
    {- ^
    the new page slides on to the screen covering the old page
    -}
    | PageTransitionTypeUncover
    {- ^
    the old page slides off the screen uncovering the new page
    -}
    | PageTransitionTypeFade
    {- ^
    the new page gradually becomes visible through the old one
    -}
    | AnotherPageTransitionType Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum PageTransitionType where
    fromEnum PageTransitionTypeReplace = 0
    fromEnum PageTransitionTypeSplit = 1
    fromEnum PageTransitionTypeBlinds = 2
    fromEnum PageTransitionTypeBox = 3
    fromEnum PageTransitionTypeWipe = 4
    fromEnum PageTransitionTypeDissolve = 5
    fromEnum PageTransitionTypeGlitter = 6
    fromEnum PageTransitionTypeFly = 7
    fromEnum PageTransitionTypePush = 8
    fromEnum PageTransitionTypeCover = 9
    fromEnum PageTransitionTypeUncover = 10
    fromEnum PageTransitionTypeFade = 11
    fromEnum (AnotherPageTransitionType k) = k

    toEnum 0 = PageTransitionTypeReplace
    toEnum 1 = PageTransitionTypeSplit
    toEnum 2 = PageTransitionTypeBlinds
    toEnum 3 = PageTransitionTypeBox
    toEnum 4 = PageTransitionTypeWipe
    toEnum 5 = PageTransitionTypeDissolve
    toEnum 6 = PageTransitionTypeGlitter
    toEnum 7 = PageTransitionTypeFly
    toEnum 8 = PageTransitionTypePush
    toEnum 9 = PageTransitionTypeCover
    toEnum 10 = PageTransitionTypeUncover
    toEnum 11 = PageTransitionTypeFade
    toEnum k = AnotherPageTransitionType k

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

foreign import ccall "poppler_page_transition_type_get_type" c_poppler_page_transition_type_get_type ::
    IO GType

instance BoxedEnum PageTransitionType where
    boxedEnumType _ = c_poppler_page_transition_type_get_type

-- Enum PageTransitionDirection
{- |
Page transition direction types for @/POPPLER_PAGE_TRANSITION_SPLIT/@,
@/POPPLER_PAGE_TRANSITION_BOX/@ and @/POPPLER_PAGE_TRANSITION_FLY/@ transition types
-}
data PageTransitionDirection =
      PageTransitionDirectionInward
    {- ^
    inward from the edges of the page
    -}
    | PageTransitionDirectionOutward
    {- ^
    outward from the center of the page
    -}
    | AnotherPageTransitionDirection Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum PageTransitionDirection where
    fromEnum PageTransitionDirectionInward = 0
    fromEnum PageTransitionDirectionOutward = 1
    fromEnum (AnotherPageTransitionDirection k) = k

    toEnum 0 = PageTransitionDirectionInward
    toEnum 1 = PageTransitionDirectionOutward
    toEnum k = AnotherPageTransitionDirection k

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

foreign import ccall "poppler_page_transition_direction_get_type" c_poppler_page_transition_direction_get_type ::
    IO GType

instance BoxedEnum PageTransitionDirection where
    boxedEnumType _ = c_poppler_page_transition_direction_get_type

-- Enum PageTransitionAlignment
{- |
Page transition alignment types for @/POPPLER_PAGE_TRANSITION_SPLIT/@
and @/POPPLER_PAGE_TRANSITION_BLINDS/@ transition types
-}
data PageTransitionAlignment =
      PageTransitionAlignmentHorizontal
    {- ^
    horizontal dimension
    -}
    | PageTransitionAlignmentVertical
    {- ^
    vertical dimension
    -}
    | AnotherPageTransitionAlignment Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum PageTransitionAlignment where
    fromEnum PageTransitionAlignmentHorizontal = 0
    fromEnum PageTransitionAlignmentVertical = 1
    fromEnum (AnotherPageTransitionAlignment k) = k

    toEnum 0 = PageTransitionAlignmentHorizontal
    toEnum 1 = PageTransitionAlignmentVertical
    toEnum k = AnotherPageTransitionAlignment k

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

foreign import ccall "poppler_page_transition_alignment_get_type" c_poppler_page_transition_alignment_get_type ::
    IO GType

instance BoxedEnum PageTransitionAlignment where
    boxedEnumType _ = c_poppler_page_transition_alignment_get_type

-- Enum PageMode
{- |
Page modes
-}
data PageMode =
      PageModeUnset
    {- ^
    no specific mode set
    -}
    | PageModeNone
    {- ^
    neither document outline nor thumbnails visible
    -}
    | PageModeUseOutlines
    {- ^
    document outline visible
    -}
    | PageModeUseThumbs
    {- ^
    thumbnails visible
    -}
    | PageModeFullScreen
    {- ^
    full-screen mode
    -}
    | PageModeUseOc
    {- ^
    layers panel visible
    -}
    | PageModeUseAttachments
    {- ^
    attachments panel visible
    -}
    | AnotherPageMode Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum PageMode where
    fromEnum PageModeUnset = 0
    fromEnum PageModeNone = 1
    fromEnum PageModeUseOutlines = 2
    fromEnum PageModeUseThumbs = 3
    fromEnum PageModeFullScreen = 4
    fromEnum PageModeUseOc = 5
    fromEnum PageModeUseAttachments = 6
    fromEnum (AnotherPageMode k) = k

    toEnum 0 = PageModeUnset
    toEnum 1 = PageModeNone
    toEnum 2 = PageModeUseOutlines
    toEnum 3 = PageModeUseThumbs
    toEnum 4 = PageModeFullScreen
    toEnum 5 = PageModeUseOc
    toEnum 6 = PageModeUseAttachments
    toEnum k = AnotherPageMode k

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

foreign import ccall "poppler_page_mode_get_type" c_poppler_page_mode_get_type ::
    IO GType

instance BoxedEnum PageMode where
    boxedEnumType _ = c_poppler_page_mode_get_type

-- Enum PageLayout
{- |
Page layout types
-}
data PageLayout =
      PageLayoutUnset
    {- ^
    no specific layout set
    -}
    | PageLayoutSinglePage
    {- ^
    one page at a time
    -}
    | PageLayoutOneColumn
    {- ^
    pages in one column
    -}
    | PageLayoutTwoColumnLeft
    {- ^
    pages in two columns with odd numbered pages on the left
    -}
    | PageLayoutTwoColumnRight
    {- ^
    pages in two columns with odd numbered pages on the right
    -}
    | PageLayoutTwoPageLeft
    {- ^
    two pages at a time with odd numbered pages on the left
    -}
    | PageLayoutTwoPageRight
    {- ^
    two pages at a time with odd numbered pages on the right
    -}
    | AnotherPageLayout Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum PageLayout where
    fromEnum PageLayoutUnset = 0
    fromEnum PageLayoutSinglePage = 1
    fromEnum PageLayoutOneColumn = 2
    fromEnum PageLayoutTwoColumnLeft = 3
    fromEnum PageLayoutTwoColumnRight = 4
    fromEnum PageLayoutTwoPageLeft = 5
    fromEnum PageLayoutTwoPageRight = 6
    fromEnum (AnotherPageLayout k) = k

    toEnum 0 = PageLayoutUnset
    toEnum 1 = PageLayoutSinglePage
    toEnum 2 = PageLayoutOneColumn
    toEnum 3 = PageLayoutTwoColumnLeft
    toEnum 4 = PageLayoutTwoColumnRight
    toEnum 5 = PageLayoutTwoPageLeft
    toEnum 6 = PageLayoutTwoPageRight
    toEnum k = AnotherPageLayout k

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

foreign import ccall "poppler_page_layout_get_type" c_poppler_page_layout_get_type ::
    IO GType

instance BoxedEnum PageLayout where
    boxedEnumType _ = c_poppler_page_layout_get_type

-- Enum PDFSubtype
{- |
PDF Subtype

/Since: 0.70/
-}
data PDFSubtype =
      PDFSubtypeUnset
    {- ^
    Null
    -}
    | PDFSubtypePdfA
    {- ^
    ISO 19005 - Document management -- Electronic document file format for long-term preservation (PDF\/A)
    -}
    | PDFSubtypePdfE
    {- ^
    ISO 24517 - Document management -- Engineering document format using PDF (PDF\/E)
    -}
    | PDFSubtypePdfUa
    {- ^
    ISO 14289 - Document management applications -- Electronic document file format enhancement for accessibility (PDF\/UA)
    -}
    | PDFSubtypePdfVt
    {- ^
    ISO 16612 - Graphic technology -- Variable data exchange (PDF\/VT)
    -}
    | PDFSubtypePdfX
    {- ^
    ISO 15930 - Graphic technology -- Prepress digital data exchange (PDF\/X)
    -}
    | PDFSubtypeNone
    {- ^
    Not compliant with the above standards
    -}
    | AnotherPDFSubtype Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum PDFSubtype where
    fromEnum PDFSubtypeUnset = 0
    fromEnum PDFSubtypePdfA = 1
    fromEnum PDFSubtypePdfE = 2
    fromEnum PDFSubtypePdfUa = 3
    fromEnum PDFSubtypePdfVt = 4
    fromEnum PDFSubtypePdfX = 5
    fromEnum PDFSubtypeNone = 6
    fromEnum (AnotherPDFSubtype k) = k

    toEnum 0 = PDFSubtypeUnset
    toEnum 1 = PDFSubtypePdfA
    toEnum 2 = PDFSubtypePdfE
    toEnum 3 = PDFSubtypePdfUa
    toEnum 4 = PDFSubtypePdfVt
    toEnum 5 = PDFSubtypePdfX
    toEnum 6 = PDFSubtypeNone
    toEnum k = AnotherPDFSubtype k

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

foreign import ccall "poppler_pdf_subtype_get_type" c_poppler_pdf_subtype_get_type ::
    IO GType

instance BoxedEnum PDFSubtype where
    boxedEnumType _ = c_poppler_pdf_subtype_get_type

-- Enum PDFPart
{- |
PDF Subtype Part

/Since: 0.70/
-}
data PDFPart =
      PDFPartUnset
    {- ^
    Null
    -}
    | PDFPart1
    {- ^
    1
    -}
    | PDFPart2
    {- ^
    2
    -}
    | PDFPart3
    {- ^
    3
    -}
    | PDFPart4
    {- ^
    4
    -}
    | PDFPart5
    {- ^
    5
    -}
    | PDFPart6
    {- ^
    6
    -}
    | PDFPart7
    {- ^
    7
    -}
    | PDFPart8
    {- ^
    8
    -}
    | PDFPartNone
    {- ^
    No part available
    -}
    | AnotherPDFPart Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum PDFPart where
    fromEnum PDFPartUnset = 0
    fromEnum PDFPart1 = 1
    fromEnum PDFPart2 = 2
    fromEnum PDFPart3 = 3
    fromEnum PDFPart4 = 4
    fromEnum PDFPart5 = 5
    fromEnum PDFPart6 = 6
    fromEnum PDFPart7 = 7
    fromEnum PDFPart8 = 8
    fromEnum PDFPartNone = 9
    fromEnum (AnotherPDFPart k) = k

    toEnum 0 = PDFPartUnset
    toEnum 1 = PDFPart1
    toEnum 2 = PDFPart2
    toEnum 3 = PDFPart3
    toEnum 4 = PDFPart4
    toEnum 5 = PDFPart5
    toEnum 6 = PDFPart6
    toEnum 7 = PDFPart7
    toEnum 8 = PDFPart8
    toEnum 9 = PDFPartNone
    toEnum k = AnotherPDFPart k

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

foreign import ccall "poppler_pdf_part_get_type" c_poppler_pdf_part_get_type ::
    IO GType

instance BoxedEnum PDFPart where
    boxedEnumType _ = c_poppler_pdf_part_get_type

-- Enum PDFConformance
{- |
PDF Subtype Conformance

/Since: 0.70/
-}
data PDFConformance =
      PDFConformanceUnset
    {- ^
    Null
    -}
    | PDFConformanceA
    {- ^
    Level A (accessible) conformance (PDF\/A)
    -}
    | PDFConformanceB
    {- ^
    Level B (basic) conformance (PDF\/A)
    -}
    | PDFConformanceG
    {- ^
    Level G (external graphical content) (PDF\/X)
    -}
    | PDFConformanceN
    {- ^
    Level N (external ICC Profile) (PDF\/X)
    -}
    | PDFConformanceP
    {- ^
    Level P (ICC Profile) (PDF\/X)
    -}
    | PDFConformancePg
    {- ^
    Level PG (conjunction of P and G) (PDF\/X)
    -}
    | PDFConformanceU
    {- ^
    Level U (Unicode) conformance (PDF\/A)
    -}
    | PDFConformanceNone
    {- ^
    No conformance level available
    -}
    | AnotherPDFConformance Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum PDFConformance where
    fromEnum PDFConformanceUnset = 0
    fromEnum PDFConformanceA = 1
    fromEnum PDFConformanceB = 2
    fromEnum PDFConformanceG = 3
    fromEnum PDFConformanceN = 4
    fromEnum PDFConformanceP = 5
    fromEnum PDFConformancePg = 6
    fromEnum PDFConformanceU = 7
    fromEnum PDFConformanceNone = 8
    fromEnum (AnotherPDFConformance k) = k

    toEnum 0 = PDFConformanceUnset
    toEnum 1 = PDFConformanceA
    toEnum 2 = PDFConformanceB
    toEnum 3 = PDFConformanceG
    toEnum 4 = PDFConformanceN
    toEnum 5 = PDFConformanceP
    toEnum 6 = PDFConformancePg
    toEnum 7 = PDFConformanceU
    toEnum 8 = PDFConformanceNone
    toEnum k = AnotherPDFConformance k

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

foreign import ccall "poppler_pdf_conformance_get_type" c_poppler_pdf_conformance_get_type ::
    IO GType

instance BoxedEnum PDFConformance where
    boxedEnumType _ = c_poppler_pdf_conformance_get_type

-- Enum MoviePlayMode
{- |
Play mode enum values.

/Since: 0.54/
-}
data MoviePlayMode =
      MoviePlayModeOnce
    {- ^
    the movie should be played once and controls should be closed at the end.
    -}
    | MoviePlayModeOpen
    {- ^
    the movie should be played once, but controls should be left open.
    -}
    | MoviePlayModeRepeat
    {- ^
    the movie should be played in loop, until manually stopped.
    -}
    | MoviePlayModePalindrome
    {- ^
    the movie should be played forward and backward, forward and backward,
      and so forth, until manually stopped.
    -}
    | AnotherMoviePlayMode Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum MoviePlayMode where
    fromEnum MoviePlayModeOnce = 0
    fromEnum MoviePlayModeOpen = 1
    fromEnum MoviePlayModeRepeat = 2
    fromEnum MoviePlayModePalindrome = 3
    fromEnum (AnotherMoviePlayMode k) = k

    toEnum 0 = MoviePlayModeOnce
    toEnum 1 = MoviePlayModeOpen
    toEnum 2 = MoviePlayModeRepeat
    toEnum 3 = MoviePlayModePalindrome
    toEnum k = AnotherMoviePlayMode k

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

foreign import ccall "poppler_movie_play_mode_get_type" c_poppler_movie_play_mode_get_type ::
    IO GType

instance BoxedEnum MoviePlayMode where
    boxedEnumType _ = c_poppler_movie_play_mode_get_type

-- Enum FormTextType
{- |
/No description available in the introspection data./
-}
data FormTextType =
      FormTextTypeNormal
    {- ^
    /No description available in the introspection data./
    -}
    | FormTextTypeMultiline
    {- ^
    /No description available in the introspection data./
    -}
    | FormTextTypeFileSelect
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherFormTextType Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum FormTextType where
    fromEnum FormTextTypeNormal = 0
    fromEnum FormTextTypeMultiline = 1
    fromEnum FormTextTypeFileSelect = 2
    fromEnum (AnotherFormTextType k) = k

    toEnum 0 = FormTextTypeNormal
    toEnum 1 = FormTextTypeMultiline
    toEnum 2 = FormTextTypeFileSelect
    toEnum k = AnotherFormTextType k

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

foreign import ccall "poppler_form_text_type_get_type" c_poppler_form_text_type_get_type ::
    IO GType

instance BoxedEnum FormTextType where
    boxedEnumType _ = c_poppler_form_text_type_get_type

-- Enum FormFieldType
{- |
/No description available in the introspection data./
-}
data FormFieldType =
      FormFieldTypeUnknown
    {- ^
    /No description available in the introspection data./
    -}
    | FormFieldTypeButton
    {- ^
    /No description available in the introspection data./
    -}
    | FormFieldTypeText
    {- ^
    /No description available in the introspection data./
    -}
    | FormFieldTypeChoice
    {- ^
    /No description available in the introspection data./
    -}
    | FormFieldTypeSignature
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherFormFieldType Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum FormFieldType where
    fromEnum FormFieldTypeUnknown = 0
    fromEnum FormFieldTypeButton = 1
    fromEnum FormFieldTypeText = 2
    fromEnum FormFieldTypeChoice = 3
    fromEnum FormFieldTypeSignature = 4
    fromEnum (AnotherFormFieldType k) = k

    toEnum 0 = FormFieldTypeUnknown
    toEnum 1 = FormFieldTypeButton
    toEnum 2 = FormFieldTypeText
    toEnum 3 = FormFieldTypeChoice
    toEnum 4 = FormFieldTypeSignature
    toEnum k = AnotherFormFieldType k

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

foreign import ccall "poppler_form_field_type_get_type" c_poppler_form_field_type_get_type ::
    IO GType

instance BoxedEnum FormFieldType where
    boxedEnumType _ = c_poppler_form_field_type_get_type

-- Enum FormChoiceType
{- |
/No description available in the introspection data./
-}
data FormChoiceType =
      FormChoiceTypeCombo
    {- ^
    /No description available in the introspection data./
    -}
    | FormChoiceTypeList
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherFormChoiceType Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum FormChoiceType where
    fromEnum FormChoiceTypeCombo = 0
    fromEnum FormChoiceTypeList = 1
    fromEnum (AnotherFormChoiceType k) = k

    toEnum 0 = FormChoiceTypeCombo
    toEnum 1 = FormChoiceTypeList
    toEnum k = AnotherFormChoiceType k

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

foreign import ccall "poppler_form_choice_type_get_type" c_poppler_form_choice_type_get_type ::
    IO GType

instance BoxedEnum FormChoiceType where
    boxedEnumType _ = c_poppler_form_choice_type_get_type

-- Enum FormButtonType
{- |
/No description available in the introspection data./
-}
data FormButtonType =
      FormButtonTypePush
    {- ^
    /No description available in the introspection data./
    -}
    | FormButtonTypeCheck
    {- ^
    /No description available in the introspection data./
    -}
    | FormButtonTypeRadio
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherFormButtonType Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum FormButtonType where
    fromEnum FormButtonTypePush = 0
    fromEnum FormButtonTypeCheck = 1
    fromEnum FormButtonTypeRadio = 2
    fromEnum (AnotherFormButtonType k) = k

    toEnum 0 = FormButtonTypePush
    toEnum 1 = FormButtonTypeCheck
    toEnum 2 = FormButtonTypeRadio
    toEnum k = AnotherFormButtonType k

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

foreign import ccall "poppler_form_button_type_get_type" c_poppler_form_button_type_get_type ::
    IO GType

instance BoxedEnum FormButtonType where
    boxedEnumType _ = c_poppler_form_button_type_get_type

-- Enum FontType
{- |
Font types
-}
data FontType =
      FontTypeUnknown
    {- ^
    unknown font type
    -}
    | FontTypeType1
    {- ^
    Type 1 font type
    -}
    | FontTypeType1c
    {- ^
    Type 1 font type embedded in Compact Font Format (CFF) font program
    -}
    | FontTypeType1cot
    {- ^
    Type 1 font type embedded in OpenType font program
    -}
    | FontTypeType3
    {- ^
    A font type that is defined with PDF graphics operators
    -}
    | FontTypeTruetype
    {- ^
    TrueType font type
    -}
    | FontTypeTruetypeot
    {- ^
    TrueType font type embedded in OpenType font program
    -}
    | FontTypeCidType0
    {- ^
    CIDFont type based on Type 1 font technology
    -}
    | FontTypeCidType0c
    {- ^
    CIDFont type based on Type 1 font technology embedded in CFF font program
    -}
    | FontTypeCidType0cot
    {- ^
    CIDFont type based on Type 1 font technology embedded in OpenType font program
    -}
    | FontTypeCidType2
    {- ^
    CIDFont type based on TrueType font technology
    -}
    | FontTypeCidType2ot
    {- ^
    CIDFont type based on TrueType font technology embedded in OpenType font program
    -}
    | AnotherFontType Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum FontType where
    fromEnum FontTypeUnknown = 0
    fromEnum FontTypeType1 = 1
    fromEnum FontTypeType1c = 2
    fromEnum FontTypeType1cot = 3
    fromEnum FontTypeType3 = 4
    fromEnum FontTypeTruetype = 5
    fromEnum FontTypeTruetypeot = 6
    fromEnum FontTypeCidType0 = 7
    fromEnum FontTypeCidType0c = 8
    fromEnum FontTypeCidType0cot = 9
    fromEnum FontTypeCidType2 = 10
    fromEnum FontTypeCidType2ot = 11
    fromEnum (AnotherFontType k) = k

    toEnum 0 = FontTypeUnknown
    toEnum 1 = FontTypeType1
    toEnum 2 = FontTypeType1c
    toEnum 3 = FontTypeType1cot
    toEnum 4 = FontTypeType3
    toEnum 5 = FontTypeTruetype
    toEnum 6 = FontTypeTruetypeot
    toEnum 7 = FontTypeCidType0
    toEnum 8 = FontTypeCidType0c
    toEnum 9 = FontTypeCidType0cot
    toEnum 10 = FontTypeCidType2
    toEnum 11 = FontTypeCidType2ot
    toEnum k = AnotherFontType k

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

foreign import ccall "poppler_font_type_get_type" c_poppler_font_type_get_type ::
    IO GType

instance BoxedEnum FontType where
    boxedEnumType _ = c_poppler_font_type_get_type

-- Enum Error
{- |
Error codes returned by 'GI.Poppler.Objects.Document.Document'
-}
data Error =
      ErrorInvalid
    {- ^
    Generic error when a document operation fails
    -}
    | ErrorEncrypted
    {- ^
    Document is encrypted
    -}
    | ErrorOpenFile
    {- ^
    File could not be opened for writing when saving document
    -}
    | ErrorBadCatalog
    {- ^
    Failed to read the document catalog
    -}
    | ErrorDamaged
    {- ^
    Document is damaged
    -}
    | AnotherError Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum Error where
    fromEnum ErrorInvalid = 0
    fromEnum ErrorEncrypted = 1
    fromEnum ErrorOpenFile = 2
    fromEnum ErrorBadCatalog = 3
    fromEnum ErrorDamaged = 4
    fromEnum (AnotherError k) = k

    toEnum 0 = ErrorInvalid
    toEnum 1 = ErrorEncrypted
    toEnum 2 = ErrorOpenFile
    toEnum 3 = ErrorBadCatalog
    toEnum 4 = ErrorDamaged
    toEnum k = AnotherError k

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

instance GErrorClass Error where
    gerrorClassDomain _ = "poppler-quark"

-- | Catch exceptions of type `Error`. This is a specialized version of `Data.GI.Base.GError.catchGErrorJustDomain`.
catchError ::
    IO a ->
    (Error -> GErrorMessage -> IO a) ->
    IO a
catchError = catchGErrorJustDomain

-- | Handle exceptions of type `Error`. This is a specialized version of `Data.GI.Base.GError.handleGErrorJustDomain`.
handleError ::
    (Error -> GErrorMessage -> IO a) ->
    IO a ->
    IO a
handleError = handleGErrorJustDomain

foreign import ccall "poppler_error_get_type" c_poppler_error_get_type ::
    IO GType

instance BoxedEnum Error where
    boxedEnumType _ = c_poppler_error_get_type

-- Enum DestType
{- |
Destination types
-}
data DestType =
      DestTypeUnknown
    {- ^
    unknown destination
    -}
    | DestTypeXyz
    {- ^
    go to page with coordinates (left, top)
    positioned at the upper-left corner of the window and the contents of
    the page magnified by the factor zoom
    -}
    | DestTypeFit
    {- ^
    go to page with its contents magnified just
    enough to fit the entire page within the window both horizontally and
    vertically
    -}
    | DestTypeFith
    {- ^
    go to page with the vertical coordinate top
    positioned at the top edge of the window and the contents of the page
    magnified just enough to fit the entire width of the page within the window
    -}
    | DestTypeFitv
    {- ^
    go to page with the horizontal coordinate
    left positioned at the left edge of the window and the contents of the
    page magnified just enough to fit the entire height of the page within the window
    -}
    | DestTypeFitr
    {- ^
    go to page with its contents magnified just
    enough to fit the rectangle specified by the coordinates left, bottom,
    right, and top entirely within the window both horizontally and vertically
    -}
    | DestTypeFitb
    {- ^
    go to page with its contents magnified just enough to fit
    its bounding box entirely within the window both horizontally and vertically
    -}
    | DestTypeFitbh
    {- ^
    go to page with the vertical
    coordinate top positioned at the top edge of the window and the
    contents of the page magnified just enough to fit the entire width of its
    bounding box within the window
    -}
    | DestTypeFitbv
    {- ^
    go to page with the horizontal
    coordinate left positioned at the left edge of the window and the
    contents of the page magnified just enough to fit the entire height of its
    bounding box within the window
    -}
    | DestTypeNamed
    {- ^
    got to page specified by a name. See 'GI.Poppler.Objects.Document.documentFindDest'
    -}
    | AnotherDestType Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum DestType where
    fromEnum DestTypeUnknown = 0
    fromEnum DestTypeXyz = 1
    fromEnum DestTypeFit = 2
    fromEnum DestTypeFith = 3
    fromEnum DestTypeFitv = 4
    fromEnum DestTypeFitr = 5
    fromEnum DestTypeFitb = 6
    fromEnum DestTypeFitbh = 7
    fromEnum DestTypeFitbv = 8
    fromEnum DestTypeNamed = 9
    fromEnum (AnotherDestType k) = k

    toEnum 0 = DestTypeUnknown
    toEnum 1 = DestTypeXyz
    toEnum 2 = DestTypeFit
    toEnum 3 = DestTypeFith
    toEnum 4 = DestTypeFitv
    toEnum 5 = DestTypeFitr
    toEnum 6 = DestTypeFitb
    toEnum 7 = DestTypeFitbh
    toEnum 8 = DestTypeFitbv
    toEnum 9 = DestTypeNamed
    toEnum k = AnotherDestType k

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

foreign import ccall "poppler_dest_type_get_type" c_poppler_dest_type_get_type ::
    IO GType

instance BoxedEnum DestType where
    boxedEnumType _ = c_poppler_dest_type_get_type

-- Enum Backend
{- |
Backend codes returned by 'GI.Poppler.Functions.getBackend'.
-}
data Backend =
      BackendUnknown
    {- ^
    Unknown backend
    -}
    | BackendSplash
    {- ^
    Splash backend
    -}
    | BackendCairo
    {- ^
    Cairo backend
    -}
    | AnotherBackend Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum Backend where
    fromEnum BackendUnknown = 0
    fromEnum BackendSplash = 1
    fromEnum BackendCairo = 2
    fromEnum (AnotherBackend k) = k

    toEnum 0 = BackendUnknown
    toEnum 1 = BackendSplash
    toEnum 2 = BackendCairo
    toEnum k = AnotherBackend k

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

foreign import ccall "poppler_backend_get_type" c_poppler_backend_get_type ::
    IO GType

instance BoxedEnum Backend where
    boxedEnumType _ = c_poppler_backend_get_type

-- Enum AnnotType
{- |
/No description available in the introspection data./
-}
data AnnotType =
      AnnotTypeUnknown
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeText
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeLink
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeFreeText
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeLine
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeSquare
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeCircle
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypePolygon
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypePolyLine
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeHighlight
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeUnderline
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeSquiggly
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeStrikeOut
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeStamp
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeCaret
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeInk
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypePopup
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeFileAttachment
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeSound
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeMovie
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeWidget
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeScreen
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypePrinterMark
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeTrapNet
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTypeWatermark
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotType3d
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherAnnotType Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum AnnotType where
    fromEnum AnnotTypeUnknown = 0
    fromEnum AnnotTypeText = 1
    fromEnum AnnotTypeLink = 2
    fromEnum AnnotTypeFreeText = 3
    fromEnum AnnotTypeLine = 4
    fromEnum AnnotTypeSquare = 5
    fromEnum AnnotTypeCircle = 6
    fromEnum AnnotTypePolygon = 7
    fromEnum AnnotTypePolyLine = 8
    fromEnum AnnotTypeHighlight = 9
    fromEnum AnnotTypeUnderline = 10
    fromEnum AnnotTypeSquiggly = 11
    fromEnum AnnotTypeStrikeOut = 12
    fromEnum AnnotTypeStamp = 13
    fromEnum AnnotTypeCaret = 14
    fromEnum AnnotTypeInk = 15
    fromEnum AnnotTypePopup = 16
    fromEnum AnnotTypeFileAttachment = 17
    fromEnum AnnotTypeSound = 18
    fromEnum AnnotTypeMovie = 19
    fromEnum AnnotTypeWidget = 20
    fromEnum AnnotTypeScreen = 21
    fromEnum AnnotTypePrinterMark = 22
    fromEnum AnnotTypeTrapNet = 23
    fromEnum AnnotTypeWatermark = 24
    fromEnum AnnotType3d = 25
    fromEnum (AnotherAnnotType k) = k

    toEnum 0 = AnnotTypeUnknown
    toEnum 1 = AnnotTypeText
    toEnum 2 = AnnotTypeLink
    toEnum 3 = AnnotTypeFreeText
    toEnum 4 = AnnotTypeLine
    toEnum 5 = AnnotTypeSquare
    toEnum 6 = AnnotTypeCircle
    toEnum 7 = AnnotTypePolygon
    toEnum 8 = AnnotTypePolyLine
    toEnum 9 = AnnotTypeHighlight
    toEnum 10 = AnnotTypeUnderline
    toEnum 11 = AnnotTypeSquiggly
    toEnum 12 = AnnotTypeStrikeOut
    toEnum 13 = AnnotTypeStamp
    toEnum 14 = AnnotTypeCaret
    toEnum 15 = AnnotTypeInk
    toEnum 16 = AnnotTypePopup
    toEnum 17 = AnnotTypeFileAttachment
    toEnum 18 = AnnotTypeSound
    toEnum 19 = AnnotTypeMovie
    toEnum 20 = AnnotTypeWidget
    toEnum 21 = AnnotTypeScreen
    toEnum 22 = AnnotTypePrinterMark
    toEnum 23 = AnnotTypeTrapNet
    toEnum 24 = AnnotTypeWatermark
    toEnum 25 = AnnotType3d
    toEnum k = AnotherAnnotType k

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

foreign import ccall "poppler_annot_type_get_type" c_poppler_annot_type_get_type ::
    IO GType

instance BoxedEnum AnnotType where
    boxedEnumType _ = c_poppler_annot_type_get_type

-- Enum AnnotTextState
{- |
/No description available in the introspection data./
-}
data AnnotTextState =
      AnnotTextStateMarked
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTextStateUnmarked
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTextStateAccepted
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTextStateRejected
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTextStateCancelled
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTextStateCompleted
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTextStateNone
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotTextStateUnknown
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherAnnotTextState Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum AnnotTextState where
    fromEnum AnnotTextStateMarked = 0
    fromEnum AnnotTextStateUnmarked = 1
    fromEnum AnnotTextStateAccepted = 2
    fromEnum AnnotTextStateRejected = 3
    fromEnum AnnotTextStateCancelled = 4
    fromEnum AnnotTextStateCompleted = 5
    fromEnum AnnotTextStateNone = 6
    fromEnum AnnotTextStateUnknown = 7
    fromEnum (AnotherAnnotTextState k) = k

    toEnum 0 = AnnotTextStateMarked
    toEnum 1 = AnnotTextStateUnmarked
    toEnum 2 = AnnotTextStateAccepted
    toEnum 3 = AnnotTextStateRejected
    toEnum 4 = AnnotTextStateCancelled
    toEnum 5 = AnnotTextStateCompleted
    toEnum 6 = AnnotTextStateNone
    toEnum 7 = AnnotTextStateUnknown
    toEnum k = AnotherAnnotTextState k

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

foreign import ccall "poppler_annot_text_state_get_type" c_poppler_annot_text_state_get_type ::
    IO GType

instance BoxedEnum AnnotTextState where
    boxedEnumType _ = c_poppler_annot_text_state_get_type

-- Enum AnnotMarkupReplyType
{- |
/No description available in the introspection data./
-}
data AnnotMarkupReplyType =
      AnnotMarkupReplyTypeR
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotMarkupReplyTypeGroup
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherAnnotMarkupReplyType Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum AnnotMarkupReplyType where
    fromEnum AnnotMarkupReplyTypeR = 0
    fromEnum AnnotMarkupReplyTypeGroup = 1
    fromEnum (AnotherAnnotMarkupReplyType k) = k

    toEnum 0 = AnnotMarkupReplyTypeR
    toEnum 1 = AnnotMarkupReplyTypeGroup
    toEnum k = AnotherAnnotMarkupReplyType k

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

foreign import ccall "poppler_annot_markup_reply_type_get_type" c_poppler_annot_markup_reply_type_get_type ::
    IO GType

instance BoxedEnum AnnotMarkupReplyType where
    boxedEnumType _ = c_poppler_annot_markup_reply_type_get_type

-- Enum AnnotFreeTextQuadding
{- |
/No description available in the introspection data./
-}
data AnnotFreeTextQuadding =
      AnnotFreeTextQuaddingLeftJustified
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotFreeTextQuaddingCentered
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotFreeTextQuaddingRightJustified
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherAnnotFreeTextQuadding Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum AnnotFreeTextQuadding where
    fromEnum AnnotFreeTextQuaddingLeftJustified = 0
    fromEnum AnnotFreeTextQuaddingCentered = 1
    fromEnum AnnotFreeTextQuaddingRightJustified = 2
    fromEnum (AnotherAnnotFreeTextQuadding k) = k

    toEnum 0 = AnnotFreeTextQuaddingLeftJustified
    toEnum 1 = AnnotFreeTextQuaddingCentered
    toEnum 2 = AnnotFreeTextQuaddingRightJustified
    toEnum k = AnotherAnnotFreeTextQuadding k

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

foreign import ccall "poppler_annot_free_text_quadding_get_type" c_poppler_annot_free_text_quadding_get_type ::
    IO GType

instance BoxedEnum AnnotFreeTextQuadding where
    boxedEnumType _ = c_poppler_annot_free_text_quadding_get_type

-- Enum AnnotExternalDataType
{- |
/No description available in the introspection data./
-}
data AnnotExternalDataType =
      AnnotExternalDataType3d
    {- ^
    /No description available in the introspection data./
    -}
    | AnnotExternalDataTypeUnknown
    {- ^
    /No description available in the introspection data./
    -}
    | AnotherAnnotExternalDataType Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum AnnotExternalDataType where
    fromEnum AnnotExternalDataType3d = 0
    fromEnum AnnotExternalDataTypeUnknown = 1
    fromEnum (AnotherAnnotExternalDataType k) = k

    toEnum 0 = AnnotExternalDataType3d
    toEnum 1 = AnnotExternalDataTypeUnknown
    toEnum k = AnotherAnnotExternalDataType k

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

foreign import ccall "poppler_annot_external_data_type_get_type" c_poppler_annot_external_data_type_get_type ::
    IO GType

instance BoxedEnum AnnotExternalDataType where
    boxedEnumType _ = c_poppler_annot_external_data_type_get_type

-- Enum AdditionalActionType
{- |
Form field additional action types to be passed to /@popplerFormFieldGetAdditionalAction@/

/Since: 0.72/
-}
data AdditionalActionType =
      AdditionalActionTypeFieldModified
    {- ^
    The action to be performed when the user modifies the field.
    -}
    | AdditionalActionTypeFormatField
    {- ^
    The action to be performed before the field is formatted to
    display its value.
    -}
    | AdditionalActionTypeValidateField
    {- ^
    The action to be performed when the field value changes.
    -}
    | AdditionalActionTypeCalculateField
    {- ^
    The action to be performed when the field needs to be
    recalculated.
    -}
    | AnotherAdditionalActionType Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum AdditionalActionType where
    fromEnum AdditionalActionTypeFieldModified = 0
    fromEnum AdditionalActionTypeFormatField = 1
    fromEnum AdditionalActionTypeValidateField = 2
    fromEnum AdditionalActionTypeCalculateField = 3
    fromEnum (AnotherAdditionalActionType k) = k

    toEnum 0 = AdditionalActionTypeFieldModified
    toEnum 1 = AdditionalActionTypeFormatField
    toEnum 2 = AdditionalActionTypeValidateField
    toEnum 3 = AdditionalActionTypeCalculateField
    toEnum k = AnotherAdditionalActionType k

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

foreign import ccall "poppler_additional_action_type_get_type" c_poppler_additional_action_type_get_type ::
    IO GType

instance BoxedEnum AdditionalActionType where
    boxedEnumType _ = c_poppler_additional_action_type_get_type

-- Enum ActionType
{- |
Action types
-}
data ActionType =
      ActionTypeUnknown
    {- ^
    unknown action
    -}
    | ActionTypeNone
    {- ^
    no action specified
    -}
    | ActionTypeGotoDest
    {- ^
    go to destination
    -}
    | ActionTypeGotoRemote
    {- ^
    go to destination in another document
    -}
    | ActionTypeLaunch
    {- ^
    launch app (or open document
    -}
    | ActionTypeUri
    {- ^
    URI
    -}
    | ActionTypeNamed
    {- ^
    predefined action
    -}
    | ActionTypeMovie
    {- ^
    play movies. Since 0.14
    -}
    | ActionTypeRendition
    {- ^
    play multimedia content. Since 0.14
    -}
    | ActionTypeOcgState
    {- ^
    state of layer. Since 0.14
    -}
    | ActionTypeJavascript
    {- ^
    Javascript. Since 0.18
    -}
    | AnotherActionType Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum ActionType where
    fromEnum ActionTypeUnknown = 0
    fromEnum ActionTypeNone = 1
    fromEnum ActionTypeGotoDest = 2
    fromEnum ActionTypeGotoRemote = 3
    fromEnum ActionTypeLaunch = 4
    fromEnum ActionTypeUri = 5
    fromEnum ActionTypeNamed = 6
    fromEnum ActionTypeMovie = 7
    fromEnum ActionTypeRendition = 8
    fromEnum ActionTypeOcgState = 9
    fromEnum ActionTypeJavascript = 10
    fromEnum (AnotherActionType k) = k

    toEnum 0 = ActionTypeUnknown
    toEnum 1 = ActionTypeNone
    toEnum 2 = ActionTypeGotoDest
    toEnum 3 = ActionTypeGotoRemote
    toEnum 4 = ActionTypeLaunch
    toEnum 5 = ActionTypeUri
    toEnum 6 = ActionTypeNamed
    toEnum 7 = ActionTypeMovie
    toEnum 8 = ActionTypeRendition
    toEnum 9 = ActionTypeOcgState
    toEnum 10 = ActionTypeJavascript
    toEnum k = AnotherActionType k

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

foreign import ccall "poppler_action_type_get_type" c_poppler_action_type_get_type ::
    IO GType

instance BoxedEnum ActionType where
    boxedEnumType _ = c_poppler_action_type_get_type

-- Enum ActionMovieOperation
{- |
Movie operations

/Since: 0.14/
-}
data ActionMovieOperation =
      ActionMovieOperationPlay
    {- ^
    play movie
    -}
    | ActionMovieOperationPause
    {- ^
    pause playing movie
    -}
    | ActionMovieOperationResume
    {- ^
    resume paused movie
    -}
    | ActionMovieOperationStop
    {- ^
    stop playing movie
    -}
    | AnotherActionMovieOperation Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum ActionMovieOperation where
    fromEnum ActionMovieOperationPlay = 0
    fromEnum ActionMovieOperationPause = 1
    fromEnum ActionMovieOperationResume = 2
    fromEnum ActionMovieOperationStop = 3
    fromEnum (AnotherActionMovieOperation k) = k

    toEnum 0 = ActionMovieOperationPlay
    toEnum 1 = ActionMovieOperationPause
    toEnum 2 = ActionMovieOperationResume
    toEnum 3 = ActionMovieOperationStop
    toEnum k = AnotherActionMovieOperation k

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

foreign import ccall "poppler_action_movie_operation_get_type" c_poppler_action_movie_operation_get_type ::
    IO GType

instance BoxedEnum ActionMovieOperation where
    boxedEnumType _ = c_poppler_action_movie_operation_get_type

-- Enum ActionLayerAction
{- |
Layer actions

/Since: 0.14/
-}
data ActionLayerAction =
      ActionLayerActionOn
    {- ^
    set layer visibility on
    -}
    | ActionLayerActionOff
    {- ^
    set layer visibility off
    -}
    | ActionLayerActionToggle
    {- ^
    reverse the layer visibility state
    -}
    | AnotherActionLayerAction Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum ActionLayerAction where
    fromEnum ActionLayerActionOn = 0
    fromEnum ActionLayerActionOff = 1
    fromEnum ActionLayerActionToggle = 2
    fromEnum (AnotherActionLayerAction k) = k

    toEnum 0 = ActionLayerActionOn
    toEnum 1 = ActionLayerActionOff
    toEnum 2 = ActionLayerActionToggle
    toEnum k = AnotherActionLayerAction k

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

foreign import ccall "poppler_action_layer_action_get_type" c_poppler_action_layer_action_get_type ::
    IO GType

instance BoxedEnum ActionLayerAction where
    boxedEnumType _ = c_poppler_action_layer_action_get_type