    -- | 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.Gio.Enums
        (

     -- * Enumerations

    -- ** BusType #enum:BusType#

        BusType(..)                             ,

    -- ** ConverterResult #enum:ConverterResult#

        ConverterResult(..)                     ,

    -- ** CredentialsType #enum:CredentialsType#

        CredentialsType(..)                     ,

    -- ** DBusError #enum:DBusError#

        DBusError(..)                           ,
        catchDBusError                          ,
        handleDBusError                         ,

    -- ** DBusMessageByteOrder #enum:DBusMessageByteOrder#

        DBusMessageByteOrder(..)                ,

    -- ** DBusMessageHeaderField #enum:DBusMessageHeaderField#

        DBusMessageHeaderField(..)              ,

    -- ** DBusMessageType #enum:DBusMessageType#

        DBusMessageType(..)                     ,

    -- ** DataStreamByteOrder #enum:DataStreamByteOrder#

        DataStreamByteOrder(..)                 ,

    -- ** DataStreamNewlineType #enum:DataStreamNewlineType#

        DataStreamNewlineType(..)               ,

    -- ** DriveStartStopType #enum:DriveStartStopType#

        DriveStartStopType(..)                  ,

    -- ** EmblemOrigin #enum:EmblemOrigin#

        EmblemOrigin(..)                        ,

    -- ** FileAttributeStatus #enum:FileAttributeStatus#

        FileAttributeStatus(..)                 ,

    -- ** FileAttributeType #enum:FileAttributeType#

        FileAttributeType(..)                   ,

    -- ** FileMonitorEvent #enum:FileMonitorEvent#

        FileMonitorEvent(..)                    ,

    -- ** FileType #enum:FileType#

        FileType(..)                            ,

    -- ** FilesystemPreviewType #enum:FilesystemPreviewType#

        FilesystemPreviewType(..)               ,

    -- ** IOErrorEnum #enum:IOErrorEnum#

        IOErrorEnum(..)                         ,
        catchIOErrorEnum                        ,
        handleIOErrorEnum                       ,

    -- ** MemoryMonitorWarningLevel #enum:MemoryMonitorWarningLevel#

        MemoryMonitorWarningLevel(..)           ,

    -- ** MountOperationResult #enum:MountOperationResult#

        MountOperationResult(..)                ,

    -- ** NetworkConnectivity #enum:NetworkConnectivity#

        NetworkConnectivity(..)                 ,

    -- ** NotificationPriority #enum:NotificationPriority#

        NotificationPriority(..)                ,

    -- ** PasswordSave #enum:PasswordSave#

        PasswordSave(..)                        ,

    -- ** PollableReturn #enum:PollableReturn#

        PollableReturn(..)                      ,

    -- ** ResolverError #enum:ResolverError#

        ResolverError(..)                       ,
        catchResolverError                      ,
        handleResolverError                     ,

    -- ** ResolverRecordType #enum:ResolverRecordType#

        ResolverRecordType(..)                  ,

    -- ** ResourceError #enum:ResourceError#

        ResourceError(..)                       ,
        catchResourceError                      ,
        handleResourceError                     ,

    -- ** SocketClientEvent #enum:SocketClientEvent#

        SocketClientEvent(..)                   ,

    -- ** SocketFamily #enum:SocketFamily#

        SocketFamily(..)                        ,

    -- ** SocketListenerEvent #enum:SocketListenerEvent#

        SocketListenerEvent(..)                 ,

    -- ** SocketProtocol #enum:SocketProtocol#

        SocketProtocol(..)                      ,

    -- ** SocketType #enum:SocketType#

        SocketType(..)                          ,

    -- ** TlsAuthenticationMode #enum:TlsAuthenticationMode#

        TlsAuthenticationMode(..)               ,

    -- ** TlsChannelBindingError #enum:TlsChannelBindingError#

        TlsChannelBindingError(..)              ,
        catchTlsChannelBindingError             ,
        handleTlsChannelBindingError            ,

    -- ** TlsChannelBindingType #enum:TlsChannelBindingType#

        TlsChannelBindingType(..)               ,

    -- ** TlsError #enum:TlsError#

        TlsError(..)                            ,
        catchTlsError                           ,
        handleTlsError                          ,

    -- ** TlsInteractionResult #enum:TlsInteractionResult#

        TlsInteractionResult(..)                ,

    -- ** TlsProtocolVersion #enum:TlsProtocolVersion#

        TlsProtocolVersion(..)                  ,

    -- ** TlsRehandshakeMode #enum:TlsRehandshakeMode#

        TlsRehandshakeMode(..)                  ,

    -- ** UnixSocketAddressType #enum:UnixSocketAddressType#

        UnixSocketAddressType(..)               ,

    -- ** ZlibCompressorFormat #enum:ZlibCompressorFormat#

        ZlibCompressorFormat(..)                ,

        ) 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
    import qualified Data.Word as DW
    import qualified Data.Int as DI
    import qualified System.Posix.Types as SPT
    import qualified Foreign.C.Types as FCT

    -- Workaround for https://gitlab.haskell.org/ghc/ghc/-/issues/23392
    #if MIN_VERSION_base(4,18,0)

    #else

    #endif

    -- Enum ZlibCompressorFormat
    -- | Used to select the type of data format to use for t'GI.Gio.Objects.ZlibDecompressor.ZlibDecompressor'
    -- and t'GI.Gio.Objects.ZlibCompressor.ZlibCompressor'.
    --
    -- /Since: 2.24/
    data ZlibCompressorFormat =
          ZlibCompressorFormatZlib
        -- ^ deflate compression with zlib header
        | ZlibCompressorFormatGzip
        -- ^ gzip file format
        | ZlibCompressorFormatRaw
        -- ^ deflate compression with no header
        | AnotherZlibCompressorFormat Int
        -- ^ Catch-all for unknown values
        deriving (Int -> ZlibCompressorFormat -> ShowS
    [ZlibCompressorFormat] -> ShowS
    ZlibCompressorFormat -> String
    (Int -> ZlibCompressorFormat -> ShowS)
    -> (ZlibCompressorFormat -> String)
    -> ([ZlibCompressorFormat] -> ShowS)
    -> Show ZlibCompressorFormat
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> ZlibCompressorFormat -> ShowS
    showsPrec :: Int -> ZlibCompressorFormat -> ShowS
    $cshow :: ZlibCompressorFormat -> String
    show :: ZlibCompressorFormat -> String
    $cshowList :: [ZlibCompressorFormat] -> ShowS
    showList :: [ZlibCompressorFormat] -> ShowS
    Show, ZlibCompressorFormat -> ZlibCompressorFormat -> Bool
    (ZlibCompressorFormat -> ZlibCompressorFormat -> Bool)
    -> (ZlibCompressorFormat -> ZlibCompressorFormat -> Bool)
    -> Eq ZlibCompressorFormat
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: ZlibCompressorFormat -> ZlibCompressorFormat -> Bool
    == :: ZlibCompressorFormat -> ZlibCompressorFormat -> Bool
    $c/= :: ZlibCompressorFormat -> ZlibCompressorFormat -> Bool
    /= :: ZlibCompressorFormat -> ZlibCompressorFormat -> Bool
    Eq)

    instance P.Enum ZlibCompressorFormat where
        fromEnum :: ZlibCompressorFormat -> Int
    fromEnum ZlibCompressorFormat
    ZlibCompressorFormatZlib = Int
    0
        fromEnum ZlibCompressorFormat
    ZlibCompressorFormatGzip = Int
    1
        fromEnum ZlibCompressorFormat
    ZlibCompressorFormatRaw = Int
    2
        fromEnum (AnotherZlibCompressorFormat Int
    k) = Int
    k

        toEnum :: Int -> ZlibCompressorFormat
    toEnum Int
    0 = ZlibCompressorFormat
    ZlibCompressorFormatZlib
        toEnum Int
    1 = ZlibCompressorFormat
    ZlibCompressorFormatGzip
        toEnum Int
    2 = ZlibCompressorFormat
    ZlibCompressorFormatRaw
        toEnum Int
    k = Int -> ZlibCompressorFormat
    AnotherZlibCompressorFormat Int
    k

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

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

    foreign import ccall "g_zlib_compressor_format_get_type" c_g_zlib_compressor_format_get_type ::
        IO GType

    instance B.Types.TypedObject ZlibCompressorFormat where
        glibType :: IO GType
    glibType = IO GType
    c_g_zlib_compressor_format_get_type

    instance B.Types.BoxedEnum ZlibCompressorFormat

    -- Enum UnixSocketAddressType
    -- | The type of name used by a t'GI.Gio.Objects.UnixSocketAddress.UnixSocketAddress'.
    -- 'GI.Gio.Enums.UnixSocketAddressTypePath' indicates a traditional unix domain
    -- socket bound to a filesystem path. 'GI.Gio.Enums.UnixSocketAddressTypeAnonymous'
    -- indicates a socket not bound to any name (eg, a client-side socket,
    -- or a socket created with @/socketpair()/@).
    --
    -- For abstract sockets, there are two incompatible ways of naming
    -- them; the man pages suggest using the entire @struct sockaddr_un@
    -- as the name, padding the unused parts of the @/sun_path/@ field with
    -- zeroes; this corresponds to 'GI.Gio.Enums.UnixSocketAddressTypeAbstractPadded'.
    -- However, many programs instead just use a portion of @/sun_path/@, and
    -- pass an appropriate smaller length to @/bind()/@ or @/connect()/@. This is
    -- 'GI.Gio.Enums.UnixSocketAddressTypeAbstract'.
    --
    -- /Since: 2.26/
    data UnixSocketAddressType =
          UnixSocketAddressTypeInvalid
        -- ^ invalid
        | UnixSocketAddressTypeAnonymous
        -- ^ anonymous
        | UnixSocketAddressTypePath
        -- ^ a filesystem path
        | UnixSocketAddressTypeAbstract
        -- ^ an abstract name
        | UnixSocketAddressTypeAbstractPadded
        -- ^ an abstract name, 0-padded
        --   to the full length of a unix socket name
        | AnotherUnixSocketAddressType Int
        -- ^ Catch-all for unknown values
        deriving (Int -> UnixSocketAddressType -> ShowS
    [UnixSocketAddressType] -> ShowS
    UnixSocketAddressType -> String
    (Int -> UnixSocketAddressType -> ShowS)
    -> (UnixSocketAddressType -> String)
    -> ([UnixSocketAddressType] -> ShowS)
    -> Show UnixSocketAddressType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> UnixSocketAddressType -> ShowS
    showsPrec :: Int -> UnixSocketAddressType -> ShowS
    $cshow :: UnixSocketAddressType -> String
    show :: UnixSocketAddressType -> String
    $cshowList :: [UnixSocketAddressType] -> ShowS
    showList :: [UnixSocketAddressType] -> ShowS
    Show, UnixSocketAddressType -> UnixSocketAddressType -> Bool
    (UnixSocketAddressType -> UnixSocketAddressType -> Bool)
    -> (UnixSocketAddressType -> UnixSocketAddressType -> Bool)
    -> Eq UnixSocketAddressType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: UnixSocketAddressType -> UnixSocketAddressType -> Bool
    == :: UnixSocketAddressType -> UnixSocketAddressType -> Bool
    $c/= :: UnixSocketAddressType -> UnixSocketAddressType -> Bool
    /= :: UnixSocketAddressType -> UnixSocketAddressType -> Bool
    Eq)

    instance P.Enum UnixSocketAddressType where
        fromEnum :: UnixSocketAddressType -> Int
    fromEnum UnixSocketAddressType
    UnixSocketAddressTypeInvalid = Int
    0
        fromEnum UnixSocketAddressType
    UnixSocketAddressTypeAnonymous = Int
    1
        fromEnum UnixSocketAddressType
    UnixSocketAddressTypePath = Int
    2
        fromEnum UnixSocketAddressType
    UnixSocketAddressTypeAbstract = Int
    3
        fromEnum UnixSocketAddressType
    UnixSocketAddressTypeAbstractPadded = Int
    4
        fromEnum (AnotherUnixSocketAddressType Int
    k) = Int
    k

        toEnum :: Int -> UnixSocketAddressType
    toEnum Int
    0 = UnixSocketAddressType
    UnixSocketAddressTypeInvalid
        toEnum Int
    1 = UnixSocketAddressType
    UnixSocketAddressTypeAnonymous
        toEnum Int
    2 = UnixSocketAddressType
    UnixSocketAddressTypePath
        toEnum Int
    3 = UnixSocketAddressType
    UnixSocketAddressTypeAbstract
        toEnum Int
    4 = UnixSocketAddressType
    UnixSocketAddressTypeAbstractPadded
        toEnum Int
    k = Int -> UnixSocketAddressType
    AnotherUnixSocketAddressType Int
    k

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

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

    foreign import ccall "g_unix_socket_address_type_get_type" c_g_unix_socket_address_type_get_type ::
        IO GType

    instance B.Types.TypedObject UnixSocketAddressType where
        glibType :: IO GType
    glibType = IO GType
    c_g_unix_socket_address_type_get_type

    instance B.Types.BoxedEnum UnixSocketAddressType

    -- Enum TlsRehandshakeMode
    {-# DEPRECATED TlsRehandshakeMode ["(Since version 2.60.)","Changing the rehandshake mode is no longer","  required for compatibility. Also, rehandshaking has been removed","  from the TLS protocol in TLS 1.3."] #-}
    -- | When to allow rehandshaking. See
    -- 'GI.Gio.Objects.TlsConnection.tlsConnectionSetRehandshakeMode'.
    --
    -- /Since: 2.28/
    data TlsRehandshakeMode =
          TlsRehandshakeModeNever
        -- ^ Never allow rehandshaking
        | TlsRehandshakeModeSafely
        -- ^ Allow safe rehandshaking only
        | TlsRehandshakeModeUnsafely
        -- ^ Allow unsafe rehandshaking
        | AnotherTlsRehandshakeMode Int
        -- ^ Catch-all for unknown values
        deriving (Int -> TlsRehandshakeMode -> ShowS
    [TlsRehandshakeMode] -> ShowS
    TlsRehandshakeMode -> String
    (Int -> TlsRehandshakeMode -> ShowS)
    -> (TlsRehandshakeMode -> String)
    -> ([TlsRehandshakeMode] -> ShowS)
    -> Show TlsRehandshakeMode
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> TlsRehandshakeMode -> ShowS
    showsPrec :: Int -> TlsRehandshakeMode -> ShowS
    $cshow :: TlsRehandshakeMode -> String
    show :: TlsRehandshakeMode -> String
    $cshowList :: [TlsRehandshakeMode] -> ShowS
    showList :: [TlsRehandshakeMode] -> ShowS
    Show, TlsRehandshakeMode -> TlsRehandshakeMode -> Bool
    (TlsRehandshakeMode -> TlsRehandshakeMode -> Bool)
    -> (TlsRehandshakeMode -> TlsRehandshakeMode -> Bool)
    -> Eq TlsRehandshakeMode
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: TlsRehandshakeMode -> TlsRehandshakeMode -> Bool
    == :: TlsRehandshakeMode -> TlsRehandshakeMode -> Bool
    $c/= :: TlsRehandshakeMode -> TlsRehandshakeMode -> Bool
    /= :: TlsRehandshakeMode -> TlsRehandshakeMode -> Bool
    Eq)

    instance P.Enum TlsRehandshakeMode where
        fromEnum :: TlsRehandshakeMode -> Int
    fromEnum TlsRehandshakeMode
    TlsRehandshakeModeNever = Int
    0
        fromEnum TlsRehandshakeMode
    TlsRehandshakeModeSafely = Int
    1
        fromEnum TlsRehandshakeMode
    TlsRehandshakeModeUnsafely = Int
    2
        fromEnum (AnotherTlsRehandshakeMode Int
    k) = Int
    k

        toEnum :: Int -> TlsRehandshakeMode
    toEnum Int
    0 = TlsRehandshakeMode
    TlsRehandshakeModeNever
        toEnum Int
    1 = TlsRehandshakeMode
    TlsRehandshakeModeSafely
        toEnum Int
    2 = TlsRehandshakeMode
    TlsRehandshakeModeUnsafely
        toEnum Int
    k = Int -> TlsRehandshakeMode
    AnotherTlsRehandshakeMode Int
    k

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

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

    foreign import ccall "g_tls_rehandshake_mode_get_type" c_g_tls_rehandshake_mode_get_type ::
        IO GType

    instance B.Types.TypedObject TlsRehandshakeMode where
        glibType :: IO GType
    glibType = IO GType
    c_g_tls_rehandshake_mode_get_type

    instance B.Types.BoxedEnum TlsRehandshakeMode

    -- Enum TlsProtocolVersion
    -- | The TLS or DTLS protocol version used by a t'GI.Gio.Objects.TlsConnection.TlsConnection' or
    -- t'GI.Gio.Interfaces.DtlsConnection.DtlsConnection'. The integer values of these versions are sequential
    -- to ensure newer known protocol versions compare greater than older
    -- known versions. Any known DTLS protocol version will compare greater
    -- than any SSL or TLS protocol version. The protocol version may be
    -- 'GI.Gio.Enums.TlsProtocolVersionUnknown' if the TLS backend supports a newer
    -- protocol version that GLib does not yet know about. This means that
    -- it\'s possible for an unknown DTLS protocol version to compare less
    -- than the TLS protocol versions.
    --
    -- /Since: 2.70/
    data TlsProtocolVersion =
          TlsProtocolVersionUnknown
        -- ^ No protocol version or unknown protocol version
        | TlsProtocolVersionSsl30
        -- ^ SSL 3.0, which is insecure and should not be used
        | TlsProtocolVersionTls10
        -- ^ TLS 1.0, which is insecure and should not be used
        | TlsProtocolVersionTls11
        -- ^ TLS 1.1, which is insecure and should not be used
        | TlsProtocolVersionTls12
        -- ^ TLS 1.2, defined by <https://datatracker.ietf.org/doc/html/rfc5246 RFC 5246>
        | TlsProtocolVersionTls13
        -- ^ TLS 1.3, defined by <https://datatracker.ietf.org/doc/html/rfc8446 RFC 8446>
        | TlsProtocolVersionDtls10
        -- ^ DTLS 1.0, which is insecure and should not be used
        | TlsProtocolVersionDtls12
        -- ^ DTLS 1.2, defined by <https://datatracker.ietf.org/doc/html/rfc6347 RFC 6347>
        | AnotherTlsProtocolVersion Int
        -- ^ Catch-all for unknown values
        deriving (Int -> TlsProtocolVersion -> ShowS
    [TlsProtocolVersion] -> ShowS
    TlsProtocolVersion -> String
    (Int -> TlsProtocolVersion -> ShowS)
    -> (TlsProtocolVersion -> String)
    -> ([TlsProtocolVersion] -> ShowS)
    -> Show TlsProtocolVersion
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> TlsProtocolVersion -> ShowS
    showsPrec :: Int -> TlsProtocolVersion -> ShowS
    $cshow :: TlsProtocolVersion -> String
    show :: TlsProtocolVersion -> String
    $cshowList :: [TlsProtocolVersion] -> ShowS
    showList :: [TlsProtocolVersion] -> ShowS
    Show, TlsProtocolVersion -> TlsProtocolVersion -> Bool
    (TlsProtocolVersion -> TlsProtocolVersion -> Bool)
    -> (TlsProtocolVersion -> TlsProtocolVersion -> Bool)
    -> Eq TlsProtocolVersion
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: TlsProtocolVersion -> TlsProtocolVersion -> Bool
    == :: TlsProtocolVersion -> TlsProtocolVersion -> Bool
    $c/= :: TlsProtocolVersion -> TlsProtocolVersion -> Bool
    /= :: TlsProtocolVersion -> TlsProtocolVersion -> Bool
    Eq)

    instance P.Enum TlsProtocolVersion where
        fromEnum :: TlsProtocolVersion -> Int
    fromEnum TlsProtocolVersion
    TlsProtocolVersionUnknown = Int
    0
        fromEnum TlsProtocolVersion
    TlsProtocolVersionSsl30 = Int
    1
        fromEnum TlsProtocolVersion
    TlsProtocolVersionTls10 = Int
    2
        fromEnum TlsProtocolVersion
    TlsProtocolVersionTls11 = Int
    3
        fromEnum TlsProtocolVersion
    TlsProtocolVersionTls12 = Int
    4
        fromEnum TlsProtocolVersion
    TlsProtocolVersionTls13 = Int
    5
        fromEnum TlsProtocolVersion
    TlsProtocolVersionDtls10 = Int
    201
        fromEnum TlsProtocolVersion
    TlsProtocolVersionDtls12 = Int
    202
        fromEnum (AnotherTlsProtocolVersion Int
    k) = Int
    k

        toEnum :: Int -> TlsProtocolVersion
    toEnum Int
    0 = TlsProtocolVersion
    TlsProtocolVersionUnknown
        toEnum Int
    1 = TlsProtocolVersion
    TlsProtocolVersionSsl30
        toEnum Int
    2 = TlsProtocolVersion
    TlsProtocolVersionTls10
        toEnum Int
    3 = TlsProtocolVersion
    TlsProtocolVersionTls11
        toEnum Int
    4 = TlsProtocolVersion
    TlsProtocolVersionTls12
        toEnum Int
    5 = TlsProtocolVersion
    TlsProtocolVersionTls13
        toEnum Int
    201 = TlsProtocolVersion
    TlsProtocolVersionDtls10
        toEnum Int
    202 = TlsProtocolVersion
    TlsProtocolVersionDtls12
        toEnum Int
    k = Int -> TlsProtocolVersion
    AnotherTlsProtocolVersion Int
    k

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

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

    foreign import ccall "g_tls_protocol_version_get_type" c_g_tls_protocol_version_get_type ::
        IO GType

    instance B.Types.TypedObject TlsProtocolVersion where
        glibType :: IO GType
    glibType = IO GType
    c_g_tls_protocol_version_get_type

    instance B.Types.BoxedEnum TlsProtocolVersion

    -- Enum TlsInteractionResult
    -- | t'GI.Gio.Enums.TlsInteractionResult' is returned by various functions in t'GI.Gio.Objects.TlsInteraction.TlsInteraction'
    -- when finishing an interaction request.
    --
    -- /Since: 2.30/
    data TlsInteractionResult =
          TlsInteractionResultUnhandled
        -- ^ The interaction was unhandled (i.e. not
        --     implemented).
        | TlsInteractionResultHandled
        -- ^ The interaction completed, and resulting data
        --     is available.
        | TlsInteractionResultFailed
        -- ^ The interaction has failed, or was cancelled.
        --     and the operation should be aborted.
        | AnotherTlsInteractionResult Int
        -- ^ Catch-all for unknown values
        deriving (Int -> TlsInteractionResult -> ShowS
    [TlsInteractionResult] -> ShowS
    TlsInteractionResult -> String
    (Int -> TlsInteractionResult -> ShowS)
    -> (TlsInteractionResult -> String)
    -> ([TlsInteractionResult] -> ShowS)
    -> Show TlsInteractionResult
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> TlsInteractionResult -> ShowS
    showsPrec :: Int -> TlsInteractionResult -> ShowS
    $cshow :: TlsInteractionResult -> String
    show :: TlsInteractionResult -> String
    $cshowList :: [TlsInteractionResult] -> ShowS
    showList :: [TlsInteractionResult] -> ShowS
    Show, TlsInteractionResult -> TlsInteractionResult -> Bool
    (TlsInteractionResult -> TlsInteractionResult -> Bool)
    -> (TlsInteractionResult -> TlsInteractionResult -> Bool)
    -> Eq TlsInteractionResult
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: TlsInteractionResult -> TlsInteractionResult -> Bool
    == :: TlsInteractionResult -> TlsInteractionResult -> Bool
    $c/= :: TlsInteractionResult -> TlsInteractionResult -> Bool
    /= :: TlsInteractionResult -> TlsInteractionResult -> Bool
    Eq)

    instance P.Enum TlsInteractionResult where
        fromEnum :: TlsInteractionResult -> Int
    fromEnum TlsInteractionResult
    TlsInteractionResultUnhandled = Int
    0
        fromEnum TlsInteractionResult
    TlsInteractionResultHandled = Int
    1
        fromEnum TlsInteractionResult
    TlsInteractionResultFailed = Int
    2
        fromEnum (AnotherTlsInteractionResult Int
    k) = Int
    k

        toEnum :: Int -> TlsInteractionResult
    toEnum Int
    0 = TlsInteractionResult
    TlsInteractionResultUnhandled
        toEnum Int
    1 = TlsInteractionResult
    TlsInteractionResultHandled
        toEnum Int
    2 = TlsInteractionResult
    TlsInteractionResultFailed
        toEnum Int
    k = Int -> TlsInteractionResult
    AnotherTlsInteractionResult Int
    k

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

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

    foreign import ccall "g_tls_interaction_result_get_type" c_g_tls_interaction_result_get_type ::
        IO GType

    instance B.Types.TypedObject TlsInteractionResult where
        glibType :: IO GType
    glibType = IO GType
    c_g_tls_interaction_result_get_type

    instance B.Types.BoxedEnum TlsInteractionResult

    -- Enum TlsError
    -- | An error code used with @/G_TLS_ERROR/@ in a t'GError' returned from a
    -- TLS-related routine.
    --
    -- /Since: 2.28/
    data TlsError =
          TlsErrorUnavailable
        -- ^ No TLS provider is available
        | TlsErrorMisc
        -- ^ Miscellaneous TLS error
        | TlsErrorBadCertificate
        -- ^ The certificate presented could not
        --   be parsed or failed validation.
        | TlsErrorNotTls
        -- ^ The TLS handshake failed because the
        --   peer does not seem to be a TLS server.
        | TlsErrorHandshake
        -- ^ The TLS handshake failed because the
        --   peer\'s certificate was not acceptable.
        | TlsErrorCertificateRequired
        -- ^ The TLS handshake failed because
        --   the server requested a client-side certificate, but none was
        --   provided. See 'GI.Gio.Objects.TlsConnection.tlsConnectionSetCertificate'.
        | TlsErrorEof
        -- ^ The TLS connection was closed without proper
        --   notice, which may indicate an attack. See
        --   'GI.Gio.Objects.TlsConnection.tlsConnectionSetRequireCloseNotify'.
        | TlsErrorInappropriateFallback
        -- ^ The TLS handshake failed
        --   because the client sent the fallback SCSV, indicating a protocol
        --   downgrade attack. Since: 2.60
        | TlsErrorBadCertificatePassword
        -- ^ The certificate failed
        --   to load because a password was incorrect. Since: 2.72
        | AnotherTlsError Int
        -- ^ Catch-all for unknown values
        deriving (Int -> TlsError -> ShowS
    [TlsError] -> ShowS
    TlsError -> String
    (Int -> TlsError -> ShowS)
    -> (TlsError -> String) -> ([TlsError] -> ShowS) -> Show TlsError
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> TlsError -> ShowS
    showsPrec :: Int -> TlsError -> ShowS
    $cshow :: TlsError -> String
    show :: TlsError -> String
    $cshowList :: [TlsError] -> ShowS
    showList :: [TlsError] -> ShowS
    Show, TlsError -> TlsError -> Bool
    (TlsError -> TlsError -> Bool)
    -> (TlsError -> TlsError -> Bool) -> Eq TlsError
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: TlsError -> TlsError -> Bool
    == :: TlsError -> TlsError -> Bool
    $c/= :: TlsError -> TlsError -> Bool
    /= :: TlsError -> TlsError -> Bool
    Eq)

    instance P.Enum TlsError where
        fromEnum :: TlsError -> Int
    fromEnum TlsError
    TlsErrorUnavailable = Int
    0
        fromEnum TlsError
    TlsErrorMisc = Int
    1
        fromEnum TlsError
    TlsErrorBadCertificate = Int
    2
        fromEnum TlsError
    TlsErrorNotTls = Int
    3
        fromEnum TlsError
    TlsErrorHandshake = Int
    4
        fromEnum TlsError
    TlsErrorCertificateRequired = Int
    5
        fromEnum TlsError
    TlsErrorEof = Int
    6
        fromEnum TlsError
    TlsErrorInappropriateFallback = Int
    7
        fromEnum TlsError
    TlsErrorBadCertificatePassword = Int
    8
        fromEnum (AnotherTlsError Int
    k) = Int
    k

        toEnum :: Int -> TlsError
    toEnum Int
    0 = TlsError
    TlsErrorUnavailable
        toEnum Int
    1 = TlsError
    TlsErrorMisc
        toEnum Int
    2 = TlsError
    TlsErrorBadCertificate
        toEnum Int
    3 = TlsError
    TlsErrorNotTls
        toEnum Int
    4 = TlsError
    TlsErrorHandshake
        toEnum Int
    5 = TlsError
    TlsErrorCertificateRequired
        toEnum Int
    6 = TlsError
    TlsErrorEof
        toEnum Int
    7 = TlsError
    TlsErrorInappropriateFallback
        toEnum Int
    8 = TlsError
    TlsErrorBadCertificatePassword
        toEnum Int
    k = Int -> TlsError
    AnotherTlsError Int
    k

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

    instance GErrorClass TlsError where
        gerrorClassDomain :: TlsError -> Text
    gerrorClassDomain TlsError
    _ = Text
    "g-tls-error-quark"

    -- | Catch exceptions of type `TlsError`. This is a specialized version of `Data.GI.Base.GError.catchGErrorJustDomain`.
    catchTlsError ::
        IO a ->
        (TlsError -> GErrorMessage -> IO a) ->
        IO a
    catchTlsError :: forall a. IO a -> (TlsError -> Text -> IO a) -> IO a
    catchTlsError = IO a -> (TlsError -> Text -> IO a) -> IO a
    forall err a.
    GErrorClass err =>
    IO a -> (err -> Text -> IO a) -> IO a
    catchGErrorJustDomain

    -- | Handle exceptions of type `TlsError`. This is a specialized version of `Data.GI.Base.GError.handleGErrorJustDomain`.
    handleTlsError ::
        (TlsError -> GErrorMessage -> IO a) ->
        IO a ->
        IO a
    handleTlsError :: forall a. (TlsError -> Text -> IO a) -> IO a -> IO a
    handleTlsError = (TlsError -> Text -> IO a) -> IO a -> IO a
    forall err a.
    GErrorClass err =>
    (err -> Text -> IO a) -> IO a -> IO a
    handleGErrorJustDomain

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

    foreign import ccall "g_tls_error_get_type" c_g_tls_error_get_type ::
        IO GType

    instance B.Types.TypedObject TlsError where
        glibType :: IO GType
    glibType = IO GType
    c_g_tls_error_get_type

    instance B.Types.BoxedEnum TlsError

    -- Enum TlsChannelBindingType
    -- | The type of TLS channel binding data to retrieve from t'GI.Gio.Objects.TlsConnection.TlsConnection'
    -- or t'GI.Gio.Interfaces.DtlsConnection.DtlsConnection', as documented by RFC 5929 or RFC 9266. The
    -- <https://tools.ietf.org/html/rfc5929#section-5 `tls-unique-for-telnet`>
    -- binding type is not currently implemented.
    --
    -- /Since: 2.66/
    data TlsChannelBindingType =
          TlsChannelBindingTypeUnique
        -- ^ <https://tools.ietf.org/html/rfc5929#section-3 `tls-unique`> binding
        --    type
        | TlsChannelBindingTypeServerEndPoint
        -- ^ <https://tools.ietf.org/html/rfc5929#section-4 `tls-server-end-point`>
        --    binding type
        | TlsChannelBindingTypeExporter
        -- ^ <https://www.rfc-editor.org/rfc/rfc9266.html `tls-exporter`> binding
        --    type. Since: 2.74
        | AnotherTlsChannelBindingType Int
        -- ^ Catch-all for unknown values
        deriving (Int -> TlsChannelBindingType -> ShowS
    [TlsChannelBindingType] -> ShowS
    TlsChannelBindingType -> String
    (Int -> TlsChannelBindingType -> ShowS)
    -> (TlsChannelBindingType -> String)
    -> ([TlsChannelBindingType] -> ShowS)
    -> Show TlsChannelBindingType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> TlsChannelBindingType -> ShowS
    showsPrec :: Int -> TlsChannelBindingType -> ShowS
    $cshow :: TlsChannelBindingType -> String
    show :: TlsChannelBindingType -> String
    $cshowList :: [TlsChannelBindingType] -> ShowS
    showList :: [TlsChannelBindingType] -> ShowS
    Show, TlsChannelBindingType -> TlsChannelBindingType -> Bool
    (TlsChannelBindingType -> TlsChannelBindingType -> Bool)
    -> (TlsChannelBindingType -> TlsChannelBindingType -> Bool)
    -> Eq TlsChannelBindingType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: TlsChannelBindingType -> TlsChannelBindingType -> Bool
    == :: TlsChannelBindingType -> TlsChannelBindingType -> Bool
    $c/= :: TlsChannelBindingType -> TlsChannelBindingType -> Bool
    /= :: TlsChannelBindingType -> TlsChannelBindingType -> Bool
    Eq)

    instance P.Enum TlsChannelBindingType where
        fromEnum :: TlsChannelBindingType -> Int
    fromEnum TlsChannelBindingType
    TlsChannelBindingTypeUnique = Int
    0
        fromEnum TlsChannelBindingType
    TlsChannelBindingTypeServerEndPoint = Int
    1
        fromEnum TlsChannelBindingType
    TlsChannelBindingTypeExporter = Int
    2
        fromEnum (AnotherTlsChannelBindingType Int
    k) = Int
    k

        toEnum :: Int -> TlsChannelBindingType
    toEnum Int
    0 = TlsChannelBindingType
    TlsChannelBindingTypeUnique
        toEnum Int
    1 = TlsChannelBindingType
    TlsChannelBindingTypeServerEndPoint
        toEnum Int
    2 = TlsChannelBindingType
    TlsChannelBindingTypeExporter
        toEnum Int
    k = Int -> TlsChannelBindingType
    AnotherTlsChannelBindingType Int
    k

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

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

    foreign import ccall "g_tls_channel_binding_type_get_type" c_g_tls_channel_binding_type_get_type ::
        IO GType

    instance B.Types.TypedObject TlsChannelBindingType where
        glibType :: IO GType
    glibType = IO GType
    c_g_tls_channel_binding_type_get_type

    instance B.Types.BoxedEnum TlsChannelBindingType

    -- Enum TlsChannelBindingError
    -- | An error code used with @/G_TLS_CHANNEL_BINDING_ERROR/@ in a t'GError' to
    -- indicate a TLS channel binding retrieval error.
    --
    -- /Since: 2.66/
    data TlsChannelBindingError =
          TlsChannelBindingErrorNotImplemented
        -- ^ Either entire binding
        --    retrieval facility or specific binding type is not implemented in the
        --    TLS backend.
        | TlsChannelBindingErrorInvalidState
        -- ^ The handshake is not yet
        --    complete on the connection which is a strong requirement for any existing
        --    binding type.
        | TlsChannelBindingErrorNotAvailable
        -- ^ Handshake is complete but
        --    binding data is not available. That normally indicates the TLS
        --    implementation failed to provide the binding data. For example, some
        --    implementations do not provide a peer certificate for resumed connections.
        | TlsChannelBindingErrorNotSupported
        -- ^ Binding type is not supported
        --    on the current connection. This error could be triggered when requesting
        --    @tls-server-end-point@ binding data for a certificate which has no hash
        --    function or uses multiple hash functions.
        | TlsChannelBindingErrorGeneralError
        -- ^ Any other backend error
        --    preventing binding data retrieval.
        | AnotherTlsChannelBindingError Int
        -- ^ Catch-all for unknown values
        deriving (Int -> TlsChannelBindingError -> ShowS
    [TlsChannelBindingError] -> ShowS
    TlsChannelBindingError -> String
    (Int -> TlsChannelBindingError -> ShowS)
    -> (TlsChannelBindingError -> String)
    -> ([TlsChannelBindingError] -> ShowS)
    -> Show TlsChannelBindingError
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> TlsChannelBindingError -> ShowS
    showsPrec :: Int -> TlsChannelBindingError -> ShowS
    $cshow :: TlsChannelBindingError -> String
    show :: TlsChannelBindingError -> String
    $cshowList :: [TlsChannelBindingError] -> ShowS
    showList :: [TlsChannelBindingError] -> ShowS
    Show, TlsChannelBindingError -> TlsChannelBindingError -> Bool
    (TlsChannelBindingError -> TlsChannelBindingError -> Bool)
    -> (TlsChannelBindingError -> TlsChannelBindingError -> Bool)
    -> Eq TlsChannelBindingError
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: TlsChannelBindingError -> TlsChannelBindingError -> Bool
    == :: TlsChannelBindingError -> TlsChannelBindingError -> Bool
    $c/= :: TlsChannelBindingError -> TlsChannelBindingError -> Bool
    /= :: TlsChannelBindingError -> TlsChannelBindingError -> Bool
    Eq)

    instance P.Enum TlsChannelBindingError where
        fromEnum :: TlsChannelBindingError -> Int
    fromEnum TlsChannelBindingError
    TlsChannelBindingErrorNotImplemented = Int
    0
        fromEnum TlsChannelBindingError
    TlsChannelBindingErrorInvalidState = Int
    1
        fromEnum TlsChannelBindingError
    TlsChannelBindingErrorNotAvailable = Int
    2
        fromEnum TlsChannelBindingError
    TlsChannelBindingErrorNotSupported = Int
    3
        fromEnum TlsChannelBindingError
    TlsChannelBindingErrorGeneralError = Int
    4
        fromEnum (AnotherTlsChannelBindingError Int
    k) = Int
    k

        toEnum :: Int -> TlsChannelBindingError
    toEnum Int
    0 = TlsChannelBindingError
    TlsChannelBindingErrorNotImplemented
        toEnum Int
    1 = TlsChannelBindingError
    TlsChannelBindingErrorInvalidState
        toEnum Int
    2 = TlsChannelBindingError
    TlsChannelBindingErrorNotAvailable
        toEnum Int
    3 = TlsChannelBindingError
    TlsChannelBindingErrorNotSupported
        toEnum Int
    4 = TlsChannelBindingError
    TlsChannelBindingErrorGeneralError
        toEnum Int
    k = Int -> TlsChannelBindingError
    AnotherTlsChannelBindingError Int
    k

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

    instance GErrorClass TlsChannelBindingError where
        gerrorClassDomain :: TlsChannelBindingError -> Text
    gerrorClassDomain TlsChannelBindingError
    _ = Text
    "g-tls-channel-binding-error-quark"

    -- | Catch exceptions of type `TlsChannelBindingError`. This is a specialized version of `Data.GI.Base.GError.catchGErrorJustDomain`.
    catchTlsChannelBindingError ::
        IO a ->
        (TlsChannelBindingError -> GErrorMessage -> IO a) ->
        IO a
    catchTlsChannelBindingError :: forall a. IO a -> (TlsChannelBindingError -> Text -> IO a) -> IO a
    catchTlsChannelBindingError = IO a -> (TlsChannelBindingError -> Text -> IO a) -> IO a
    forall err a.
    GErrorClass err =>
    IO a -> (err -> Text -> IO a) -> IO a
    catchGErrorJustDomain

    -- | Handle exceptions of type `TlsChannelBindingError`. This is a specialized version of `Data.GI.Base.GError.handleGErrorJustDomain`.
    handleTlsChannelBindingError ::
        (TlsChannelBindingError -> GErrorMessage -> IO a) ->
        IO a ->
        IO a
    handleTlsChannelBindingError :: forall a. (TlsChannelBindingError -> Text -> IO a) -> IO a -> IO a
    handleTlsChannelBindingError = (TlsChannelBindingError -> Text -> IO a) -> IO a -> IO a
    forall err a.
    GErrorClass err =>
    (err -> Text -> IO a) -> IO a -> IO a
    handleGErrorJustDomain

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

    foreign import ccall "g_tls_channel_binding_error_get_type" c_g_tls_channel_binding_error_get_type ::
        IO GType

    instance B.Types.TypedObject TlsChannelBindingError where
        glibType :: IO GType
    glibType = IO GType
    c_g_tls_channel_binding_error_get_type

    instance B.Types.BoxedEnum TlsChannelBindingError

    -- Enum TlsAuthenticationMode
    -- | The client authentication mode for a t'GI.Gio.Interfaces.TlsServerConnection.TlsServerConnection'.
    --
    -- /Since: 2.28/
    data TlsAuthenticationMode =
          TlsAuthenticationModeNone
        -- ^ client authentication not required
        | TlsAuthenticationModeRequested
        -- ^ client authentication is requested
        | TlsAuthenticationModeRequired
        -- ^ client authentication is required
        | AnotherTlsAuthenticationMode Int
        -- ^ Catch-all for unknown values
        deriving (Int -> TlsAuthenticationMode -> ShowS
    [TlsAuthenticationMode] -> ShowS
    TlsAuthenticationMode -> String
    (Int -> TlsAuthenticationMode -> ShowS)
    -> (TlsAuthenticationMode -> String)
    -> ([TlsAuthenticationMode] -> ShowS)
    -> Show TlsAuthenticationMode
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> TlsAuthenticationMode -> ShowS
    showsPrec :: Int -> TlsAuthenticationMode -> ShowS
    $cshow :: TlsAuthenticationMode -> String
    show :: TlsAuthenticationMode -> String
    $cshowList :: [TlsAuthenticationMode] -> ShowS
    showList :: [TlsAuthenticationMode] -> ShowS
    Show, TlsAuthenticationMode -> TlsAuthenticationMode -> Bool
    (TlsAuthenticationMode -> TlsAuthenticationMode -> Bool)
    -> (TlsAuthenticationMode -> TlsAuthenticationMode -> Bool)
    -> Eq TlsAuthenticationMode
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: TlsAuthenticationMode -> TlsAuthenticationMode -> Bool
    == :: TlsAuthenticationMode -> TlsAuthenticationMode -> Bool
    $c/= :: TlsAuthenticationMode -> TlsAuthenticationMode -> Bool
    /= :: TlsAuthenticationMode -> TlsAuthenticationMode -> Bool
    Eq)

    instance P.Enum TlsAuthenticationMode where
        fromEnum :: TlsAuthenticationMode -> Int
    fromEnum TlsAuthenticationMode
    TlsAuthenticationModeNone = Int
    0
        fromEnum TlsAuthenticationMode
    TlsAuthenticationModeRequested = Int
    1
        fromEnum TlsAuthenticationMode
    TlsAuthenticationModeRequired = Int
    2
        fromEnum (AnotherTlsAuthenticationMode Int
    k) = Int
    k

        toEnum :: Int -> TlsAuthenticationMode
    toEnum Int
    0 = TlsAuthenticationMode
    TlsAuthenticationModeNone
        toEnum Int
    1 = TlsAuthenticationMode
    TlsAuthenticationModeRequested
        toEnum Int
    2 = TlsAuthenticationMode
    TlsAuthenticationModeRequired
        toEnum Int
    k = Int -> TlsAuthenticationMode
    AnotherTlsAuthenticationMode Int
    k

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

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

    foreign import ccall "g_tls_authentication_mode_get_type" c_g_tls_authentication_mode_get_type ::
        IO GType

    instance B.Types.TypedObject TlsAuthenticationMode where
        glibType :: IO GType
    glibType = IO GType
    c_g_tls_authentication_mode_get_type

    instance B.Types.BoxedEnum TlsAuthenticationMode

    -- Enum SocketType
    -- | Flags used when creating a t'GI.Gio.Objects.Socket.Socket'. Some protocols may not implement
    -- all the socket types.
    --
    -- /Since: 2.22/
    data SocketType =
          SocketTypeInvalid
        -- ^ Type unknown or wrong
        | SocketTypeStream
        -- ^ Reliable connection-based byte streams (e.g. TCP).
        | SocketTypeDatagram
        -- ^ Connectionless, unreliable datagram passing.
        --     (e.g. UDP)
        | SocketTypeSeqpacket
        -- ^ Reliable connection-based passing of datagrams
        --     of fixed maximum length (e.g. SCTP).
        | AnotherSocketType Int
        -- ^ Catch-all for unknown values
        deriving (Int -> SocketType -> ShowS
    [SocketType] -> ShowS
    SocketType -> String
    (Int -> SocketType -> ShowS)
    -> (SocketType -> String)
    -> ([SocketType] -> ShowS)
    -> Show SocketType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> SocketType -> ShowS
    showsPrec :: Int -> SocketType -> ShowS
    $cshow :: SocketType -> String
    show :: SocketType -> String
    $cshowList :: [SocketType] -> ShowS
    showList :: [SocketType] -> ShowS
    Show, SocketType -> SocketType -> Bool
    (SocketType -> SocketType -> Bool)
    -> (SocketType -> SocketType -> Bool) -> Eq SocketType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: SocketType -> SocketType -> Bool
    == :: SocketType -> SocketType -> Bool
    $c/= :: SocketType -> SocketType -> Bool
    /= :: SocketType -> SocketType -> Bool
    Eq)

    instance P.Enum SocketType where
        fromEnum :: SocketType -> Int
    fromEnum SocketType
    SocketTypeInvalid = Int
    0
        fromEnum SocketType
    SocketTypeStream = Int
    1
        fromEnum SocketType
    SocketTypeDatagram = Int
    2
        fromEnum SocketType
    SocketTypeSeqpacket = Int
    3
        fromEnum (AnotherSocketType Int
    k) = Int
    k

        toEnum :: Int -> SocketType
    toEnum Int
    0 = SocketType
    SocketTypeInvalid
        toEnum Int
    1 = SocketType
    SocketTypeStream
        toEnum Int
    2 = SocketType
    SocketTypeDatagram
        toEnum Int
    3 = SocketType
    SocketTypeSeqpacket
        toEnum Int
    k = Int -> SocketType
    AnotherSocketType Int
    k

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

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

    foreign import ccall "g_socket_type_get_type" c_g_socket_type_get_type ::
        IO GType

    instance B.Types.TypedObject SocketType where
        glibType :: IO GType
    glibType = IO GType
    c_g_socket_type_get_type

    instance B.Types.BoxedEnum SocketType

    -- Enum SocketProtocol
    -- | A protocol identifier is specified when creating a t'GI.Gio.Objects.Socket.Socket', which is a
    -- family\/type specific identifier, where 0 means the default protocol for
    -- the particular family\/type.
    --
    -- This enum contains a set of commonly available and used protocols. You
    -- can also pass any other identifiers handled by the platform in order to
    -- use protocols not listed here.
    --
    -- /Since: 2.22/
    data SocketProtocol =
          SocketProtocolUnknown
        -- ^ The protocol type is unknown
        | SocketProtocolDefault
        -- ^ The default protocol for the family\/type
        | SocketProtocolTcp
        -- ^ TCP over IP
        | SocketProtocolUdp
        -- ^ UDP over IP
        | SocketProtocolSctp
        -- ^ SCTP over IP
        | AnotherSocketProtocol Int
        -- ^ Catch-all for unknown values
        deriving (Int -> SocketProtocol -> ShowS
    [SocketProtocol] -> ShowS
    SocketProtocol -> String
    (Int -> SocketProtocol -> ShowS)
    -> (SocketProtocol -> String)
    -> ([SocketProtocol] -> ShowS)
    -> Show SocketProtocol
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> SocketProtocol -> ShowS
    showsPrec :: Int -> SocketProtocol -> ShowS
    $cshow :: SocketProtocol -> String
    show :: SocketProtocol -> String
    $cshowList :: [SocketProtocol] -> ShowS
    showList :: [SocketProtocol] -> ShowS
    Show, SocketProtocol -> SocketProtocol -> Bool
    (SocketProtocol -> SocketProtocol -> Bool)
    -> (SocketProtocol -> SocketProtocol -> Bool) -> Eq SocketProtocol
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: SocketProtocol -> SocketProtocol -> Bool
    == :: SocketProtocol -> SocketProtocol -> Bool
    $c/= :: SocketProtocol -> SocketProtocol -> Bool
    /= :: SocketProtocol -> SocketProtocol -> Bool
    Eq)

    instance P.Enum SocketProtocol where
        fromEnum :: SocketProtocol -> Int
    fromEnum SocketProtocol
    SocketProtocolUnknown = Int
    -1
        fromEnum SocketProtocol
    SocketProtocolDefault = Int
    0
        fromEnum SocketProtocol
    SocketProtocolTcp = Int
    6
        fromEnum SocketProtocol
    SocketProtocolUdp = Int
    17
        fromEnum SocketProtocol
    SocketProtocolSctp = Int
    132
        fromEnum (AnotherSocketProtocol Int
    k) = Int
    k

        toEnum :: Int -> SocketProtocol
    toEnum Int
    -1 = SocketProtocol
    SocketProtocolUnknown
        toEnum Int
    0 = SocketProtocol
    SocketProtocolDefault
        toEnum Int
    6 = SocketProtocol
    SocketProtocolTcp
        toEnum Int
    17 = SocketProtocol
    SocketProtocolUdp
        toEnum Int
    132 = SocketProtocol
    SocketProtocolSctp
        toEnum Int
    k = Int -> SocketProtocol
    AnotherSocketProtocol Int
    k

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

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

    foreign import ccall "g_socket_protocol_get_type" c_g_socket_protocol_get_type ::
        IO GType

    instance B.Types.TypedObject SocketProtocol where
        glibType :: IO GType
    glibType = IO GType
    c_g_socket_protocol_get_type

    instance B.Types.BoxedEnum SocketProtocol

    -- Enum SocketListenerEvent
    -- | Describes an event occurring on a t'GI.Gio.Objects.SocketListener.SocketListener'. See the
    -- [SocketListener::event]("GI.Gio.Objects.SocketListener#g:signal:event") signal for more details.
    --
    -- Additional values may be added to this type in the future.
    --
    -- /Since: 2.46/
    data SocketListenerEvent =
          SocketListenerEventBinding
        -- ^ The listener is about to bind a socket.
        | SocketListenerEventBound
        -- ^ The listener has bound a socket.
        | SocketListenerEventListening
        -- ^ The listener is about to start
        --    listening on this socket.
        | SocketListenerEventListened
        -- ^ The listener is now listening on
        --   this socket.
        | AnotherSocketListenerEvent Int
        -- ^ Catch-all for unknown values
        deriving (Int -> SocketListenerEvent -> ShowS
    [SocketListenerEvent] -> ShowS
    SocketListenerEvent -> String
    (Int -> SocketListenerEvent -> ShowS)
    -> (SocketListenerEvent -> String)
    -> ([SocketListenerEvent] -> ShowS)
    -> Show SocketListenerEvent
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> SocketListenerEvent -> ShowS
    showsPrec :: Int -> SocketListenerEvent -> ShowS
    $cshow :: SocketListenerEvent -> String
    show :: SocketListenerEvent -> String
    $cshowList :: [SocketListenerEvent] -> ShowS
    showList :: [SocketListenerEvent] -> ShowS
    Show, SocketListenerEvent -> SocketListenerEvent -> Bool
    (SocketListenerEvent -> SocketListenerEvent -> Bool)
    -> (SocketListenerEvent -> SocketListenerEvent -> Bool)
    -> Eq SocketListenerEvent
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: SocketListenerEvent -> SocketListenerEvent -> Bool
    == :: SocketListenerEvent -> SocketListenerEvent -> Bool
    $c/= :: SocketListenerEvent -> SocketListenerEvent -> Bool
    /= :: SocketListenerEvent -> SocketListenerEvent -> Bool
    Eq)

    instance P.Enum SocketListenerEvent where
        fromEnum :: SocketListenerEvent -> Int
    fromEnum SocketListenerEvent
    SocketListenerEventBinding = Int
    0
        fromEnum SocketListenerEvent
    SocketListenerEventBound = Int
    1
        fromEnum SocketListenerEvent
    SocketListenerEventListening = Int
    2
        fromEnum SocketListenerEvent
    SocketListenerEventListened = Int
    3
        fromEnum (AnotherSocketListenerEvent Int
    k) = Int
    k

        toEnum :: Int -> SocketListenerEvent
    toEnum Int
    0 = SocketListenerEvent
    SocketListenerEventBinding
        toEnum Int
    1 = SocketListenerEvent
    SocketListenerEventBound
        toEnum Int
    2 = SocketListenerEvent
    SocketListenerEventListening
        toEnum Int
    3 = SocketListenerEvent
    SocketListenerEventListened
        toEnum Int
    k = Int -> SocketListenerEvent
    AnotherSocketListenerEvent Int
    k

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

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

    foreign import ccall "g_socket_listener_event_get_type" c_g_socket_listener_event_get_type ::
        IO GType

    instance B.Types.TypedObject SocketListenerEvent where
        glibType :: IO GType
    glibType = IO GType
    c_g_socket_listener_event_get_type

    instance B.Types.BoxedEnum SocketListenerEvent

    -- Enum SocketFamily
    -- | The protocol family of a t'GI.Gio.Objects.SocketAddress.SocketAddress'. (These values are
    -- identical to the system defines @/AF_INET/@, @/AF_INET6/@ and @/AF_UNIX/@,
    -- if available.)
    --
    -- /Since: 2.22/
    data SocketFamily =
          SocketFamilyInvalid
        -- ^ no address family
        | SocketFamilyUnix
        -- ^ the UNIX domain family
        | SocketFamilyIpv4
        -- ^ the IPv4 family
        | SocketFamilyIpv6
        -- ^ the IPv6 family
        | AnotherSocketFamily Int
        -- ^ Catch-all for unknown values
        deriving (Int -> SocketFamily -> ShowS
    [SocketFamily] -> ShowS
    SocketFamily -> String
    (Int -> SocketFamily -> ShowS)
    -> (SocketFamily -> String)
    -> ([SocketFamily] -> ShowS)
    -> Show SocketFamily
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> SocketFamily -> ShowS
    showsPrec :: Int -> SocketFamily -> ShowS
    $cshow :: SocketFamily -> String
    show :: SocketFamily -> String
    $cshowList :: [SocketFamily] -> ShowS
    showList :: [SocketFamily] -> ShowS
    Show, SocketFamily -> SocketFamily -> Bool
    (SocketFamily -> SocketFamily -> Bool)
    -> (SocketFamily -> SocketFamily -> Bool) -> Eq SocketFamily
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: SocketFamily -> SocketFamily -> Bool
    == :: SocketFamily -> SocketFamily -> Bool
    $c/= :: SocketFamily -> SocketFamily -> Bool
    /= :: SocketFamily -> SocketFamily -> Bool
    Eq)

    instance P.Enum SocketFamily where
        fromEnum :: SocketFamily -> Int
    fromEnum SocketFamily
    SocketFamilyInvalid = Int
    0
        fromEnum SocketFamily
    SocketFamilyUnix = Int
    1
        fromEnum SocketFamily
    SocketFamilyIpv4 = Int
    2
        fromEnum SocketFamily
    SocketFamilyIpv6 = Int
    10
        fromEnum (AnotherSocketFamily Int
    k) = Int
    k

        toEnum :: Int -> SocketFamily
    toEnum Int
    0 = SocketFamily
    SocketFamilyInvalid
        toEnum Int
    1 = SocketFamily
    SocketFamilyUnix
        toEnum Int
    2 = SocketFamily
    SocketFamilyIpv4
        toEnum Int
    10 = SocketFamily
    SocketFamilyIpv6
        toEnum Int
    k = Int -> SocketFamily
    AnotherSocketFamily Int
    k

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

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

    foreign import ccall "g_socket_family_get_type" c_g_socket_family_get_type ::
        IO GType

    instance B.Types.TypedObject SocketFamily where
        glibType :: IO GType
    glibType = IO GType
    c_g_socket_family_get_type

    instance B.Types.BoxedEnum SocketFamily

    -- Enum SocketClientEvent
    -- | Describes an event occurring on a t'GI.Gio.Objects.SocketClient.SocketClient'. See the
    -- [SocketClient::event]("GI.Gio.Objects.SocketClient#g:signal:event") signal for more details.
    --
    -- Additional values may be added to this type in the future.
    --
    -- /Since: 2.32/
    data SocketClientEvent =
          SocketClientEventResolving
        -- ^ The client is doing a DNS lookup.
        | SocketClientEventResolved
        -- ^ The client has completed a DNS lookup.
        | SocketClientEventConnecting
        -- ^ The client is connecting to a remote
        --   host (either a proxy or the destination server).
        | SocketClientEventConnected
        -- ^ The client has connected to a remote
        --   host.
        | SocketClientEventProxyNegotiating
        -- ^ The client is negotiating
        --   with a proxy to connect to the destination server.
        | SocketClientEventProxyNegotiated
        -- ^ The client has negotiated
        --   with the proxy server.
        | SocketClientEventTlsHandshaking
        -- ^ The client is performing a
        --   TLS handshake.
        | SocketClientEventTlsHandshaked
        -- ^ The client has performed a
        --   TLS handshake.
        | SocketClientEventComplete
        -- ^ The client is done with a particular
        --   t'GI.Gio.Interfaces.SocketConnectable.SocketConnectable'.
        | AnotherSocketClientEvent Int
        -- ^ Catch-all for unknown values
        deriving (Int -> SocketClientEvent -> ShowS
    [SocketClientEvent] -> ShowS
    SocketClientEvent -> String
    (Int -> SocketClientEvent -> ShowS)
    -> (SocketClientEvent -> String)
    -> ([SocketClientEvent] -> ShowS)
    -> Show SocketClientEvent
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> SocketClientEvent -> ShowS
    showsPrec :: Int -> SocketClientEvent -> ShowS
    $cshow :: SocketClientEvent -> String
    show :: SocketClientEvent -> String
    $cshowList :: [SocketClientEvent] -> ShowS
    showList :: [SocketClientEvent] -> ShowS
    Show, SocketClientEvent -> SocketClientEvent -> Bool
    (SocketClientEvent -> SocketClientEvent -> Bool)
    -> (SocketClientEvent -> SocketClientEvent -> Bool)
    -> Eq SocketClientEvent
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: SocketClientEvent -> SocketClientEvent -> Bool
    == :: SocketClientEvent -> SocketClientEvent -> Bool
    $c/= :: SocketClientEvent -> SocketClientEvent -> Bool
    /= :: SocketClientEvent -> SocketClientEvent -> Bool
    Eq)

    instance P.Enum SocketClientEvent where
        fromEnum :: SocketClientEvent -> Int
    fromEnum SocketClientEvent
    SocketClientEventResolving = Int
    0
        fromEnum SocketClientEvent
    SocketClientEventResolved = Int
    1
        fromEnum SocketClientEvent
    SocketClientEventConnecting = Int
    2
        fromEnum SocketClientEvent
    SocketClientEventConnected = Int
    3
        fromEnum SocketClientEvent
    SocketClientEventProxyNegotiating = Int
    4
        fromEnum SocketClientEvent
    SocketClientEventProxyNegotiated = Int
    5
        fromEnum SocketClientEvent
    SocketClientEventTlsHandshaking = Int
    6
        fromEnum SocketClientEvent
    SocketClientEventTlsHandshaked = Int
    7
        fromEnum SocketClientEvent
    SocketClientEventComplete = Int
    8
        fromEnum (AnotherSocketClientEvent Int
    k) = Int
    k

        toEnum :: Int -> SocketClientEvent
    toEnum Int
    0 = SocketClientEvent
    SocketClientEventResolving
        toEnum Int
    1 = SocketClientEvent
    SocketClientEventResolved
        toEnum Int
    2 = SocketClientEvent
    SocketClientEventConnecting
        toEnum Int
    3 = SocketClientEvent
    SocketClientEventConnected
        toEnum Int
    4 = SocketClientEvent
    SocketClientEventProxyNegotiating
        toEnum Int
    5 = SocketClientEvent
    SocketClientEventProxyNegotiated
        toEnum Int
    6 = SocketClientEvent
    SocketClientEventTlsHandshaking
        toEnum Int
    7 = SocketClientEvent
    SocketClientEventTlsHandshaked
        toEnum Int
    8 = SocketClientEvent
    SocketClientEventComplete
        toEnum Int
    k = Int -> SocketClientEvent
    AnotherSocketClientEvent Int
    k

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

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

    foreign import ccall "g_socket_client_event_get_type" c_g_socket_client_event_get_type ::
        IO GType

    instance B.Types.TypedObject SocketClientEvent where
        glibType :: IO GType
    glibType = IO GType
    c_g_socket_client_event_get_type

    instance B.Types.BoxedEnum SocketClientEvent

    -- Enum ResourceError
    -- | An error code used with @/G_RESOURCE_ERROR/@ in a t'GError' returned
    -- from a t'GI.Gio.Structs.Resource.Resource' routine.
    --
    -- /Since: 2.32/
    data ResourceError =
          ResourceErrorNotFound
        -- ^ no file was found at the requested path
        | ResourceErrorInternal
        -- ^ unknown error
        | AnotherResourceError Int
        -- ^ Catch-all for unknown values
        deriving (Int -> ResourceError -> ShowS
    [ResourceError] -> ShowS
    ResourceError -> String
    (Int -> ResourceError -> ShowS)
    -> (ResourceError -> String)
    -> ([ResourceError] -> ShowS)
    -> Show ResourceError
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> ResourceError -> ShowS
    showsPrec :: Int -> ResourceError -> ShowS
    $cshow :: ResourceError -> String
    show :: ResourceError -> String
    $cshowList :: [ResourceError] -> ShowS
    showList :: [ResourceError] -> ShowS
    Show, ResourceError -> ResourceError -> Bool
    (ResourceError -> ResourceError -> Bool)
    -> (ResourceError -> ResourceError -> Bool) -> Eq ResourceError
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: ResourceError -> ResourceError -> Bool
    == :: ResourceError -> ResourceError -> Bool
    $c/= :: ResourceError -> ResourceError -> Bool
    /= :: ResourceError -> ResourceError -> Bool
    Eq)

    instance P.Enum ResourceError where
        fromEnum :: ResourceError -> Int
    fromEnum ResourceError
    ResourceErrorNotFound = Int
    0
        fromEnum ResourceError
    ResourceErrorInternal = Int
    1
        fromEnum (AnotherResourceError Int
    k) = Int
    k

        toEnum :: Int -> ResourceError
    toEnum Int
    0 = ResourceError
    ResourceErrorNotFound
        toEnum Int
    1 = ResourceError
    ResourceErrorInternal
        toEnum Int
    k = Int -> ResourceError
    AnotherResourceError Int
    k

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

    instance GErrorClass ResourceError where
        gerrorClassDomain :: ResourceError -> Text
    gerrorClassDomain ResourceError
    _ = Text
    "g-resource-error-quark"

    -- | Catch exceptions of type `ResourceError`. This is a specialized version of `Data.GI.Base.GError.catchGErrorJustDomain`.
    catchResourceError ::
        IO a ->
        (ResourceError -> GErrorMessage -> IO a) ->
        IO a
    catchResourceError :: forall a. IO a -> (ResourceError -> Text -> IO a) -> IO a
    catchResourceError = IO a -> (ResourceError -> Text -> IO a) -> IO a
    forall err a.
    GErrorClass err =>
    IO a -> (err -> Text -> IO a) -> IO a
    catchGErrorJustDomain

    -- | Handle exceptions of type `ResourceError`. This is a specialized version of `Data.GI.Base.GError.handleGErrorJustDomain`.
    handleResourceError ::
        (ResourceError -> GErrorMessage -> IO a) ->
        IO a ->
        IO a
    handleResourceError :: forall a. (ResourceError -> Text -> IO a) -> IO a -> IO a
    handleResourceError = (ResourceError -> Text -> IO a) -> IO a -> IO a
    forall err a.
    GErrorClass err =>
    (err -> Text -> IO a) -> IO a -> IO a
    handleGErrorJustDomain

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

    foreign import ccall "g_resource_error_get_type" c_g_resource_error_get_type ::
        IO GType

    instance B.Types.TypedObject ResourceError where
        glibType :: IO GType
    glibType = IO GType
    c_g_resource_error_get_type

    instance B.Types.BoxedEnum ResourceError

    -- Enum ResolverRecordType
    -- | The type of record that 'GI.Gio.Objects.Resolver.resolverLookupRecords' or
    -- 'GI.Gio.Objects.Resolver.resolverLookupRecordsAsync' should retrieve. The records are returned
    -- as lists of t'GVariant' tuples. Each record type has different values in
    -- the variant tuples returned.
    --
    -- 'GI.Gio.Enums.ResolverRecordTypeSrv' records are returned as variants with the signature
    -- @(qqqs)@, containing a @guint16@ with the priority, a @guint16@ with the
    -- weight, a @guint16@ with the port, and a string of the hostname.
    --
    -- 'GI.Gio.Enums.ResolverRecordTypeMx' records are returned as variants with the signature
    -- @(qs)@, representing a @guint16@ with the preference, and a string containing
    -- the mail exchanger hostname.
    --
    -- 'GI.Gio.Enums.ResolverRecordTypeTxt' records are returned as variants with the signature
    -- @(as)@, representing an array of the strings in the text record. Note: Most TXT
    -- records only contain a single string, but
    -- <https://tools.ietf.org/html/rfc1035#section-3.3.14 RFC 1035> does allow a
    -- record to contain multiple strings. The RFC which defines the interpretation
    -- of a specific TXT record will likely require concatenation of multiple
    -- strings if they are present, as with
    -- <https://tools.ietf.org/html/rfc7208#section-3.3 RFC 7208>.
    --
    -- 'GI.Gio.Enums.ResolverRecordTypeSoa' records are returned as variants with the signature
    -- @(ssuuuuu)@, representing a string containing the primary name server, a
    -- string containing the administrator, the serial as a @guint32@, the refresh
    -- interval as a @guint32@, the retry interval as a @guint32@, the expire timeout
    -- as a @guint32@, and the TTL as a @guint32@.
    --
    -- 'GI.Gio.Enums.ResolverRecordTypeNs' records are returned as variants with the signature
    -- @(s)@, representing a string of the hostname of the name server.
    --
    -- /Since: 2.34/
    data ResolverRecordType =
          ResolverRecordTypeSrv
        -- ^ look up DNS SRV records for a domain
        | ResolverRecordTypeMx
        -- ^ look up DNS MX records for a domain
        | ResolverRecordTypeTxt
        -- ^ look up DNS TXT records for a name
        | ResolverRecordTypeSoa
        -- ^ look up DNS SOA records for a zone
        | ResolverRecordTypeNs
        -- ^ look up DNS NS records for a domain
        | AnotherResolverRecordType Int
        -- ^ Catch-all for unknown values
        deriving (Int -> ResolverRecordType -> ShowS
    [ResolverRecordType] -> ShowS
    ResolverRecordType -> String
    (Int -> ResolverRecordType -> ShowS)
    -> (ResolverRecordType -> String)
    -> ([ResolverRecordType] -> ShowS)
    -> Show ResolverRecordType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> ResolverRecordType -> ShowS
    showsPrec :: Int -> ResolverRecordType -> ShowS
    $cshow :: ResolverRecordType -> String
    show :: ResolverRecordType -> String
    $cshowList :: [ResolverRecordType] -> ShowS
    showList :: [ResolverRecordType] -> ShowS
    Show, ResolverRecordType -> ResolverRecordType -> Bool
    (ResolverRecordType -> ResolverRecordType -> Bool)
    -> (ResolverRecordType -> ResolverRecordType -> Bool)
    -> Eq ResolverRecordType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: ResolverRecordType -> ResolverRecordType -> Bool
    == :: ResolverRecordType -> ResolverRecordType -> Bool
    $c/= :: ResolverRecordType -> ResolverRecordType -> Bool
    /= :: ResolverRecordType -> ResolverRecordType -> Bool
    Eq)

    instance P.Enum ResolverRecordType where
        fromEnum :: ResolverRecordType -> Int
    fromEnum ResolverRecordType
    ResolverRecordTypeSrv = Int
    1
        fromEnum ResolverRecordType
    ResolverRecordTypeMx = Int
    2
        fromEnum ResolverRecordType
    ResolverRecordTypeTxt = Int
    3
        fromEnum ResolverRecordType
    ResolverRecordTypeSoa = Int
    4
        fromEnum ResolverRecordType
    ResolverRecordTypeNs = Int
    5
        fromEnum (AnotherResolverRecordType Int
    k) = Int
    k

        toEnum :: Int -> ResolverRecordType
    toEnum Int
    1 = ResolverRecordType
    ResolverRecordTypeSrv
        toEnum Int
    2 = ResolverRecordType
    ResolverRecordTypeMx
        toEnum Int
    3 = ResolverRecordType
    ResolverRecordTypeTxt
        toEnum Int
    4 = ResolverRecordType
    ResolverRecordTypeSoa
        toEnum Int
    5 = ResolverRecordType
    ResolverRecordTypeNs
        toEnum Int
    k = Int -> ResolverRecordType
    AnotherResolverRecordType Int
    k

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

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

    foreign import ccall "g_resolver_record_type_get_type" c_g_resolver_record_type_get_type ::
        IO GType

    instance B.Types.TypedObject ResolverRecordType where
        glibType :: IO GType
    glibType = IO GType
    c_g_resolver_record_type_get_type

    instance B.Types.BoxedEnum ResolverRecordType

    -- Enum ResolverError
    -- | An error code used with @/G_RESOLVER_ERROR/@ in a t'GError' returned
    -- from a t'GI.Gio.Objects.Resolver.Resolver' routine.
    --
    -- /Since: 2.22/
    data ResolverError =
          ResolverErrorNotFound
        -- ^ the requested name\/address\/service was not
        --     found
        | ResolverErrorTemporaryFailure
        -- ^ the requested information could not
        --     be looked up due to a network error or similar problem
        | ResolverErrorInternal
        -- ^ unknown error
        | AnotherResolverError Int
        -- ^ Catch-all for unknown values
        deriving (Int -> ResolverError -> ShowS
    [ResolverError] -> ShowS
    ResolverError -> String
    (Int -> ResolverError -> ShowS)
    -> (ResolverError -> String)
    -> ([ResolverError] -> ShowS)
    -> Show ResolverError
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> ResolverError -> ShowS
    showsPrec :: Int -> ResolverError -> ShowS
    $cshow :: ResolverError -> String
    show :: ResolverError -> String
    $cshowList :: [ResolverError] -> ShowS
    showList :: [ResolverError] -> ShowS
    Show, ResolverError -> ResolverError -> Bool
    (ResolverError -> ResolverError -> Bool)
    -> (ResolverError -> ResolverError -> Bool) -> Eq ResolverError
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: ResolverError -> ResolverError -> Bool
    == :: ResolverError -> ResolverError -> Bool
    $c/= :: ResolverError -> ResolverError -> Bool
    /= :: ResolverError -> ResolverError -> Bool
    Eq)

    instance P.Enum ResolverError where
        fromEnum :: ResolverError -> Int
    fromEnum ResolverError
    ResolverErrorNotFound = Int
    0
        fromEnum ResolverError
    ResolverErrorTemporaryFailure = Int
    1
        fromEnum ResolverError
    ResolverErrorInternal = Int
    2
        fromEnum (AnotherResolverError Int
    k) = Int
    k

        toEnum :: Int -> ResolverError
    toEnum Int
    0 = ResolverError
    ResolverErrorNotFound
        toEnum Int
    1 = ResolverError
    ResolverErrorTemporaryFailure
        toEnum Int
    2 = ResolverError
    ResolverErrorInternal
        toEnum Int
    k = Int -> ResolverError
    AnotherResolverError Int
    k

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

    instance GErrorClass ResolverError where
        gerrorClassDomain :: ResolverError -> Text
    gerrorClassDomain ResolverError
    _ = Text
    "g-resolver-error-quark"

    -- | Catch exceptions of type `ResolverError`. This is a specialized version of `Data.GI.Base.GError.catchGErrorJustDomain`.
    catchResolverError ::
        IO a ->
        (ResolverError -> GErrorMessage -> IO a) ->
        IO a
    catchResolverError :: forall a. IO a -> (ResolverError -> Text -> IO a) -> IO a
    catchResolverError = IO a -> (ResolverError -> Text -> IO a) -> IO a
    forall err a.
    GErrorClass err =>
    IO a -> (err -> Text -> IO a) -> IO a
    catchGErrorJustDomain

    -- | Handle exceptions of type `ResolverError`. This is a specialized version of `Data.GI.Base.GError.handleGErrorJustDomain`.
    handleResolverError ::
        (ResolverError -> GErrorMessage -> IO a) ->
        IO a ->
        IO a
    handleResolverError :: forall a. (ResolverError -> Text -> IO a) -> IO a -> IO a
    handleResolverError = (ResolverError -> Text -> IO a) -> IO a -> IO a
    forall err a.
    GErrorClass err =>
    (err -> Text -> IO a) -> IO a -> IO a
    handleGErrorJustDomain

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

    foreign import ccall "g_resolver_error_get_type" c_g_resolver_error_get_type ::
        IO GType

    instance B.Types.TypedObject ResolverError where
        glibType :: IO GType
    glibType = IO GType
    c_g_resolver_error_get_type

    instance B.Types.BoxedEnum ResolverError

    -- Enum PollableReturn
    -- | Return value for various IO operations that signal errors via the
    -- return value and not necessarily via a t'GError'.
    --
    -- This enum exists to be able to return errors to callers without having to
    -- allocate a t'GError'. Allocating @/GErrors/@ can be quite expensive for
    -- regularly happening errors like 'GI.Gio.Enums.IOErrorEnumWouldBlock'.
    --
    -- In case of 'GI.Gio.Enums.PollableReturnFailed' a t'GError' should be set for the
    -- operation to give details about the error that happened.
    --
    -- /Since: 2.60/
    data PollableReturn =
          PollableReturnFailed
        -- ^ Generic error condition for when an operation fails.
        | PollableReturnOk
        -- ^ The operation was successfully finished.
        | PollableReturnWouldBlock
        -- ^ The operation would block.
        | AnotherPollableReturn Int
        -- ^ Catch-all for unknown values
        deriving (Int -> PollableReturn -> ShowS
    [PollableReturn] -> ShowS
    PollableReturn -> String
    (Int -> PollableReturn -> ShowS)
    -> (PollableReturn -> String)
    -> ([PollableReturn] -> ShowS)
    -> Show PollableReturn
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> PollableReturn -> ShowS
    showsPrec :: Int -> PollableReturn -> ShowS
    $cshow :: PollableReturn -> String
    show :: PollableReturn -> String
    $cshowList :: [PollableReturn] -> ShowS
    showList :: [PollableReturn] -> ShowS
    Show, PollableReturn -> PollableReturn -> Bool
    (PollableReturn -> PollableReturn -> Bool)
    -> (PollableReturn -> PollableReturn -> Bool) -> Eq PollableReturn
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: PollableReturn -> PollableReturn -> Bool
    == :: PollableReturn -> PollableReturn -> Bool
    $c/= :: PollableReturn -> PollableReturn -> Bool
    /= :: PollableReturn -> PollableReturn -> Bool
    Eq)

    instance P.Enum PollableReturn where
        fromEnum :: PollableReturn -> Int
    fromEnum PollableReturn
    PollableReturnFailed = Int
    0
        fromEnum PollableReturn
    PollableReturnOk = Int
    1
        fromEnum PollableReturn
    PollableReturnWouldBlock = Int
    -27
        fromEnum (AnotherPollableReturn Int
    k) = Int
    k

        toEnum :: Int -> PollableReturn
    toEnum Int
    0 = PollableReturn
    PollableReturnFailed
        toEnum Int
    1 = PollableReturn
    PollableReturnOk
        toEnum Int
    -27 = PollableReturn
    PollableReturnWouldBlock
        toEnum Int
    k = Int -> PollableReturn
    AnotherPollableReturn Int
    k

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

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

    foreign import ccall "g_pollable_return_get_type" c_g_pollable_return_get_type ::
        IO GType

    instance B.Types.TypedObject PollableReturn where
        glibType :: IO GType
    glibType = IO GType
    c_g_pollable_return_get_type

    instance B.Types.BoxedEnum PollableReturn

    -- Enum PasswordSave
    -- | t'GI.Gio.Enums.PasswordSave' is used to indicate the lifespan of a saved password.
    --
    -- @/Gvfs/@ stores passwords in the Gnome keyring when this flag allows it
    -- to, and later retrieves it again from there.
    data PasswordSave =
          PasswordSaveNever
        -- ^ never save a password.
        | PasswordSaveForSession
        -- ^ save a password for the session.
        | PasswordSavePermanently
        -- ^ save a password permanently.
        | AnotherPasswordSave Int
        -- ^ Catch-all for unknown values
        deriving (Int -> PasswordSave -> ShowS
    [PasswordSave] -> ShowS
    PasswordSave -> String
    (Int -> PasswordSave -> ShowS)
    -> (PasswordSave -> String)
    -> ([PasswordSave] -> ShowS)
    -> Show PasswordSave
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> PasswordSave -> ShowS
    showsPrec :: Int -> PasswordSave -> ShowS
    $cshow :: PasswordSave -> String
    show :: PasswordSave -> String
    $cshowList :: [PasswordSave] -> ShowS
    showList :: [PasswordSave] -> ShowS
    Show, PasswordSave -> PasswordSave -> Bool
    (PasswordSave -> PasswordSave -> Bool)
    -> (PasswordSave -> PasswordSave -> Bool) -> Eq PasswordSave
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: PasswordSave -> PasswordSave -> Bool
    == :: PasswordSave -> PasswordSave -> Bool
    $c/= :: PasswordSave -> PasswordSave -> Bool
    /= :: PasswordSave -> PasswordSave -> Bool
    Eq)

    instance P.Enum PasswordSave where
        fromEnum :: PasswordSave -> Int
    fromEnum PasswordSave
    PasswordSaveNever = Int
    0
        fromEnum PasswordSave
    PasswordSaveForSession = Int
    1
        fromEnum PasswordSave
    PasswordSavePermanently = Int
    2
        fromEnum (AnotherPasswordSave Int
    k) = Int
    k

        toEnum :: Int -> PasswordSave
    toEnum Int
    0 = PasswordSave
    PasswordSaveNever
        toEnum Int
    1 = PasswordSave
    PasswordSaveForSession
        toEnum Int
    2 = PasswordSave
    PasswordSavePermanently
        toEnum Int
    k = Int -> PasswordSave
    AnotherPasswordSave Int
    k

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

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

    foreign import ccall "g_password_save_get_type" c_g_password_save_get_type ::
        IO GType

    instance B.Types.TypedObject PasswordSave where
        glibType :: IO GType
    glibType = IO GType
    c_g_password_save_get_type

    instance B.Types.BoxedEnum PasswordSave

    -- Enum NotificationPriority
    -- | Priority levels for @/GNotifications/@.
    --
    -- /Since: 2.42/
    data NotificationPriority =
          NotificationPriorityNormal
        -- ^ the default priority, to be used for the
        --   majority of notifications (for example email messages, software updates,
        --   completed download\/sync operations)
        | NotificationPriorityLow
        -- ^ for notifications that do not require
        --   immediate attention - typically used for contextual background
        --   information, such as contact birthdays or local weather
        | NotificationPriorityHigh
        -- ^ for events that require more attention,
        --   usually because responses are time-sensitive (for example chat and SMS
        --   messages or alarms)
        | NotificationPriorityUrgent
        -- ^ for urgent notifications, or notifications
        --   that require a response in a short space of time (for example phone calls
        --   or emergency warnings)
        | AnotherNotificationPriority Int
        -- ^ Catch-all for unknown values
        deriving (Int -> NotificationPriority -> ShowS
    [NotificationPriority] -> ShowS
    NotificationPriority -> String
    (Int -> NotificationPriority -> ShowS)
    -> (NotificationPriority -> String)
    -> ([NotificationPriority] -> ShowS)
    -> Show NotificationPriority
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> NotificationPriority -> ShowS
    showsPrec :: Int -> NotificationPriority -> ShowS
    $cshow :: NotificationPriority -> String
    show :: NotificationPriority -> String
    $cshowList :: [NotificationPriority] -> ShowS
    showList :: [NotificationPriority] -> ShowS
    Show, NotificationPriority -> NotificationPriority -> Bool
    (NotificationPriority -> NotificationPriority -> Bool)
    -> (NotificationPriority -> NotificationPriority -> Bool)
    -> Eq NotificationPriority
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: NotificationPriority -> NotificationPriority -> Bool
    == :: NotificationPriority -> NotificationPriority -> Bool
    $c/= :: NotificationPriority -> NotificationPriority -> Bool
    /= :: NotificationPriority -> NotificationPriority -> Bool
    Eq)

    instance P.Enum NotificationPriority where
        fromEnum :: NotificationPriority -> Int
    fromEnum NotificationPriority
    NotificationPriorityNormal = Int
    0
        fromEnum NotificationPriority
    NotificationPriorityLow = Int
    1
        fromEnum NotificationPriority
    NotificationPriorityHigh = Int
    2
        fromEnum NotificationPriority
    NotificationPriorityUrgent = Int
    3
        fromEnum (AnotherNotificationPriority Int
    k) = Int
    k

        toEnum :: Int -> NotificationPriority
    toEnum Int
    0 = NotificationPriority
    NotificationPriorityNormal
        toEnum Int
    1 = NotificationPriority
    NotificationPriorityLow
        toEnum Int
    2 = NotificationPriority
    NotificationPriorityHigh
        toEnum Int
    3 = NotificationPriority
    NotificationPriorityUrgent
        toEnum Int
    k = Int -> NotificationPriority
    AnotherNotificationPriority Int
    k

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

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

    foreign import ccall "g_notification_priority_get_type" c_g_notification_priority_get_type ::
        IO GType

    instance B.Types.TypedObject NotificationPriority where
        glibType :: IO GType
    glibType = IO GType
    c_g_notification_priority_get_type

    instance B.Types.BoxedEnum NotificationPriority

    -- Enum NetworkConnectivity
    -- | The host\'s network connectivity state, as reported by t'GI.Gio.Interfaces.NetworkMonitor.NetworkMonitor'.
    --
    -- /Since: 2.44/
    data NetworkConnectivity =
          NetworkConnectivityLocal
        -- ^ The host is not configured with a
        --   route to the Internet; it may or may not be connected to a local
        --   network.
        | NetworkConnectivityLimited
        -- ^ The host is connected to a network, but
        --   does not appear to be able to reach the full Internet, perhaps
        --   due to upstream network problems.
        | NetworkConnectivityPortal
        -- ^ The host is behind a captive portal and
        --   cannot reach the full Internet.
        | NetworkConnectivityFull
        -- ^ The host is connected to a network, and
        --   appears to be able to reach the full Internet.
        | AnotherNetworkConnectivity Int
        -- ^ Catch-all for unknown values
        deriving (Int -> NetworkConnectivity -> ShowS
    [NetworkConnectivity] -> ShowS
    NetworkConnectivity -> String
    (Int -> NetworkConnectivity -> ShowS)
    -> (NetworkConnectivity -> String)
    -> ([NetworkConnectivity] -> ShowS)
    -> Show NetworkConnectivity
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> NetworkConnectivity -> ShowS
    showsPrec :: Int -> NetworkConnectivity -> ShowS
    $cshow :: NetworkConnectivity -> String
    show :: NetworkConnectivity -> String
    $cshowList :: [NetworkConnectivity] -> ShowS
    showList :: [NetworkConnectivity] -> ShowS
    Show, NetworkConnectivity -> NetworkConnectivity -> Bool
    (NetworkConnectivity -> NetworkConnectivity -> Bool)
    -> (NetworkConnectivity -> NetworkConnectivity -> Bool)
    -> Eq NetworkConnectivity
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: NetworkConnectivity -> NetworkConnectivity -> Bool
    == :: NetworkConnectivity -> NetworkConnectivity -> Bool
    $c/= :: NetworkConnectivity -> NetworkConnectivity -> Bool
    /= :: NetworkConnectivity -> NetworkConnectivity -> Bool
    Eq)

    instance P.Enum NetworkConnectivity where
        fromEnum :: NetworkConnectivity -> Int
    fromEnum NetworkConnectivity
    NetworkConnectivityLocal = Int
    1
        fromEnum NetworkConnectivity
    NetworkConnectivityLimited = Int
    2
        fromEnum NetworkConnectivity
    NetworkConnectivityPortal = Int
    3
        fromEnum NetworkConnectivity
    NetworkConnectivityFull = Int
    4
        fromEnum (AnotherNetworkConnectivity Int
    k) = Int
    k

        toEnum :: Int -> NetworkConnectivity
    toEnum Int
    1 = NetworkConnectivity
    NetworkConnectivityLocal
        toEnum Int
    2 = NetworkConnectivity
    NetworkConnectivityLimited
        toEnum Int
    3 = NetworkConnectivity
    NetworkConnectivityPortal
        toEnum Int
    4 = NetworkConnectivity
    NetworkConnectivityFull
        toEnum Int
    k = Int -> NetworkConnectivity
    AnotherNetworkConnectivity Int
    k

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

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

    foreign import ccall "g_network_connectivity_get_type" c_g_network_connectivity_get_type ::
        IO GType

    instance B.Types.TypedObject NetworkConnectivity where
        glibType :: IO GType
    glibType = IO GType
    c_g_network_connectivity_get_type

    instance B.Types.BoxedEnum NetworkConnectivity

    -- Enum MountOperationResult
    -- | t'GI.Gio.Enums.MountOperationResult' is returned as a result when a request for
    -- information is send by the mounting operation.
    data MountOperationResult =
          MountOperationResultHandled
        -- ^ The request was fulfilled and the
        --     user specified data is now available
        | MountOperationResultAborted
        -- ^ The user requested the mount operation
        --     to be aborted
        | MountOperationResultUnhandled
        -- ^ The request was unhandled (i.e. not
        --     implemented)
        | AnotherMountOperationResult Int
        -- ^ Catch-all for unknown values
        deriving (Int -> MountOperationResult -> ShowS
    [MountOperationResult] -> ShowS
    MountOperationResult -> String
    (Int -> MountOperationResult -> ShowS)
    -> (MountOperationResult -> String)
    -> ([MountOperationResult] -> ShowS)
    -> Show MountOperationResult
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> MountOperationResult -> ShowS
    showsPrec :: Int -> MountOperationResult -> ShowS
    $cshow :: MountOperationResult -> String
    show :: MountOperationResult -> String
    $cshowList :: [MountOperationResult] -> ShowS
    showList :: [MountOperationResult] -> ShowS
    Show, MountOperationResult -> MountOperationResult -> Bool
    (MountOperationResult -> MountOperationResult -> Bool)
    -> (MountOperationResult -> MountOperationResult -> Bool)
    -> Eq MountOperationResult
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: MountOperationResult -> MountOperationResult -> Bool
    == :: MountOperationResult -> MountOperationResult -> Bool
    $c/= :: MountOperationResult -> MountOperationResult -> Bool
    /= :: MountOperationResult -> MountOperationResult -> Bool
    Eq)

    instance P.Enum MountOperationResult where
        fromEnum :: MountOperationResult -> Int
    fromEnum MountOperationResult
    MountOperationResultHandled = Int
    0
        fromEnum MountOperationResult
    MountOperationResultAborted = Int
    1
        fromEnum MountOperationResult
    MountOperationResultUnhandled = Int
    2
        fromEnum (AnotherMountOperationResult Int
    k) = Int
    k

        toEnum :: Int -> MountOperationResult
    toEnum Int
    0 = MountOperationResult
    MountOperationResultHandled
        toEnum Int
    1 = MountOperationResult
    MountOperationResultAborted
        toEnum Int
    2 = MountOperationResult
    MountOperationResultUnhandled
        toEnum Int
    k = Int -> MountOperationResult
    AnotherMountOperationResult Int
    k

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

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

    foreign import ccall "g_mount_operation_result_get_type" c_g_mount_operation_result_get_type ::
        IO GType

    instance B.Types.TypedObject MountOperationResult where
        glibType :: IO GType
    glibType = IO GType
    c_g_mount_operation_result_get_type

    instance B.Types.BoxedEnum MountOperationResult

    -- Enum MemoryMonitorWarningLevel
    -- | Memory availability warning levels.
    --
    -- Note that because new values might be added, it is recommended that applications check
    -- t'GI.Gio.Enums.MemoryMonitorWarningLevel' as ranges, for example:
    --
    -- === /C code/
    -- >
    -- >if (warning_level > G_MEMORY_MONITOR_WARNING_LEVEL_LOW)
    -- >  drop_caches ();
    --
    --
    -- /Since: 2.64/
    data MemoryMonitorWarningLevel =
          MemoryMonitorWarningLevelLow
        -- ^ Memory on the device is low, processes
        --   should free up unneeded resources (for example, in-memory caches) so they can
        --   be used elsewhere.
        | MemoryMonitorWarningLevelMedium
        -- ^ Same as /@gMEMORYMONITORWARNINGLEVELLOW@/
        --   but the device has even less free memory, so processes should try harder to free
        --   up unneeded resources. If your process does not need to stay running, it is a
        --   good time for it to quit.
        | MemoryMonitorWarningLevelCritical
        -- ^ The system will soon start terminating
        --   processes to reclaim memory, including background processes.
        | AnotherMemoryMonitorWarningLevel Int
        -- ^ Catch-all for unknown values
        deriving (Int -> MemoryMonitorWarningLevel -> ShowS
    [MemoryMonitorWarningLevel] -> ShowS
    MemoryMonitorWarningLevel -> String
    (Int -> MemoryMonitorWarningLevel -> ShowS)
    -> (MemoryMonitorWarningLevel -> String)
    -> ([MemoryMonitorWarningLevel] -> ShowS)
    -> Show MemoryMonitorWarningLevel
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> MemoryMonitorWarningLevel -> ShowS
    showsPrec :: Int -> MemoryMonitorWarningLevel -> ShowS
    $cshow :: MemoryMonitorWarningLevel -> String
    show :: MemoryMonitorWarningLevel -> String
    $cshowList :: [MemoryMonitorWarningLevel] -> ShowS
    showList :: [MemoryMonitorWarningLevel] -> ShowS
    Show, MemoryMonitorWarningLevel -> MemoryMonitorWarningLevel -> Bool
    (MemoryMonitorWarningLevel -> MemoryMonitorWarningLevel -> Bool)
    -> (MemoryMonitorWarningLevel -> MemoryMonitorWarningLevel -> Bool)
    -> Eq MemoryMonitorWarningLevel
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: MemoryMonitorWarningLevel -> MemoryMonitorWarningLevel -> Bool
    == :: MemoryMonitorWarningLevel -> MemoryMonitorWarningLevel -> Bool
    $c/= :: MemoryMonitorWarningLevel -> MemoryMonitorWarningLevel -> Bool
    /= :: MemoryMonitorWarningLevel -> MemoryMonitorWarningLevel -> Bool
    Eq)

    instance P.Enum MemoryMonitorWarningLevel where
        fromEnum :: MemoryMonitorWarningLevel -> Int
    fromEnum MemoryMonitorWarningLevel
    MemoryMonitorWarningLevelLow = Int
    50
        fromEnum MemoryMonitorWarningLevel
    MemoryMonitorWarningLevelMedium = Int
    100
        fromEnum MemoryMonitorWarningLevel
    MemoryMonitorWarningLevelCritical = Int
    255
        fromEnum (AnotherMemoryMonitorWarningLevel Int
    k) = Int
    k

        toEnum :: Int -> MemoryMonitorWarningLevel
    toEnum Int
    50 = MemoryMonitorWarningLevel
    MemoryMonitorWarningLevelLow
        toEnum Int
    100 = MemoryMonitorWarningLevel
    MemoryMonitorWarningLevelMedium
        toEnum Int
    255 = MemoryMonitorWarningLevel
    MemoryMonitorWarningLevelCritical
        toEnum Int
    k = Int -> MemoryMonitorWarningLevel
    AnotherMemoryMonitorWarningLevel Int
    k

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

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

    foreign import ccall "g_memory_monitor_warning_level_get_type" c_g_memory_monitor_warning_level_get_type ::
        IO GType

    instance B.Types.TypedObject MemoryMonitorWarningLevel where
        glibType :: IO GType
    glibType = IO GType
    c_g_memory_monitor_warning_level_get_type

    instance B.Types.BoxedEnum MemoryMonitorWarningLevel

    -- Enum IOErrorEnum
    -- | Error codes returned by GIO functions.
    --
    -- Note that this domain may be extended in future GLib releases. In
    -- general, new error codes either only apply to new APIs, or else
    -- replace 'GI.Gio.Enums.IOErrorEnumFailed' in cases that were not explicitly
    -- distinguished before. You should therefore avoid writing code like
    --
    -- === /C code/
    -- >
    -- >if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_FAILED))
    -- >  {
    -- >    // Assume that this is EPRINTERONFIRE
    -- >    ...
    -- >  }
    --
    -- but should instead treat all unrecognized error codes the same as
    -- 'GI.Gio.Enums.IOErrorEnumFailed'.
    --
    -- See also t'GI.Gio.Enums.PollableReturn' for a cheaper way of returning
    -- 'GI.Gio.Enums.IOErrorEnumWouldBlock' to callers without allocating a t'GError'.
    data IOErrorEnum =
          IOErrorEnumFailed
        -- ^ Generic error condition for when an operation fails
        --     and no more specific t'GI.Gio.Enums.IOErrorEnum' value is defined.
        | IOErrorEnumNotFound
        -- ^ File not found.
        | IOErrorEnumExists
        -- ^ File already exists.
        | IOErrorEnumIsDirectory
        -- ^ File is a directory.
        | IOErrorEnumNotDirectory
        -- ^ File is not a directory.
        | IOErrorEnumNotEmpty
        -- ^ File is a directory that isn\'t empty.
        | IOErrorEnumNotRegularFile
        -- ^ File is not a regular file.
        | IOErrorEnumNotSymbolicLink
        -- ^ File is not a symbolic link.
        | IOErrorEnumNotMountableFile
        -- ^ File cannot be mounted.
        | IOErrorEnumFilenameTooLong
        -- ^ Filename is too many characters.
        | IOErrorEnumInvalidFilename
        -- ^ Filename is invalid or contains invalid characters.
        | IOErrorEnumTooManyLinks
        -- ^ File contains too many symbolic links.
        | IOErrorEnumNoSpace
        -- ^ No space left on drive.
        | IOErrorEnumInvalidArgument
        -- ^ Invalid argument.
        | IOErrorEnumPermissionDenied
        -- ^ Permission denied.
        | IOErrorEnumNotSupported
        -- ^ Operation (or one of its parameters) not supported
        | IOErrorEnumNotMounted
        -- ^ File isn\'t mounted.
        | IOErrorEnumAlreadyMounted
        -- ^ File is already mounted.
        | IOErrorEnumClosed
        -- ^ File was closed.
        | IOErrorEnumCancelled
        -- ^ Operation was cancelled. See t'GI.Gio.Objects.Cancellable.Cancellable'.
        | IOErrorEnumPending
        -- ^ Operations are still pending.
        | IOErrorEnumReadOnly
        -- ^ File is read only.
        | IOErrorEnumCantCreateBackup
        -- ^ Backup couldn\'t be created.
        | IOErrorEnumWrongEtag
        -- ^ File\'s Entity Tag was incorrect.
        | IOErrorEnumTimedOut
        -- ^ Operation timed out.
        | IOErrorEnumWouldRecurse
        -- ^ Operation would be recursive.
        | IOErrorEnumBusy
        -- ^ File is busy.
        | IOErrorEnumWouldBlock
        -- ^ Operation would block.
        | IOErrorEnumHostNotFound
        -- ^ Host couldn\'t be found (remote operations).
        | IOErrorEnumWouldMerge
        -- ^ Operation would merge files.
        | IOErrorEnumFailedHandled
        -- ^ Operation failed and a helper program has
        --     already interacted with the user. Do not display any error dialog.
        | IOErrorEnumTooManyOpenFiles
        -- ^ The current process has too many files
        --     open and can\'t open any more. Duplicate descriptors do count toward
        --     this limit. Since 2.20
        | IOErrorEnumNotInitialized
        -- ^ The object has not been initialized. Since 2.22
        | IOErrorEnumAddressInUse
        -- ^ The requested address is already in use. Since 2.22
        | IOErrorEnumPartialInput
        -- ^ Need more input to finish operation. Since 2.24
        | IOErrorEnumInvalidData
        -- ^ The input data was invalid. Since 2.24
        | IOErrorEnumDbusError
        -- ^ A remote object generated an error that
        --     doesn\'t correspond to a locally registered t'GError' error
        --     domain. Use 'GI.Gio.Functions.dbusErrorGetRemoteError' to extract the D-Bus
        --     error name and 'GI.Gio.Functions.dbusErrorStripRemoteError' to fix up the
        --     message so it matches what was received on the wire. Since 2.26.
        | IOErrorEnumHostUnreachable
        -- ^ Host unreachable. Since 2.26
        | IOErrorEnumNetworkUnreachable
        -- ^ Network unreachable. Since 2.26
        | IOErrorEnumConnectionRefused
        -- ^ Connection refused. Since 2.26
        | IOErrorEnumProxyFailed
        -- ^ Connection to proxy server failed. Since 2.26
        | IOErrorEnumProxyAuthFailed
        -- ^ Proxy authentication failed. Since 2.26
        | IOErrorEnumProxyNeedAuth
        -- ^ Proxy server needs authentication. Since 2.26
        | IOErrorEnumProxyNotAllowed
        -- ^ Proxy connection is not allowed by ruleset.
        --     Since 2.26
        | IOErrorEnumBrokenPipe
        -- ^ Broken pipe. Since 2.36
        | IOErrorEnumConnectionClosed
        -- ^ Connection closed by peer. Note that this
        --     is the same code as 'GI.Gio.Enums.IOErrorEnumBrokenPipe'; before 2.44 some
        --     \"connection closed\" errors returned 'GI.Gio.Enums.IOErrorEnumBrokenPipe', but others
        --     returned 'GI.Gio.Enums.IOErrorEnumFailed'. Now they should all return the same
        --     value, which has this more logical name. Since 2.44.
        | IOErrorEnumNotConnected
        -- ^ Transport endpoint is not connected. Since 2.44
        | IOErrorEnumMessageTooLarge
        -- ^ Message too large. Since 2.48.
        | IOErrorEnumNoSuchDevice
        -- ^ No such device found. Since 2.74
        | IOErrorEnumDestinationUnset
        -- ^ Destination address unset. Since 2.80
        | AnotherIOErrorEnum Int
        -- ^ Catch-all for unknown values
        deriving (Int -> IOErrorEnum -> ShowS
    [IOErrorEnum] -> ShowS
    IOErrorEnum -> String
    (Int -> IOErrorEnum -> ShowS)
    -> (IOErrorEnum -> String)
    -> ([IOErrorEnum] -> ShowS)
    -> Show IOErrorEnum
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> IOErrorEnum -> ShowS
    showsPrec :: Int -> IOErrorEnum -> ShowS
    $cshow :: IOErrorEnum -> String
    show :: IOErrorEnum -> String
    $cshowList :: [IOErrorEnum] -> ShowS
    showList :: [IOErrorEnum] -> ShowS
    Show, IOErrorEnum -> IOErrorEnum -> Bool
    (IOErrorEnum -> IOErrorEnum -> Bool)
    -> (IOErrorEnum -> IOErrorEnum -> Bool) -> Eq IOErrorEnum
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: IOErrorEnum -> IOErrorEnum -> Bool
    == :: IOErrorEnum -> IOErrorEnum -> Bool
    $c/= :: IOErrorEnum -> IOErrorEnum -> Bool
    /= :: IOErrorEnum -> IOErrorEnum -> Bool
    Eq)

    instance P.Enum IOErrorEnum where
        fromEnum :: IOErrorEnum -> Int
    fromEnum IOErrorEnum
    IOErrorEnumFailed = Int
    0
        fromEnum IOErrorEnum
    IOErrorEnumNotFound = Int
    1
        fromEnum IOErrorEnum
    IOErrorEnumExists = Int
    2
        fromEnum IOErrorEnum
    IOErrorEnumIsDirectory = Int
    3
        fromEnum IOErrorEnum
    IOErrorEnumNotDirectory = Int
    4
        fromEnum IOErrorEnum
    IOErrorEnumNotEmpty = Int
    5
        fromEnum IOErrorEnum
    IOErrorEnumNotRegularFile = Int
    6
        fromEnum IOErrorEnum
    IOErrorEnumNotSymbolicLink = Int
    7
        fromEnum IOErrorEnum
    IOErrorEnumNotMountableFile = Int
    8
        fromEnum IOErrorEnum
    IOErrorEnumFilenameTooLong = Int
    9
        fromEnum IOErrorEnum
    IOErrorEnumInvalidFilename = Int
    10
        fromEnum IOErrorEnum
    IOErrorEnumTooManyLinks = Int
    11
        fromEnum IOErrorEnum
    IOErrorEnumNoSpace = Int
    12
        fromEnum IOErrorEnum
    IOErrorEnumInvalidArgument = Int
    13
        fromEnum IOErrorEnum
    IOErrorEnumPermissionDenied = Int
    14
        fromEnum IOErrorEnum
    IOErrorEnumNotSupported = Int
    15
        fromEnum IOErrorEnum
    IOErrorEnumNotMounted = Int
    16
        fromEnum IOErrorEnum
    IOErrorEnumAlreadyMounted = Int
    17
        fromEnum IOErrorEnum
    IOErrorEnumClosed = Int
    18
        fromEnum IOErrorEnum
    IOErrorEnumCancelled = Int
    19
        fromEnum IOErrorEnum
    IOErrorEnumPending = Int
    20
        fromEnum IOErrorEnum
    IOErrorEnumReadOnly = Int
    21
        fromEnum IOErrorEnum
    IOErrorEnumCantCreateBackup = Int
    22
        fromEnum IOErrorEnum
    IOErrorEnumWrongEtag = Int
    23
        fromEnum IOErrorEnum
    IOErrorEnumTimedOut = Int
    24
        fromEnum IOErrorEnum
    IOErrorEnumWouldRecurse = Int
    25
        fromEnum IOErrorEnum
    IOErrorEnumBusy = Int
    26
        fromEnum IOErrorEnum
    IOErrorEnumWouldBlock = Int
    27
        fromEnum IOErrorEnum
    IOErrorEnumHostNotFound = Int
    28
        fromEnum IOErrorEnum
    IOErrorEnumWouldMerge = Int
    29
        fromEnum IOErrorEnum
    IOErrorEnumFailedHandled = Int
    30
        fromEnum IOErrorEnum
    IOErrorEnumTooManyOpenFiles = Int
    31
        fromEnum IOErrorEnum
    IOErrorEnumNotInitialized = Int
    32
        fromEnum IOErrorEnum
    IOErrorEnumAddressInUse = Int
    33
        fromEnum IOErrorEnum
    IOErrorEnumPartialInput = Int
    34
        fromEnum IOErrorEnum
    IOErrorEnumInvalidData = Int
    35
        fromEnum IOErrorEnum
    IOErrorEnumDbusError = Int
    36
        fromEnum IOErrorEnum
    IOErrorEnumHostUnreachable = Int
    37
        fromEnum IOErrorEnum
    IOErrorEnumNetworkUnreachable = Int
    38
        fromEnum IOErrorEnum
    IOErrorEnumConnectionRefused = Int
    39
        fromEnum IOErrorEnum
    IOErrorEnumProxyFailed = Int
    40
        fromEnum IOErrorEnum
    IOErrorEnumProxyAuthFailed = Int
    41
        fromEnum IOErrorEnum
    IOErrorEnumProxyNeedAuth = Int
    42
        fromEnum IOErrorEnum
    IOErrorEnumProxyNotAllowed = Int
    43
        fromEnum IOErrorEnum
    IOErrorEnumBrokenPipe = Int
    44
        fromEnum IOErrorEnum
    IOErrorEnumConnectionClosed = Int
    44
        fromEnum IOErrorEnum
    IOErrorEnumNotConnected = Int
    45
        fromEnum IOErrorEnum
    IOErrorEnumMessageTooLarge = Int
    46
        fromEnum IOErrorEnum
    IOErrorEnumNoSuchDevice = Int
    47
        fromEnum IOErrorEnum
    IOErrorEnumDestinationUnset = Int
    48
        fromEnum (AnotherIOErrorEnum Int
    k) = Int
    k

        toEnum :: Int -> IOErrorEnum
    toEnum Int
    0 = IOErrorEnum
    IOErrorEnumFailed
        toEnum Int
    1 = IOErrorEnum
    IOErrorEnumNotFound
        toEnum Int
    2 = IOErrorEnum
    IOErrorEnumExists
        toEnum Int
    3 = IOErrorEnum
    IOErrorEnumIsDirectory
        toEnum Int
    4 = IOErrorEnum
    IOErrorEnumNotDirectory
        toEnum Int
    5 = IOErrorEnum
    IOErrorEnumNotEmpty
        toEnum Int
    6 = IOErrorEnum
    IOErrorEnumNotRegularFile
        toEnum Int
    7 = IOErrorEnum
    IOErrorEnumNotSymbolicLink
        toEnum Int
    8 = IOErrorEnum
    IOErrorEnumNotMountableFile
        toEnum Int
    9 = IOErrorEnum
    IOErrorEnumFilenameTooLong
        toEnum Int
    10 = IOErrorEnum
    IOErrorEnumInvalidFilename
        toEnum Int
    11 = IOErrorEnum
    IOErrorEnumTooManyLinks
        toEnum Int
    12 = IOErrorEnum
    IOErrorEnumNoSpace
        toEnum Int
    13 = IOErrorEnum
    IOErrorEnumInvalidArgument
        toEnum Int
    14 = IOErrorEnum
    IOErrorEnumPermissionDenied
        toEnum Int
    15 = IOErrorEnum
    IOErrorEnumNotSupported
        toEnum Int
    16 = IOErrorEnum
    IOErrorEnumNotMounted
        toEnum Int
    17 = IOErrorEnum
    IOErrorEnumAlreadyMounted
        toEnum Int
    18 = IOErrorEnum
    IOErrorEnumClosed
        toEnum Int
    19 = IOErrorEnum
    IOErrorEnumCancelled
        toEnum Int
    20 = IOErrorEnum
    IOErrorEnumPending
        toEnum Int
    21 = IOErrorEnum
    IOErrorEnumReadOnly
        toEnum Int
    22 = IOErrorEnum
    IOErrorEnumCantCreateBackup
        toEnum Int
    23 = IOErrorEnum
    IOErrorEnumWrongEtag
        toEnum Int
    24 = IOErrorEnum
    IOErrorEnumTimedOut
        toEnum Int
    25 = IOErrorEnum
    IOErrorEnumWouldRecurse
        toEnum Int
    26 = IOErrorEnum
    IOErrorEnumBusy
        toEnum Int
    27 = IOErrorEnum
    IOErrorEnumWouldBlock
        toEnum Int
    28 = IOErrorEnum
    IOErrorEnumHostNotFound
        toEnum Int
    29 = IOErrorEnum
    IOErrorEnumWouldMerge
        toEnum Int
    30 = IOErrorEnum
    IOErrorEnumFailedHandled
        toEnum Int
    31 = IOErrorEnum
    IOErrorEnumTooManyOpenFiles
        toEnum Int
    32 = IOErrorEnum
    IOErrorEnumNotInitialized
        toEnum Int
    33 = IOErrorEnum
    IOErrorEnumAddressInUse
        toEnum Int
    34 = IOErrorEnum
    IOErrorEnumPartialInput
        toEnum Int
    35 = IOErrorEnum
    IOErrorEnumInvalidData
        toEnum Int
    36 = IOErrorEnum
    IOErrorEnumDbusError
        toEnum Int
    37 = IOErrorEnum
    IOErrorEnumHostUnreachable
        toEnum Int
    38 = IOErrorEnum
    IOErrorEnumNetworkUnreachable
        toEnum Int
    39 = IOErrorEnum
    IOErrorEnumConnectionRefused
        toEnum Int
    40 = IOErrorEnum
    IOErrorEnumProxyFailed
        toEnum Int
    41 = IOErrorEnum
    IOErrorEnumProxyAuthFailed
        toEnum Int
    42 = IOErrorEnum
    IOErrorEnumProxyNeedAuth
        toEnum Int
    43 = IOErrorEnum
    IOErrorEnumProxyNotAllowed
        toEnum Int
    44 = IOErrorEnum
    IOErrorEnumBrokenPipe
        toEnum Int
    45 = IOErrorEnum
    IOErrorEnumNotConnected
        toEnum Int
    46 = IOErrorEnum
    IOErrorEnumMessageTooLarge
        toEnum Int
    47 = IOErrorEnum
    IOErrorEnumNoSuchDevice
        toEnum Int
    48 = IOErrorEnum
    IOErrorEnumDestinationUnset
        toEnum Int
    k = Int -> IOErrorEnum
    AnotherIOErrorEnum Int
    k

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

    instance GErrorClass IOErrorEnum where
        gerrorClassDomain :: IOErrorEnum -> Text
    gerrorClassDomain IOErrorEnum
    _ = Text
    "g-io-error-quark"

    -- | Catch exceptions of type `IOErrorEnum`. This is a specialized version of `Data.GI.Base.GError.catchGErrorJustDomain`.
    catchIOErrorEnum ::
        IO a ->
        (IOErrorEnum -> GErrorMessage -> IO a) ->
        IO a
    catchIOErrorEnum :: forall a. IO a -> (IOErrorEnum -> Text -> IO a) -> IO a
    catchIOErrorEnum = IO a -> (IOErrorEnum -> Text -> IO a) -> IO a
    forall err a.
    GErrorClass err =>
    IO a -> (err -> Text -> IO a) -> IO a
    catchGErrorJustDomain

    -- | Handle exceptions of type `IOErrorEnum`. This is a specialized version of `Data.GI.Base.GError.handleGErrorJustDomain`.
    handleIOErrorEnum ::
        (IOErrorEnum -> GErrorMessage -> IO a) ->
        IO a ->
        IO a
    handleIOErrorEnum :: forall a. (IOErrorEnum -> Text -> IO a) -> IO a -> IO a
    handleIOErrorEnum = (IOErrorEnum -> Text -> IO a) -> IO a -> IO a
    forall err a.
    GErrorClass err =>
    (err -> Text -> IO a) -> IO a -> IO a
    handleGErrorJustDomain

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

    foreign import ccall "g_io_error_enum_get_type" c_g_io_error_enum_get_type ::
        IO GType

    instance B.Types.TypedObject IOErrorEnum where
        glibType :: IO GType
    glibType = IO GType
    c_g_io_error_enum_get_type

    instance B.Types.BoxedEnum IOErrorEnum

    -- Enum FilesystemPreviewType
    -- | Indicates a hint from the file system whether files should be
    -- previewed in a file manager. Returned as the value of the key
    -- 'GI.Gio.Constants.FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW'.
    data FilesystemPreviewType =
          FilesystemPreviewTypeIfAlways
        -- ^ Only preview files if user has explicitly requested it.
        | FilesystemPreviewTypeIfLocal
        -- ^ Preview files if user has requested preview of \"local\" files.
        | FilesystemPreviewTypeNever
        -- ^ Never preview files.
        | AnotherFilesystemPreviewType Int
        -- ^ Catch-all for unknown values
        deriving (Int -> FilesystemPreviewType -> ShowS
    [FilesystemPreviewType] -> ShowS
    FilesystemPreviewType -> String
    (Int -> FilesystemPreviewType -> ShowS)
    -> (FilesystemPreviewType -> String)
    -> ([FilesystemPreviewType] -> ShowS)
    -> Show FilesystemPreviewType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> FilesystemPreviewType -> ShowS
    showsPrec :: Int -> FilesystemPreviewType -> ShowS
    $cshow :: FilesystemPreviewType -> String
    show :: FilesystemPreviewType -> String
    $cshowList :: [FilesystemPreviewType] -> ShowS
    showList :: [FilesystemPreviewType] -> ShowS
    Show, FilesystemPreviewType -> FilesystemPreviewType -> Bool
    (FilesystemPreviewType -> FilesystemPreviewType -> Bool)
    -> (FilesystemPreviewType -> FilesystemPreviewType -> Bool)
    -> Eq FilesystemPreviewType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: FilesystemPreviewType -> FilesystemPreviewType -> Bool
    == :: FilesystemPreviewType -> FilesystemPreviewType -> Bool
    $c/= :: FilesystemPreviewType -> FilesystemPreviewType -> Bool
    /= :: FilesystemPreviewType -> FilesystemPreviewType -> Bool
    Eq)

    instance P.Enum FilesystemPreviewType where
        fromEnum :: FilesystemPreviewType -> Int
    fromEnum FilesystemPreviewType
    FilesystemPreviewTypeIfAlways = Int
    0
        fromEnum FilesystemPreviewType
    FilesystemPreviewTypeIfLocal = Int
    1
        fromEnum FilesystemPreviewType
    FilesystemPreviewTypeNever = Int
    2
        fromEnum (AnotherFilesystemPreviewType Int
    k) = Int
    k

        toEnum :: Int -> FilesystemPreviewType
    toEnum Int
    0 = FilesystemPreviewType
    FilesystemPreviewTypeIfAlways
        toEnum Int
    1 = FilesystemPreviewType
    FilesystemPreviewTypeIfLocal
        toEnum Int
    2 = FilesystemPreviewType
    FilesystemPreviewTypeNever
        toEnum Int
    k = Int -> FilesystemPreviewType
    AnotherFilesystemPreviewType Int
    k

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

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

    foreign import ccall "g_filesystem_preview_type_get_type" c_g_filesystem_preview_type_get_type ::
        IO GType

    instance B.Types.TypedObject FilesystemPreviewType where
        glibType :: IO GType
    glibType = IO GType
    c_g_filesystem_preview_type_get_type

    instance B.Types.BoxedEnum FilesystemPreviewType

    -- Enum FileType
    -- | Indicates the file\'s on-disk type.
    --
    -- On Windows systems a file will never have 'GI.Gio.Enums.FileTypeSymbolicLink' type;
    -- use t'GI.Gio.Objects.FileInfo.FileInfo' and 'GI.Gio.Constants.FILE_ATTRIBUTE_STANDARD_IS_SYMLINK' to determine
    -- whether a file is a symlink or not. This is due to the fact that NTFS does
    -- not have a single filesystem object type for symbolic links - it has
    -- files that symlink to files, and directories that symlink to directories.
    -- t'GI.Gio.Enums.FileType' enumeration cannot precisely represent this important distinction,
    -- which is why all Windows symlinks will continue to be reported as
    -- 'GI.Gio.Enums.FileTypeRegular' or 'GI.Gio.Enums.FileTypeDirectory'.
    data FileType =
          FileTypeUnknown
        -- ^ File\'s type is unknown.
        | FileTypeRegular
        -- ^ File handle represents a regular file.
        | FileTypeDirectory
        -- ^ File handle represents a directory.
        | FileTypeSymbolicLink
        -- ^ File handle represents a symbolic link
        --    (Unix systems).
        | FileTypeSpecial
        -- ^ File is a \"special\" file, such as a socket, fifo,
        --    block device, or character device.
        | FileTypeShortcut
        -- ^ File is a shortcut (Windows systems).
        | FileTypeMountable
        -- ^ File is a mountable location.
        | AnotherFileType Int
        -- ^ Catch-all for unknown values
        deriving (Int -> FileType -> ShowS
    [FileType] -> ShowS
    FileType -> String
    (Int -> FileType -> ShowS)
    -> (FileType -> String) -> ([FileType] -> ShowS) -> Show FileType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> FileType -> ShowS
    showsPrec :: Int -> FileType -> ShowS
    $cshow :: FileType -> String
    show :: FileType -> String
    $cshowList :: [FileType] -> ShowS
    showList :: [FileType] -> ShowS
    Show, FileType -> FileType -> Bool
    (FileType -> FileType -> Bool)
    -> (FileType -> FileType -> Bool) -> Eq FileType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: FileType -> FileType -> Bool
    == :: FileType -> FileType -> Bool
    $c/= :: FileType -> FileType -> Bool
    /= :: FileType -> FileType -> Bool
    Eq)

    instance P.Enum FileType where
        fromEnum :: FileType -> Int
    fromEnum FileType
    FileTypeUnknown = Int
    0
        fromEnum FileType
    FileTypeRegular = Int
    1
        fromEnum FileType
    FileTypeDirectory = Int
    2
        fromEnum FileType
    FileTypeSymbolicLink = Int
    3
        fromEnum FileType
    FileTypeSpecial = Int
    4
        fromEnum FileType
    FileTypeShortcut = Int
    5
        fromEnum FileType
    FileTypeMountable = Int
    6
        fromEnum (AnotherFileType Int
    k) = Int
    k

        toEnum :: Int -> FileType
    toEnum Int
    0 = FileType
    FileTypeUnknown
        toEnum Int
    1 = FileType
    FileTypeRegular
        toEnum Int
    2 = FileType
    FileTypeDirectory
        toEnum Int
    3 = FileType
    FileTypeSymbolicLink
        toEnum Int
    4 = FileType
    FileTypeSpecial
        toEnum Int
    5 = FileType
    FileTypeShortcut
        toEnum Int
    6 = FileType
    FileTypeMountable
        toEnum Int
    k = Int -> FileType
    AnotherFileType Int
    k

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

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

    foreign import ccall "g_file_type_get_type" c_g_file_type_get_type ::
        IO GType

    instance B.Types.TypedObject FileType where
        glibType :: IO GType
    glibType = IO GType
    c_g_file_type_get_type

    instance B.Types.BoxedEnum FileType

    -- Enum FileMonitorEvent
    -- | Specifies what type of event a monitor event is.
    data FileMonitorEvent =
          FileMonitorEventChanged
        -- ^ a file changed.
        | FileMonitorEventChangesDoneHint
        -- ^ a hint that this was probably the last change in a set of changes.
        | FileMonitorEventDeleted
        -- ^ a file was deleted.
        | FileMonitorEventCreated
        -- ^ a file was created.
        | FileMonitorEventAttributeChanged
        -- ^ a file attribute was changed.
        | FileMonitorEventPreUnmount
        -- ^ the file location will soon be unmounted.
        | FileMonitorEventUnmounted
        -- ^ the file location was unmounted.
        | FileMonitorEventMoved
        -- ^ the file was moved -- only sent if the
        --   (deprecated) 'GI.Gio.Flags.FileMonitorFlagsSendMoved' flag is set
        | FileMonitorEventRenamed
        -- ^ the file was renamed within the
        --   current directory -- only sent if the 'GI.Gio.Flags.FileMonitorFlagsWatchMoves'
        --   flag is set.  Since: 2.46.
        | FileMonitorEventMovedIn
        -- ^ the file was moved into the
        --   monitored directory from another location -- only sent if the
        --   'GI.Gio.Flags.FileMonitorFlagsWatchMoves' flag is set.  Since: 2.46.
        | FileMonitorEventMovedOut
        -- ^ the file was moved out of the
        --   monitored directory to another location -- only sent if the
        --   'GI.Gio.Flags.FileMonitorFlagsWatchMoves' flag is set.  Since: 2.46
        | AnotherFileMonitorEvent Int
        -- ^ Catch-all for unknown values
        deriving (Int -> FileMonitorEvent -> ShowS
    [FileMonitorEvent] -> ShowS
    FileMonitorEvent -> String
    (Int -> FileMonitorEvent -> ShowS)
    -> (FileMonitorEvent -> String)
    -> ([FileMonitorEvent] -> ShowS)
    -> Show FileMonitorEvent
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> FileMonitorEvent -> ShowS
    showsPrec :: Int -> FileMonitorEvent -> ShowS
    $cshow :: FileMonitorEvent -> String
    show :: FileMonitorEvent -> String
    $cshowList :: [FileMonitorEvent] -> ShowS
    showList :: [FileMonitorEvent] -> ShowS
    Show, FileMonitorEvent -> FileMonitorEvent -> Bool
    (FileMonitorEvent -> FileMonitorEvent -> Bool)
    -> (FileMonitorEvent -> FileMonitorEvent -> Bool)
    -> Eq FileMonitorEvent
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: FileMonitorEvent -> FileMonitorEvent -> Bool
    == :: FileMonitorEvent -> FileMonitorEvent -> Bool
    $c/= :: FileMonitorEvent -> FileMonitorEvent -> Bool
    /= :: FileMonitorEvent -> FileMonitorEvent -> Bool
    Eq)

    instance P.Enum FileMonitorEvent where
        fromEnum :: FileMonitorEvent -> Int
    fromEnum FileMonitorEvent
    FileMonitorEventChanged = Int
    0
        fromEnum FileMonitorEvent
    FileMonitorEventChangesDoneHint = Int
    1
        fromEnum FileMonitorEvent
    FileMonitorEventDeleted = Int
    2
        fromEnum FileMonitorEvent
    FileMonitorEventCreated = Int
    3
        fromEnum FileMonitorEvent
    FileMonitorEventAttributeChanged = Int
    4
        fromEnum FileMonitorEvent
    FileMonitorEventPreUnmount = Int
    5
        fromEnum FileMonitorEvent
    FileMonitorEventUnmounted = Int
    6
        fromEnum FileMonitorEvent
    FileMonitorEventMoved = Int
    7
        fromEnum FileMonitorEvent
    FileMonitorEventRenamed = Int
    8
        fromEnum FileMonitorEvent
    FileMonitorEventMovedIn = Int
    9
        fromEnum FileMonitorEvent
    FileMonitorEventMovedOut = Int
    10
        fromEnum (AnotherFileMonitorEvent Int
    k) = Int
    k

        toEnum :: Int -> FileMonitorEvent
    toEnum Int
    0 = FileMonitorEvent
    FileMonitorEventChanged
        toEnum Int
    1 = FileMonitorEvent
    FileMonitorEventChangesDoneHint
        toEnum Int
    2 = FileMonitorEvent
    FileMonitorEventDeleted
        toEnum Int
    3 = FileMonitorEvent
    FileMonitorEventCreated
        toEnum Int
    4 = FileMonitorEvent
    FileMonitorEventAttributeChanged
        toEnum Int
    5 = FileMonitorEvent
    FileMonitorEventPreUnmount
        toEnum Int
    6 = FileMonitorEvent
    FileMonitorEventUnmounted
        toEnum Int
    7 = FileMonitorEvent
    FileMonitorEventMoved
        toEnum Int
    8 = FileMonitorEvent
    FileMonitorEventRenamed
        toEnum Int
    9 = FileMonitorEvent
    FileMonitorEventMovedIn
        toEnum Int
    10 = FileMonitorEvent
    FileMonitorEventMovedOut
        toEnum Int
    k = Int -> FileMonitorEvent
    AnotherFileMonitorEvent Int
    k

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

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

    foreign import ccall "g_file_monitor_event_get_type" c_g_file_monitor_event_get_type ::
        IO GType

    instance B.Types.TypedObject FileMonitorEvent where
        glibType :: IO GType
    glibType = IO GType
    c_g_file_monitor_event_get_type

    instance B.Types.BoxedEnum FileMonitorEvent

    -- Enum FileAttributeType
    -- | The data types for file attributes.
    data FileAttributeType =
          FileAttributeTypeInvalid
        -- ^ indicates an invalid or uninitialized type.
        | FileAttributeTypeString
        -- ^ a null terminated UTF8 string.
        | FileAttributeTypeByteString
        -- ^ a zero terminated string of non-zero bytes.
        | FileAttributeTypeBoolean
        -- ^ a boolean value.
        | FileAttributeTypeUint32
        -- ^ an unsigned 4-byte\/32-bit integer.
        | FileAttributeTypeInt32
        -- ^ a signed 4-byte\/32-bit integer.
        | FileAttributeTypeUint64
        -- ^ an unsigned 8-byte\/64-bit integer.
        | FileAttributeTypeInt64
        -- ^ a signed 8-byte\/64-bit integer.
        | FileAttributeTypeObject
        -- ^ a t'GI.GObject.Objects.Object.Object'.
        | FileAttributeTypeStringv
        -- ^ a 'P.Nothing' terminated char __. Since 2.22
        | AnotherFileAttributeType Int
        -- ^ Catch-all for unknown values
        deriving (Int -> FileAttributeType -> ShowS
    [FileAttributeType] -> ShowS
    FileAttributeType -> String
    (Int -> FileAttributeType -> ShowS)
    -> (FileAttributeType -> String)
    -> ([FileAttributeType] -> ShowS)
    -> Show FileAttributeType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> FileAttributeType -> ShowS
    showsPrec :: Int -> FileAttributeType -> ShowS
    $cshow :: FileAttributeType -> String
    show :: FileAttributeType -> String
    $cshowList :: [FileAttributeType] -> ShowS
    showList :: [FileAttributeType] -> ShowS
    Show, FileAttributeType -> FileAttributeType -> Bool
    (FileAttributeType -> FileAttributeType -> Bool)
    -> (FileAttributeType -> FileAttributeType -> Bool)
    -> Eq FileAttributeType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: FileAttributeType -> FileAttributeType -> Bool
    == :: FileAttributeType -> FileAttributeType -> Bool
    $c/= :: FileAttributeType -> FileAttributeType -> Bool
    /= :: FileAttributeType -> FileAttributeType -> Bool
    Eq)

    instance P.Enum FileAttributeType where
        fromEnum :: FileAttributeType -> Int
    fromEnum FileAttributeType
    FileAttributeTypeInvalid = Int
    0
        fromEnum FileAttributeType
    FileAttributeTypeString = Int
    1
        fromEnum FileAttributeType
    FileAttributeTypeByteString = Int
    2
        fromEnum FileAttributeType
    FileAttributeTypeBoolean = Int
    3
        fromEnum FileAttributeType
    FileAttributeTypeUint32 = Int
    4
        fromEnum FileAttributeType
    FileAttributeTypeInt32 = Int
    5
        fromEnum FileAttributeType
    FileAttributeTypeUint64 = Int
    6
        fromEnum FileAttributeType
    FileAttributeTypeInt64 = Int
    7
        fromEnum FileAttributeType
    FileAttributeTypeObject = Int
    8
        fromEnum FileAttributeType
    FileAttributeTypeStringv = Int
    9
        fromEnum (AnotherFileAttributeType Int
    k) = Int
    k

        toEnum :: Int -> FileAttributeType
    toEnum Int
    0 = FileAttributeType
    FileAttributeTypeInvalid
        toEnum Int
    1 = FileAttributeType
    FileAttributeTypeString
        toEnum Int
    2 = FileAttributeType
    FileAttributeTypeByteString
        toEnum Int
    3 = FileAttributeType
    FileAttributeTypeBoolean
        toEnum Int
    4 = FileAttributeType
    FileAttributeTypeUint32
        toEnum Int
    5 = FileAttributeType
    FileAttributeTypeInt32
        toEnum Int
    6 = FileAttributeType
    FileAttributeTypeUint64
        toEnum Int
    7 = FileAttributeType
    FileAttributeTypeInt64
        toEnum Int
    8 = FileAttributeType
    FileAttributeTypeObject
        toEnum Int
    9 = FileAttributeType
    FileAttributeTypeStringv
        toEnum Int
    k = Int -> FileAttributeType
    AnotherFileAttributeType Int
    k

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

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

    foreign import ccall "g_file_attribute_type_get_type" c_g_file_attribute_type_get_type ::
        IO GType

    instance B.Types.TypedObject FileAttributeType where
        glibType :: IO GType
    glibType = IO GType
    c_g_file_attribute_type_get_type

    instance B.Types.BoxedEnum FileAttributeType

    -- Enum FileAttributeStatus
    -- | Used by 'GI.Gio.Interfaces.File.fileSetAttributesFromInfo' when setting file attributes.
    data FileAttributeStatus =
          FileAttributeStatusUnset
        -- ^ Attribute value is unset (empty).
        | FileAttributeStatusSet
        -- ^ Attribute value is set.
        | FileAttributeStatusErrorSetting
        -- ^ Indicates an error in setting the value.
        | AnotherFileAttributeStatus Int
        -- ^ Catch-all for unknown values
        deriving (Int -> FileAttributeStatus -> ShowS
    [FileAttributeStatus] -> ShowS
    FileAttributeStatus -> String
    (Int -> FileAttributeStatus -> ShowS)
    -> (FileAttributeStatus -> String)
    -> ([FileAttributeStatus] -> ShowS)
    -> Show FileAttributeStatus
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> FileAttributeStatus -> ShowS
    showsPrec :: Int -> FileAttributeStatus -> ShowS
    $cshow :: FileAttributeStatus -> String
    show :: FileAttributeStatus -> String
    $cshowList :: [FileAttributeStatus] -> ShowS
    showList :: [FileAttributeStatus] -> ShowS
    Show, FileAttributeStatus -> FileAttributeStatus -> Bool
    (FileAttributeStatus -> FileAttributeStatus -> Bool)
    -> (FileAttributeStatus -> FileAttributeStatus -> Bool)
    -> Eq FileAttributeStatus
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: FileAttributeStatus -> FileAttributeStatus -> Bool
    == :: FileAttributeStatus -> FileAttributeStatus -> Bool
    $c/= :: FileAttributeStatus -> FileAttributeStatus -> Bool
    /= :: FileAttributeStatus -> FileAttributeStatus -> Bool
    Eq)

    instance P.Enum FileAttributeStatus where
        fromEnum :: FileAttributeStatus -> Int
    fromEnum FileAttributeStatus
    FileAttributeStatusUnset = Int
    0
        fromEnum FileAttributeStatus
    FileAttributeStatusSet = Int
    1
        fromEnum FileAttributeStatus
    FileAttributeStatusErrorSetting = Int
    2
        fromEnum (AnotherFileAttributeStatus Int
    k) = Int
    k

        toEnum :: Int -> FileAttributeStatus
    toEnum Int
    0 = FileAttributeStatus
    FileAttributeStatusUnset
        toEnum Int
    1 = FileAttributeStatus
    FileAttributeStatusSet
        toEnum Int
    2 = FileAttributeStatus
    FileAttributeStatusErrorSetting
        toEnum Int
    k = Int -> FileAttributeStatus
    AnotherFileAttributeStatus Int
    k

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

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

    foreign import ccall "g_file_attribute_status_get_type" c_g_file_attribute_status_get_type ::
        IO GType

    instance B.Types.TypedObject FileAttributeStatus where
        glibType :: IO GType
    glibType = IO GType
    c_g_file_attribute_status_get_type

    instance B.Types.BoxedEnum FileAttributeStatus

    -- Enum EmblemOrigin
    -- | GEmblemOrigin is used to add information about the origin of the emblem
    -- to t'GI.Gio.Objects.Emblem.Emblem'.
    --
    -- /Since: 2.18/
    data EmblemOrigin =
          EmblemOriginUnknown
        -- ^ Emblem of unknown origin
        | EmblemOriginDevice
        -- ^ Emblem adds device-specific information
        | EmblemOriginLivemetadata
        -- ^ Emblem depicts live metadata, such as \"readonly\"
        | EmblemOriginTag
        -- ^ Emblem comes from a user-defined tag, e.g. set by nautilus (in the future)
        | AnotherEmblemOrigin Int
        -- ^ Catch-all for unknown values
        deriving (Int -> EmblemOrigin -> ShowS
    [EmblemOrigin] -> ShowS
    EmblemOrigin -> String
    (Int -> EmblemOrigin -> ShowS)
    -> (EmblemOrigin -> String)
    -> ([EmblemOrigin] -> ShowS)
    -> Show EmblemOrigin
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> EmblemOrigin -> ShowS
    showsPrec :: Int -> EmblemOrigin -> ShowS
    $cshow :: EmblemOrigin -> String
    show :: EmblemOrigin -> String
    $cshowList :: [EmblemOrigin] -> ShowS
    showList :: [EmblemOrigin] -> ShowS
    Show, EmblemOrigin -> EmblemOrigin -> Bool
    (EmblemOrigin -> EmblemOrigin -> Bool)
    -> (EmblemOrigin -> EmblemOrigin -> Bool) -> Eq EmblemOrigin
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: EmblemOrigin -> EmblemOrigin -> Bool
    == :: EmblemOrigin -> EmblemOrigin -> Bool
    $c/= :: EmblemOrigin -> EmblemOrigin -> Bool
    /= :: EmblemOrigin -> EmblemOrigin -> Bool
    Eq)

    instance P.Enum EmblemOrigin where
        fromEnum :: EmblemOrigin -> Int
    fromEnum EmblemOrigin
    EmblemOriginUnknown = Int
    0
        fromEnum EmblemOrigin
    EmblemOriginDevice = Int
    1
        fromEnum EmblemOrigin
    EmblemOriginLivemetadata = Int
    2
        fromEnum EmblemOrigin
    EmblemOriginTag = Int
    3
        fromEnum (AnotherEmblemOrigin Int
    k) = Int
    k

        toEnum :: Int -> EmblemOrigin
    toEnum Int
    0 = EmblemOrigin
    EmblemOriginUnknown
        toEnum Int
    1 = EmblemOrigin
    EmblemOriginDevice
        toEnum Int
    2 = EmblemOrigin
    EmblemOriginLivemetadata
        toEnum Int
    3 = EmblemOrigin
    EmblemOriginTag
        toEnum Int
    k = Int -> EmblemOrigin
    AnotherEmblemOrigin Int
    k

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

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

    foreign import ccall "g_emblem_origin_get_type" c_g_emblem_origin_get_type ::
        IO GType

    instance B.Types.TypedObject EmblemOrigin where
        glibType :: IO GType
    glibType = IO GType
    c_g_emblem_origin_get_type

    instance B.Types.BoxedEnum EmblemOrigin

    -- Enum DriveStartStopType
    -- | Enumeration describing how a drive can be started\/stopped.
    --
    -- /Since: 2.22/
    data DriveStartStopType =
          DriveStartStopTypeUnknown
        -- ^ Unknown or drive doesn\'t support
        --    start\/stop.
        | DriveStartStopTypeShutdown
        -- ^ The stop method will physically
        --    shut down the drive and e.g. power down the port the drive is
        --    attached to.
        | DriveStartStopTypeNetwork
        -- ^ The start\/stop methods are used
        --    for connecting\/disconnect to the drive over the network.
        | DriveStartStopTypeMultidisk
        -- ^ The start\/stop methods will
        --    assemble\/disassemble a virtual drive from several physical
        --    drives.
        | DriveStartStopTypePassword
        -- ^ The start\/stop methods will
        --    unlock\/lock the disk (for example using the ATA @SECURITY UNLOCK
        --    DEVICE@ command)
        | AnotherDriveStartStopType Int
        -- ^ Catch-all for unknown values
        deriving (Int -> DriveStartStopType -> ShowS
    [DriveStartStopType] -> ShowS
    DriveStartStopType -> String
    (Int -> DriveStartStopType -> ShowS)
    -> (DriveStartStopType -> String)
    -> ([DriveStartStopType] -> ShowS)
    -> Show DriveStartStopType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> DriveStartStopType -> ShowS
    showsPrec :: Int -> DriveStartStopType -> ShowS
    $cshow :: DriveStartStopType -> String
    show :: DriveStartStopType -> String
    $cshowList :: [DriveStartStopType] -> ShowS
    showList :: [DriveStartStopType] -> ShowS
    Show, DriveStartStopType -> DriveStartStopType -> Bool
    (DriveStartStopType -> DriveStartStopType -> Bool)
    -> (DriveStartStopType -> DriveStartStopType -> Bool)
    -> Eq DriveStartStopType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: DriveStartStopType -> DriveStartStopType -> Bool
    == :: DriveStartStopType -> DriveStartStopType -> Bool
    $c/= :: DriveStartStopType -> DriveStartStopType -> Bool
    /= :: DriveStartStopType -> DriveStartStopType -> Bool
    Eq)

    instance P.Enum DriveStartStopType where
        fromEnum :: DriveStartStopType -> Int
    fromEnum DriveStartStopType
    DriveStartStopTypeUnknown = Int
    0
        fromEnum DriveStartStopType
    DriveStartStopTypeShutdown = Int
    1
        fromEnum DriveStartStopType
    DriveStartStopTypeNetwork = Int
    2
        fromEnum DriveStartStopType
    DriveStartStopTypeMultidisk = Int
    3
        fromEnum DriveStartStopType
    DriveStartStopTypePassword = Int
    4
        fromEnum (AnotherDriveStartStopType Int
    k) = Int
    k

        toEnum :: Int -> DriveStartStopType
    toEnum Int
    0 = DriveStartStopType
    DriveStartStopTypeUnknown
        toEnum Int
    1 = DriveStartStopType
    DriveStartStopTypeShutdown
        toEnum Int
    2 = DriveStartStopType
    DriveStartStopTypeNetwork
        toEnum Int
    3 = DriveStartStopType
    DriveStartStopTypeMultidisk
        toEnum Int
    4 = DriveStartStopType
    DriveStartStopTypePassword
        toEnum Int
    k = Int -> DriveStartStopType
    AnotherDriveStartStopType Int
    k

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

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

    foreign import ccall "g_drive_start_stop_type_get_type" c_g_drive_start_stop_type_get_type ::
        IO GType

    instance B.Types.TypedObject DriveStartStopType where
        glibType :: IO GType
    glibType = IO GType
    c_g_drive_start_stop_type_get_type

    instance B.Types.BoxedEnum DriveStartStopType

    -- Enum DataStreamNewlineType
    -- | t'GI.Gio.Enums.DataStreamNewlineType' is used when checking for or setting the line endings for a given file.
    data DataStreamNewlineType =
          DataStreamNewlineTypeLf
        -- ^ Selects \"LF\" line endings, common on most modern UNIX platforms.
        | DataStreamNewlineTypeCr
        -- ^ Selects \"CR\" line endings.
        | DataStreamNewlineTypeCrLf
        -- ^ Selects \"CR, LF\" line ending, common on Microsoft Windows.
        | DataStreamNewlineTypeAny
        -- ^ Automatically try to handle any line ending type.
        | AnotherDataStreamNewlineType Int
        -- ^ Catch-all for unknown values
        deriving (Int -> DataStreamNewlineType -> ShowS
    [DataStreamNewlineType] -> ShowS
    DataStreamNewlineType -> String
    (Int -> DataStreamNewlineType -> ShowS)
    -> (DataStreamNewlineType -> String)
    -> ([DataStreamNewlineType] -> ShowS)
    -> Show DataStreamNewlineType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> DataStreamNewlineType -> ShowS
    showsPrec :: Int -> DataStreamNewlineType -> ShowS
    $cshow :: DataStreamNewlineType -> String
    show :: DataStreamNewlineType -> String
    $cshowList :: [DataStreamNewlineType] -> ShowS
    showList :: [DataStreamNewlineType] -> ShowS
    Show, DataStreamNewlineType -> DataStreamNewlineType -> Bool
    (DataStreamNewlineType -> DataStreamNewlineType -> Bool)
    -> (DataStreamNewlineType -> DataStreamNewlineType -> Bool)
    -> Eq DataStreamNewlineType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: DataStreamNewlineType -> DataStreamNewlineType -> Bool
    == :: DataStreamNewlineType -> DataStreamNewlineType -> Bool
    $c/= :: DataStreamNewlineType -> DataStreamNewlineType -> Bool
    /= :: DataStreamNewlineType -> DataStreamNewlineType -> Bool
    Eq)

    instance P.Enum DataStreamNewlineType where
        fromEnum :: DataStreamNewlineType -> Int
    fromEnum DataStreamNewlineType
    DataStreamNewlineTypeLf = Int
    0
        fromEnum DataStreamNewlineType
    DataStreamNewlineTypeCr = Int
    1
        fromEnum DataStreamNewlineType
    DataStreamNewlineTypeCrLf = Int
    2
        fromEnum DataStreamNewlineType
    DataStreamNewlineTypeAny = Int
    3
        fromEnum (AnotherDataStreamNewlineType Int
    k) = Int
    k

        toEnum :: Int -> DataStreamNewlineType
    toEnum Int
    0 = DataStreamNewlineType
    DataStreamNewlineTypeLf
        toEnum Int
    1 = DataStreamNewlineType
    DataStreamNewlineTypeCr
        toEnum Int
    2 = DataStreamNewlineType
    DataStreamNewlineTypeCrLf
        toEnum Int
    3 = DataStreamNewlineType
    DataStreamNewlineTypeAny
        toEnum Int
    k = Int -> DataStreamNewlineType
    AnotherDataStreamNewlineType Int
    k

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

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

    foreign import ccall "g_data_stream_newline_type_get_type" c_g_data_stream_newline_type_get_type ::
        IO GType

    instance B.Types.TypedObject DataStreamNewlineType where
        glibType :: IO GType
    glibType = IO GType
    c_g_data_stream_newline_type_get_type

    instance B.Types.BoxedEnum DataStreamNewlineType

    -- Enum DataStreamByteOrder
    -- | t'GI.Gio.Enums.DataStreamByteOrder' is used to ensure proper endianness of streaming data sources
    -- across various machine architectures.
    data DataStreamByteOrder =
          DataStreamByteOrderBigEndian
        -- ^ Selects Big Endian byte order.
        | DataStreamByteOrderLittleEndian
        -- ^ Selects Little Endian byte order.
        | DataStreamByteOrderHostEndian
        -- ^ Selects endianness based on host machine\'s architecture.
        | AnotherDataStreamByteOrder Int
        -- ^ Catch-all for unknown values
        deriving (Int -> DataStreamByteOrder -> ShowS
    [DataStreamByteOrder] -> ShowS
    DataStreamByteOrder -> String
    (Int -> DataStreamByteOrder -> ShowS)
    -> (DataStreamByteOrder -> String)
    -> ([DataStreamByteOrder] -> ShowS)
    -> Show DataStreamByteOrder
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> DataStreamByteOrder -> ShowS
    showsPrec :: Int -> DataStreamByteOrder -> ShowS
    $cshow :: DataStreamByteOrder -> String
    show :: DataStreamByteOrder -> String
    $cshowList :: [DataStreamByteOrder] -> ShowS
    showList :: [DataStreamByteOrder] -> ShowS
    Show, DataStreamByteOrder -> DataStreamByteOrder -> Bool
    (DataStreamByteOrder -> DataStreamByteOrder -> Bool)
    -> (DataStreamByteOrder -> DataStreamByteOrder -> Bool)
    -> Eq DataStreamByteOrder
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: DataStreamByteOrder -> DataStreamByteOrder -> Bool
    == :: DataStreamByteOrder -> DataStreamByteOrder -> Bool
    $c/= :: DataStreamByteOrder -> DataStreamByteOrder -> Bool
    /= :: DataStreamByteOrder -> DataStreamByteOrder -> Bool
    Eq)

    instance P.Enum DataStreamByteOrder where
        fromEnum :: DataStreamByteOrder -> Int
    fromEnum DataStreamByteOrder
    DataStreamByteOrderBigEndian = Int
    0
        fromEnum DataStreamByteOrder
    DataStreamByteOrderLittleEndian = Int
    1
        fromEnum DataStreamByteOrder
    DataStreamByteOrderHostEndian = Int
    2
        fromEnum (AnotherDataStreamByteOrder Int
    k) = Int
    k

        toEnum :: Int -> DataStreamByteOrder
    toEnum Int
    0 = DataStreamByteOrder
    DataStreamByteOrderBigEndian
        toEnum Int
    1 = DataStreamByteOrder
    DataStreamByteOrderLittleEndian
        toEnum Int
    2 = DataStreamByteOrder
    DataStreamByteOrderHostEndian
        toEnum Int
    k = Int -> DataStreamByteOrder
    AnotherDataStreamByteOrder Int
    k

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

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

    foreign import ccall "g_data_stream_byte_order_get_type" c_g_data_stream_byte_order_get_type ::
        IO GType

    instance B.Types.TypedObject DataStreamByteOrder where
        glibType :: IO GType
    glibType = IO GType
    c_g_data_stream_byte_order_get_type

    instance B.Types.BoxedEnum DataStreamByteOrder

    -- Enum DBusMessageType
    -- | Message types used in t'GI.Gio.Objects.DBusMessage.DBusMessage'.
    --
    -- /Since: 2.26/
    data DBusMessageType =
          DBusMessageTypeInvalid
        -- ^ Message is of invalid type.
        | DBusMessageTypeMethodCall
        -- ^ Method call.
        | DBusMessageTypeMethodReturn
        -- ^ Method reply.
        | DBusMessageTypeError
        -- ^ Error reply.
        | DBusMessageTypeSignal
        -- ^ Signal emission.
        | AnotherDBusMessageType Int
        -- ^ Catch-all for unknown values
        deriving (Int -> DBusMessageType -> ShowS
    [DBusMessageType] -> ShowS
    DBusMessageType -> String
    (Int -> DBusMessageType -> ShowS)
    -> (DBusMessageType -> String)
    -> ([DBusMessageType] -> ShowS)
    -> Show DBusMessageType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> DBusMessageType -> ShowS
    showsPrec :: Int -> DBusMessageType -> ShowS
    $cshow :: DBusMessageType -> String
    show :: DBusMessageType -> String
    $cshowList :: [DBusMessageType] -> ShowS
    showList :: [DBusMessageType] -> ShowS
    Show, DBusMessageType -> DBusMessageType -> Bool
    (DBusMessageType -> DBusMessageType -> Bool)
    -> (DBusMessageType -> DBusMessageType -> Bool)
    -> Eq DBusMessageType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: DBusMessageType -> DBusMessageType -> Bool
    == :: DBusMessageType -> DBusMessageType -> Bool
    $c/= :: DBusMessageType -> DBusMessageType -> Bool
    /= :: DBusMessageType -> DBusMessageType -> Bool
    Eq)

    instance P.Enum DBusMessageType where
        fromEnum :: DBusMessageType -> Int
    fromEnum DBusMessageType
    DBusMessageTypeInvalid = Int
    0
        fromEnum DBusMessageType
    DBusMessageTypeMethodCall = Int
    1
        fromEnum DBusMessageType
    DBusMessageTypeMethodReturn = Int
    2
        fromEnum DBusMessageType
    DBusMessageTypeError = Int
    3
        fromEnum DBusMessageType
    DBusMessageTypeSignal = Int
    4
        fromEnum (AnotherDBusMessageType Int
    k) = Int
    k

        toEnum :: Int -> DBusMessageType
    toEnum Int
    0 = DBusMessageType
    DBusMessageTypeInvalid
        toEnum Int
    1 = DBusMessageType
    DBusMessageTypeMethodCall
        toEnum Int
    2 = DBusMessageType
    DBusMessageTypeMethodReturn
        toEnum Int
    3 = DBusMessageType
    DBusMessageTypeError
        toEnum Int
    4 = DBusMessageType
    DBusMessageTypeSignal
        toEnum Int
    k = Int -> DBusMessageType
    AnotherDBusMessageType Int
    k

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

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

    foreign import ccall "g_dbus_message_type_get_type" c_g_dbus_message_type_get_type ::
        IO GType

    instance B.Types.TypedObject DBusMessageType where
        glibType :: IO GType
    glibType = IO GType
    c_g_dbus_message_type_get_type

    instance B.Types.BoxedEnum DBusMessageType

    -- Enum DBusMessageHeaderField
    -- | Header fields used in t'GI.Gio.Objects.DBusMessage.DBusMessage'.
    --
    -- /Since: 2.26/
    data DBusMessageHeaderField =
          DBusMessageHeaderFieldInvalid
        -- ^ Not a valid header field.
        | DBusMessageHeaderFieldPath
        -- ^ The object path.
        | DBusMessageHeaderFieldInterface
        -- ^ The interface name.
        | DBusMessageHeaderFieldMember
        -- ^ The method or signal name.
        | DBusMessageHeaderFieldErrorName
        -- ^ The name of the error that occurred.
        | DBusMessageHeaderFieldReplySerial
        -- ^ The serial number the message is a reply to.
        | DBusMessageHeaderFieldDestination
        -- ^ The name the message is intended for.
        | DBusMessageHeaderFieldSender
        -- ^ Unique name of the sender of the message (filled in by the bus).
        | DBusMessageHeaderFieldSignature
        -- ^ The signature of the message body.
        | DBusMessageHeaderFieldNumUnixFds
        -- ^ The number of UNIX file descriptors that accompany the message.
        | AnotherDBusMessageHeaderField Int
        -- ^ Catch-all for unknown values
        deriving (Int -> DBusMessageHeaderField -> ShowS
    [DBusMessageHeaderField] -> ShowS
    DBusMessageHeaderField -> String
    (Int -> DBusMessageHeaderField -> ShowS)
    -> (DBusMessageHeaderField -> String)
    -> ([DBusMessageHeaderField] -> ShowS)
    -> Show DBusMessageHeaderField
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> DBusMessageHeaderField -> ShowS
    showsPrec :: Int -> DBusMessageHeaderField -> ShowS
    $cshow :: DBusMessageHeaderField -> String
    show :: DBusMessageHeaderField -> String
    $cshowList :: [DBusMessageHeaderField] -> ShowS
    showList :: [DBusMessageHeaderField] -> ShowS
    Show, DBusMessageHeaderField -> DBusMessageHeaderField -> Bool
    (DBusMessageHeaderField -> DBusMessageHeaderField -> Bool)
    -> (DBusMessageHeaderField -> DBusMessageHeaderField -> Bool)
    -> Eq DBusMessageHeaderField
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: DBusMessageHeaderField -> DBusMessageHeaderField -> Bool
    == :: DBusMessageHeaderField -> DBusMessageHeaderField -> Bool
    $c/= :: DBusMessageHeaderField -> DBusMessageHeaderField -> Bool
    /= :: DBusMessageHeaderField -> DBusMessageHeaderField -> Bool
    Eq)

    instance P.Enum DBusMessageHeaderField where
        fromEnum :: DBusMessageHeaderField -> Int
    fromEnum DBusMessageHeaderField
    DBusMessageHeaderFieldInvalid = Int
    0
        fromEnum DBusMessageHeaderField
    DBusMessageHeaderFieldPath = Int
    1
        fromEnum DBusMessageHeaderField
    DBusMessageHeaderFieldInterface = Int
    2
        fromEnum DBusMessageHeaderField
    DBusMessageHeaderFieldMember = Int
    3
        fromEnum DBusMessageHeaderField
    DBusMessageHeaderFieldErrorName = Int
    4
        fromEnum DBusMessageHeaderField
    DBusMessageHeaderFieldReplySerial = Int
    5
        fromEnum DBusMessageHeaderField
    DBusMessageHeaderFieldDestination = Int
    6
        fromEnum DBusMessageHeaderField
    DBusMessageHeaderFieldSender = Int
    7
        fromEnum DBusMessageHeaderField
    DBusMessageHeaderFieldSignature = Int
    8
        fromEnum DBusMessageHeaderField
    DBusMessageHeaderFieldNumUnixFds = Int
    9
        fromEnum (AnotherDBusMessageHeaderField Int
    k) = Int
    k

        toEnum :: Int -> DBusMessageHeaderField
    toEnum Int
    0 = DBusMessageHeaderField
    DBusMessageHeaderFieldInvalid
        toEnum Int
    1 = DBusMessageHeaderField
    DBusMessageHeaderFieldPath
        toEnum Int
    2 = DBusMessageHeaderField
    DBusMessageHeaderFieldInterface
        toEnum Int
    3 = DBusMessageHeaderField
    DBusMessageHeaderFieldMember
        toEnum Int
    4 = DBusMessageHeaderField
    DBusMessageHeaderFieldErrorName
        toEnum Int
    5 = DBusMessageHeaderField
    DBusMessageHeaderFieldReplySerial
        toEnum Int
    6 = DBusMessageHeaderField
    DBusMessageHeaderFieldDestination
        toEnum Int
    7 = DBusMessageHeaderField
    DBusMessageHeaderFieldSender
        toEnum Int
    8 = DBusMessageHeaderField
    DBusMessageHeaderFieldSignature
        toEnum Int
    9 = DBusMessageHeaderField
    DBusMessageHeaderFieldNumUnixFds
        toEnum Int
    k = Int -> DBusMessageHeaderField
    AnotherDBusMessageHeaderField Int
    k

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

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

    foreign import ccall "g_dbus_message_header_field_get_type" c_g_dbus_message_header_field_get_type ::
        IO GType

    instance B.Types.TypedObject DBusMessageHeaderField where
        glibType :: IO GType
    glibType = IO GType
    c_g_dbus_message_header_field_get_type

    instance B.Types.BoxedEnum DBusMessageHeaderField

    -- Enum DBusMessageByteOrder
    -- | Enumeration used to describe the byte order of a D-Bus message.
    --
    -- /Since: 2.26/
    data DBusMessageByteOrder =
          DBusMessageByteOrderBigEndian
        -- ^ The byte order is big endian.
        | DBusMessageByteOrderLittleEndian
        -- ^ The byte order is little endian.
        | AnotherDBusMessageByteOrder Int
        -- ^ Catch-all for unknown values
        deriving (Int -> DBusMessageByteOrder -> ShowS
    [DBusMessageByteOrder] -> ShowS
    DBusMessageByteOrder -> String
    (Int -> DBusMessageByteOrder -> ShowS)
    -> (DBusMessageByteOrder -> String)
    -> ([DBusMessageByteOrder] -> ShowS)
    -> Show DBusMessageByteOrder
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> DBusMessageByteOrder -> ShowS
    showsPrec :: Int -> DBusMessageByteOrder -> ShowS
    $cshow :: DBusMessageByteOrder -> String
    show :: DBusMessageByteOrder -> String
    $cshowList :: [DBusMessageByteOrder] -> ShowS
    showList :: [DBusMessageByteOrder] -> ShowS
    Show, DBusMessageByteOrder -> DBusMessageByteOrder -> Bool
    (DBusMessageByteOrder -> DBusMessageByteOrder -> Bool)
    -> (DBusMessageByteOrder -> DBusMessageByteOrder -> Bool)
    -> Eq DBusMessageByteOrder
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: DBusMessageByteOrder -> DBusMessageByteOrder -> Bool
    == :: DBusMessageByteOrder -> DBusMessageByteOrder -> Bool
    $c/= :: DBusMessageByteOrder -> DBusMessageByteOrder -> Bool
    /= :: DBusMessageByteOrder -> DBusMessageByteOrder -> Bool
    Eq)

    instance P.Enum DBusMessageByteOrder where
        fromEnum :: DBusMessageByteOrder -> Int
    fromEnum DBusMessageByteOrder
    DBusMessageByteOrderBigEndian = Int
    66
        fromEnum DBusMessageByteOrder
    DBusMessageByteOrderLittleEndian = Int
    108
        fromEnum (AnotherDBusMessageByteOrder Int
    k) = Int
    k

        toEnum :: Int -> DBusMessageByteOrder
    toEnum Int
    66 = DBusMessageByteOrder
    DBusMessageByteOrderBigEndian
        toEnum Int
    108 = DBusMessageByteOrder
    DBusMessageByteOrderLittleEndian
        toEnum Int
    k = Int -> DBusMessageByteOrder
    AnotherDBusMessageByteOrder Int
    k

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

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

    foreign import ccall "g_dbus_message_byte_order_get_type" c_g_dbus_message_byte_order_get_type ::
        IO GType

    instance B.Types.TypedObject DBusMessageByteOrder where
        glibType :: IO GType
    glibType = IO GType
    c_g_dbus_message_byte_order_get_type

    instance B.Types.BoxedEnum DBusMessageByteOrder

    -- Enum DBusError
    -- | Error codes for the @/G_DBUS_ERROR/@ error domain.
    --
    -- /Since: 2.26/
    data DBusError =
          DBusErrorFailed
        -- ^ A generic error; \"something went wrong\" - see the error message for
        -- more.
        | DBusErrorNoMemory
        -- ^ There was not enough memory to complete an operation.
        | DBusErrorServiceUnknown
        -- ^ The bus doesn\'t know how to launch a service to supply the bus name
        -- you wanted.
        | DBusErrorNameHasNoOwner
        -- ^ The bus name you referenced doesn\'t exist (i.e. no application owns
        -- it).
        | DBusErrorNoReply
        -- ^ No reply to a message expecting one, usually means a timeout occurred.
        | DBusErrorIoError
        -- ^ Something went wrong reading or writing to a socket, for example.
        | DBusErrorBadAddress
        -- ^ A D-Bus bus address was malformed.
        | DBusErrorNotSupported
        -- ^ Requested operation isn\'t supported (like ENOSYS on UNIX).
        | DBusErrorLimitsExceeded
        -- ^ Some limited resource is exhausted.
        | DBusErrorAccessDenied
        -- ^ Security restrictions don\'t allow doing what you\'re trying to do.
        | DBusErrorAuthFailed
        -- ^ Authentication didn\'t work.
        | DBusErrorNoServer
        -- ^ Unable to connect to server (probably caused by ECONNREFUSED on a
        -- socket).
        | DBusErrorTimeout
        -- ^ Certain timeout errors, possibly ETIMEDOUT on a socket.  Note that
        -- 'GI.Gio.Enums.DBusErrorNoReply' is used for message reply timeouts. Warning:
        -- this is confusingly-named given that 'GI.Gio.Enums.DBusErrorTimedOut' also
        -- exists. We can\'t fix it for compatibility reasons so just be
        -- careful.
        | DBusErrorNoNetwork
        -- ^ No network access (probably ENETUNREACH on a socket).
        | DBusErrorAddressInUse
        -- ^ Can\'t bind a socket since its address is in use (i.e. EADDRINUSE).
        | DBusErrorDisconnected
        -- ^ The connection is disconnected and you\'re trying to use it.
        | DBusErrorInvalidArgs
        -- ^ Invalid arguments passed to a method call.
        | DBusErrorFileNotFound
        -- ^ Missing file.
        | DBusErrorFileExists
        -- ^ Existing file and the operation you\'re using does not silently overwrite.
        | DBusErrorUnknownMethod
        -- ^ Method name you invoked isn\'t known by the object you invoked it on.
        | DBusErrorTimedOut
        -- ^ Certain timeout errors, e.g. while starting a service. Warning: this is
        -- confusingly-named given that 'GI.Gio.Enums.DBusErrorTimeout' also exists. We
        -- can\'t fix it for compatibility reasons so just be careful.
        | DBusErrorMatchRuleNotFound
        -- ^ Tried to remove or modify a match rule that didn\'t exist.
        | DBusErrorMatchRuleInvalid
        -- ^ The match rule isn\'t syntactically valid.
        | DBusErrorSpawnExecFailed
        -- ^ While starting a new process, the @/exec()/@ call failed.
        | DBusErrorSpawnForkFailed
        -- ^ While starting a new process, the @/fork()/@ call failed.
        | DBusErrorSpawnChildExited
        -- ^ While starting a new process, the child exited with a status code.
        | DBusErrorSpawnChildSignaled
        -- ^ While starting a new process, the child exited on a signal.
        | DBusErrorSpawnFailed
        -- ^ While starting a new process, something went wrong.
        | DBusErrorSpawnSetupFailed
        -- ^ We failed to setup the environment correctly.
        | DBusErrorSpawnConfigInvalid
        -- ^ We failed to setup the config parser correctly.
        | DBusErrorSpawnServiceInvalid
        -- ^ Bus name was not valid.
        | DBusErrorSpawnServiceNotFound
        -- ^ Service file not found in system-services directory.
        | DBusErrorSpawnPermissionsInvalid
        -- ^ Permissions are incorrect on the setuid helper.
        | DBusErrorSpawnFileInvalid
        -- ^ Service file invalid (Name, User or Exec missing).
        | DBusErrorSpawnNoMemory
        -- ^ Tried to get a UNIX process ID and it wasn\'t available.
        | DBusErrorUnixProcessIdUnknown
        -- ^ Tried to get a UNIX process ID and it wasn\'t available.
        | DBusErrorInvalidSignature
        -- ^ A type signature is not valid.
        | DBusErrorInvalidFileContent
        -- ^ A file contains invalid syntax or is otherwise broken.
        | DBusErrorSelinuxSecurityContextUnknown
        -- ^ Asked for SELinux security context and it wasn\'t available.
        | DBusErrorAdtAuditDataUnknown
        -- ^ Asked for ADT audit data and it wasn\'t available.
        | DBusErrorObjectPathInUse
        -- ^ There\'s already an object with the requested object path.
        | DBusErrorUnknownObject
        -- ^ Object you invoked a method on isn\'t known. Since 2.42
        | DBusErrorUnknownInterface
        -- ^ Interface you invoked a method on isn\'t known by the object. Since 2.42
        | DBusErrorUnknownProperty
        -- ^ Property you tried to access isn\'t known by the object. Since 2.42
        | DBusErrorPropertyReadOnly
        -- ^ Property you tried to set is read-only. Since 2.42
        | AnotherDBusError Int
        -- ^ Catch-all for unknown values
        deriving (Int -> DBusError -> ShowS
    [DBusError] -> ShowS
    DBusError -> String
    (Int -> DBusError -> ShowS)
    -> (DBusError -> String)
    -> ([DBusError] -> ShowS)
    -> Show DBusError
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> DBusError -> ShowS
    showsPrec :: Int -> DBusError -> ShowS
    $cshow :: DBusError -> String
    show :: DBusError -> String
    $cshowList :: [DBusError] -> ShowS
    showList :: [DBusError] -> ShowS
    Show, DBusError -> DBusError -> Bool
    (DBusError -> DBusError -> Bool)
    -> (DBusError -> DBusError -> Bool) -> Eq DBusError
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: DBusError -> DBusError -> Bool
    == :: DBusError -> DBusError -> Bool
    $c/= :: DBusError -> DBusError -> Bool
    /= :: DBusError -> DBusError -> Bool
    Eq)

    instance P.Enum DBusError where
        fromEnum :: DBusError -> Int
    fromEnum DBusError
    DBusErrorFailed = Int
    0
        fromEnum DBusError
    DBusErrorNoMemory = Int
    1
        fromEnum DBusError
    DBusErrorServiceUnknown = Int
    2
        fromEnum DBusError
    DBusErrorNameHasNoOwner = Int
    3
        fromEnum DBusError
    DBusErrorNoReply = Int
    4
        fromEnum DBusError
    DBusErrorIoError = Int
    5
        fromEnum DBusError
    DBusErrorBadAddress = Int
    6
        fromEnum DBusError
    DBusErrorNotSupported = Int
    7
        fromEnum DBusError
    DBusErrorLimitsExceeded = Int
    8
        fromEnum DBusError
    DBusErrorAccessDenied = Int
    9
        fromEnum DBusError
    DBusErrorAuthFailed = Int
    10
        fromEnum DBusError
    DBusErrorNoServer = Int
    11
        fromEnum DBusError
    DBusErrorTimeout = Int
    12
        fromEnum DBusError
    DBusErrorNoNetwork = Int
    13
        fromEnum DBusError
    DBusErrorAddressInUse = Int
    14
        fromEnum DBusError
    DBusErrorDisconnected = Int
    15
        fromEnum DBusError
    DBusErrorInvalidArgs = Int
    16
        fromEnum DBusError
    DBusErrorFileNotFound = Int
    17
        fromEnum DBusError
    DBusErrorFileExists = Int
    18
        fromEnum DBusError
    DBusErrorUnknownMethod = Int
    19
        fromEnum DBusError
    DBusErrorTimedOut = Int
    20
        fromEnum DBusError
    DBusErrorMatchRuleNotFound = Int
    21
        fromEnum DBusError
    DBusErrorMatchRuleInvalid = Int
    22
        fromEnum DBusError
    DBusErrorSpawnExecFailed = Int
    23
        fromEnum DBusError
    DBusErrorSpawnForkFailed = Int
    24
        fromEnum DBusError
    DBusErrorSpawnChildExited = Int
    25
        fromEnum DBusError
    DBusErrorSpawnChildSignaled = Int
    26
        fromEnum DBusError
    DBusErrorSpawnFailed = Int
    27
        fromEnum DBusError
    DBusErrorSpawnSetupFailed = Int
    28
        fromEnum DBusError
    DBusErrorSpawnConfigInvalid = Int
    29
        fromEnum DBusError
    DBusErrorSpawnServiceInvalid = Int
    30
        fromEnum DBusError
    DBusErrorSpawnServiceNotFound = Int
    31
        fromEnum DBusError
    DBusErrorSpawnPermissionsInvalid = Int
    32
        fromEnum DBusError
    DBusErrorSpawnFileInvalid = Int
    33
        fromEnum DBusError
    DBusErrorSpawnNoMemory = Int
    34
        fromEnum DBusError
    DBusErrorUnixProcessIdUnknown = Int
    35
        fromEnum DBusError
    DBusErrorInvalidSignature = Int
    36
        fromEnum DBusError
    DBusErrorInvalidFileContent = Int
    37
        fromEnum DBusError
    DBusErrorSelinuxSecurityContextUnknown = Int
    38
        fromEnum DBusError
    DBusErrorAdtAuditDataUnknown = Int
    39
        fromEnum DBusError
    DBusErrorObjectPathInUse = Int
    40
        fromEnum DBusError
    DBusErrorUnknownObject = Int
    41
        fromEnum DBusError
    DBusErrorUnknownInterface = Int
    42
        fromEnum DBusError
    DBusErrorUnknownProperty = Int
    43
        fromEnum DBusError
    DBusErrorPropertyReadOnly = Int
    44
        fromEnum (AnotherDBusError Int
    k) = Int
    k

        toEnum :: Int -> DBusError
    toEnum Int
    0 = DBusError
    DBusErrorFailed
        toEnum Int
    1 = DBusError
    DBusErrorNoMemory
        toEnum Int
    2 = DBusError
    DBusErrorServiceUnknown
        toEnum Int
    3 = DBusError
    DBusErrorNameHasNoOwner
        toEnum Int
    4 = DBusError
    DBusErrorNoReply
        toEnum Int
    5 = DBusError
    DBusErrorIoError
        toEnum Int
    6 = DBusError
    DBusErrorBadAddress
        toEnum Int
    7 = DBusError
    DBusErrorNotSupported
        toEnum Int
    8 = DBusError
    DBusErrorLimitsExceeded
        toEnum Int
    9 = DBusError
    DBusErrorAccessDenied
        toEnum Int
    10 = DBusError
    DBusErrorAuthFailed
        toEnum Int
    11 = DBusError
    DBusErrorNoServer
        toEnum Int
    12 = DBusError
    DBusErrorTimeout
        toEnum Int
    13 = DBusError
    DBusErrorNoNetwork
        toEnum Int
    14 = DBusError
    DBusErrorAddressInUse
        toEnum Int
    15 = DBusError
    DBusErrorDisconnected
        toEnum Int
    16 = DBusError
    DBusErrorInvalidArgs
        toEnum Int
    17 = DBusError
    DBusErrorFileNotFound
        toEnum Int
    18 = DBusError
    DBusErrorFileExists
        toEnum Int
    19 = DBusError
    DBusErrorUnknownMethod
        toEnum Int
    20 = DBusError
    DBusErrorTimedOut
        toEnum Int
    21 = DBusError
    DBusErrorMatchRuleNotFound
        toEnum Int
    22 = DBusError
    DBusErrorMatchRuleInvalid
        toEnum Int
    23 = DBusError
    DBusErrorSpawnExecFailed
        toEnum Int
    24 = DBusError
    DBusErrorSpawnForkFailed
        toEnum Int
    25 = DBusError
    DBusErrorSpawnChildExited
        toEnum Int
    26 = DBusError
    DBusErrorSpawnChildSignaled
        toEnum Int
    27 = DBusError
    DBusErrorSpawnFailed
        toEnum Int
    28 = DBusError
    DBusErrorSpawnSetupFailed
        toEnum Int
    29 = DBusError
    DBusErrorSpawnConfigInvalid
        toEnum Int
    30 = DBusError
    DBusErrorSpawnServiceInvalid
        toEnum Int
    31 = DBusError
    DBusErrorSpawnServiceNotFound
        toEnum Int
    32 = DBusError
    DBusErrorSpawnPermissionsInvalid
        toEnum Int
    33 = DBusError
    DBusErrorSpawnFileInvalid
        toEnum Int
    34 = DBusError
    DBusErrorSpawnNoMemory
        toEnum Int
    35 = DBusError
    DBusErrorUnixProcessIdUnknown
        toEnum Int
    36 = DBusError
    DBusErrorInvalidSignature
        toEnum Int
    37 = DBusError
    DBusErrorInvalidFileContent
        toEnum Int
    38 = DBusError
    DBusErrorSelinuxSecurityContextUnknown
        toEnum Int
    39 = DBusError
    DBusErrorAdtAuditDataUnknown
        toEnum Int
    40 = DBusError
    DBusErrorObjectPathInUse
        toEnum Int
    41 = DBusError
    DBusErrorUnknownObject
        toEnum Int
    42 = DBusError
    DBusErrorUnknownInterface
        toEnum Int
    43 = DBusError
    DBusErrorUnknownProperty
        toEnum Int
    44 = DBusError
    DBusErrorPropertyReadOnly
        toEnum Int
    k = Int -> DBusError
    AnotherDBusError Int
    k

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

    instance GErrorClass DBusError where
        gerrorClassDomain :: DBusError -> Text
    gerrorClassDomain DBusError
    _ = Text
    "g-dbus-error-quark"

    -- | Catch exceptions of type `DBusError`. This is a specialized version of `Data.GI.Base.GError.catchGErrorJustDomain`.
    catchDBusError ::
        IO a ->
        (DBusError -> GErrorMessage -> IO a) ->
        IO a
    catchDBusError :: forall a. IO a -> (DBusError -> Text -> IO a) -> IO a
    catchDBusError = IO a -> (DBusError -> Text -> IO a) -> IO a
    forall err a.
    GErrorClass err =>
    IO a -> (err -> Text -> IO a) -> IO a
    catchGErrorJustDomain

    -- | Handle exceptions of type `DBusError`. This is a specialized version of `Data.GI.Base.GError.handleGErrorJustDomain`.
    handleDBusError ::
        (DBusError -> GErrorMessage -> IO a) ->
        IO a ->
        IO a
    handleDBusError :: forall a. (DBusError -> Text -> IO a) -> IO a -> IO a
    handleDBusError = (DBusError -> Text -> IO a) -> IO a -> IO a
    forall err a.
    GErrorClass err =>
    (err -> Text -> IO a) -> IO a -> IO a
    handleGErrorJustDomain

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

    foreign import ccall "g_dbus_error_get_type" c_g_dbus_error_get_type ::
        IO GType

    instance B.Types.TypedObject DBusError where
        glibType :: IO GType
    glibType = IO GType
    c_g_dbus_error_get_type

    instance B.Types.BoxedEnum DBusError

    -- Enum CredentialsType
    -- | Enumeration describing different kinds of native credential types.
    --
    -- /Since: 2.26/
    data CredentialsType =
          CredentialsTypeInvalid
        -- ^ Indicates an invalid native credential type.
        | CredentialsTypeLinuxUcred
        -- ^ The native credentials type is a @struct ucred@.
        | CredentialsTypeFreebsdCmsgcred
        -- ^ The native credentials type is a @struct cmsgcred@.
        | CredentialsTypeOpenbsdSockpeercred
        -- ^ The native credentials type is a @struct sockpeercred@. Added in 2.30.
        | CredentialsTypeSolarisUcred
        -- ^ The native credentials type is a @ucred_t@. Added in 2.40.
        | CredentialsTypeNetbsdUnpcbid
        -- ^ The native credentials type is a @struct unpcbid@. Added in 2.42.
        | CredentialsTypeAppleXucred
        -- ^ The native credentials type is a @struct xucred@. Added in 2.66.
        | CredentialsTypeWin32Pid
        -- ^ The native credentials type is a PID @DWORD@. Added in 2.72.
        | AnotherCredentialsType Int
        -- ^ Catch-all for unknown values
        deriving (Int -> CredentialsType -> ShowS
    [CredentialsType] -> ShowS
    CredentialsType -> String
    (Int -> CredentialsType -> ShowS)
    -> (CredentialsType -> String)
    -> ([CredentialsType] -> ShowS)
    -> Show CredentialsType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> CredentialsType -> ShowS
    showsPrec :: Int -> CredentialsType -> ShowS
    $cshow :: CredentialsType -> String
    show :: CredentialsType -> String
    $cshowList :: [CredentialsType] -> ShowS
    showList :: [CredentialsType] -> ShowS
    Show, CredentialsType -> CredentialsType -> Bool
    (CredentialsType -> CredentialsType -> Bool)
    -> (CredentialsType -> CredentialsType -> Bool)
    -> Eq CredentialsType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: CredentialsType -> CredentialsType -> Bool
    == :: CredentialsType -> CredentialsType -> Bool
    $c/= :: CredentialsType -> CredentialsType -> Bool
    /= :: CredentialsType -> CredentialsType -> Bool
    Eq)

    instance P.Enum CredentialsType where
        fromEnum :: CredentialsType -> Int
    fromEnum CredentialsType
    CredentialsTypeInvalid = Int
    0
        fromEnum CredentialsType
    CredentialsTypeLinuxUcred = Int
    1
        fromEnum CredentialsType
    CredentialsTypeFreebsdCmsgcred = Int
    2
        fromEnum CredentialsType
    CredentialsTypeOpenbsdSockpeercred = Int
    3
        fromEnum CredentialsType
    CredentialsTypeSolarisUcred = Int
    4
        fromEnum CredentialsType
    CredentialsTypeNetbsdUnpcbid = Int
    5
        fromEnum CredentialsType
    CredentialsTypeAppleXucred = Int
    6
        fromEnum CredentialsType
    CredentialsTypeWin32Pid = Int
    7
        fromEnum (AnotherCredentialsType Int
    k) = Int
    k

        toEnum :: Int -> CredentialsType
    toEnum Int
    0 = CredentialsType
    CredentialsTypeInvalid
        toEnum Int
    1 = CredentialsType
    CredentialsTypeLinuxUcred
        toEnum Int
    2 = CredentialsType
    CredentialsTypeFreebsdCmsgcred
        toEnum Int
    3 = CredentialsType
    CredentialsTypeOpenbsdSockpeercred
        toEnum Int
    4 = CredentialsType
    CredentialsTypeSolarisUcred
        toEnum Int
    5 = CredentialsType
    CredentialsTypeNetbsdUnpcbid
        toEnum Int
    6 = CredentialsType
    CredentialsTypeAppleXucred
        toEnum Int
    7 = CredentialsType
    CredentialsTypeWin32Pid
        toEnum Int
    k = Int -> CredentialsType
    AnotherCredentialsType Int
    k

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

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

    foreign import ccall "g_credentials_type_get_type" c_g_credentials_type_get_type ::
        IO GType

    instance B.Types.TypedObject CredentialsType where
        glibType :: IO GType
    glibType = IO GType
    c_g_credentials_type_get_type

    instance B.Types.BoxedEnum CredentialsType

    -- Enum ConverterResult
    -- | Results returned from 'GI.Gio.Interfaces.Converter.converterConvert'.
    --
    -- /Since: 2.24/
    data ConverterResult =
          ConverterResultError
        -- ^ There was an error during conversion.
        | ConverterResultConverted
        -- ^ Some data was consumed or produced
        | ConverterResultFinished
        -- ^ The conversion is finished
        | ConverterResultFlushed
        -- ^ Flushing is finished
        | AnotherConverterResult Int
        -- ^ Catch-all for unknown values
        deriving (Int -> ConverterResult -> ShowS
    [ConverterResult] -> ShowS
    ConverterResult -> String
    (Int -> ConverterResult -> ShowS)
    -> (ConverterResult -> String)
    -> ([ConverterResult] -> ShowS)
    -> Show ConverterResult
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> ConverterResult -> ShowS
    showsPrec :: Int -> ConverterResult -> ShowS
    $cshow :: ConverterResult -> String
    show :: ConverterResult -> String
    $cshowList :: [ConverterResult] -> ShowS
    showList :: [ConverterResult] -> ShowS
    Show, ConverterResult -> ConverterResult -> Bool
    (ConverterResult -> ConverterResult -> Bool)
    -> (ConverterResult -> ConverterResult -> Bool)
    -> Eq ConverterResult
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: ConverterResult -> ConverterResult -> Bool
    == :: ConverterResult -> ConverterResult -> Bool
    $c/= :: ConverterResult -> ConverterResult -> Bool
    /= :: ConverterResult -> ConverterResult -> Bool
    Eq)

    instance P.Enum ConverterResult where
        fromEnum :: ConverterResult -> Int
    fromEnum ConverterResult
    ConverterResultError = Int
    0
        fromEnum ConverterResult
    ConverterResultConverted = Int
    1
        fromEnum ConverterResult
    ConverterResultFinished = Int
    2
        fromEnum ConverterResult
    ConverterResultFlushed = Int
    3
        fromEnum (AnotherConverterResult Int
    k) = Int
    k

        toEnum :: Int -> ConverterResult
    toEnum Int
    0 = ConverterResult
    ConverterResultError
        toEnum Int
    1 = ConverterResult
    ConverterResultConverted
        toEnum Int
    2 = ConverterResult
    ConverterResultFinished
        toEnum Int
    3 = ConverterResult
    ConverterResultFlushed
        toEnum Int
    k = Int -> ConverterResult
    AnotherConverterResult Int
    k

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

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

    foreign import ccall "g_converter_result_get_type" c_g_converter_result_get_type ::
        IO GType

    instance B.Types.TypedObject ConverterResult where
        glibType :: IO GType
    glibType = IO GType
    c_g_converter_result_get_type

    instance B.Types.BoxedEnum ConverterResult

    -- Enum BusType
    -- | An enumeration for well-known message buses.
    --
    -- /Since: 2.26/
    data BusType =
          BusTypeStarter
        -- ^ An alias for the message bus that activated the process, if any.
        | BusTypeNone
        -- ^ Not a message bus.
        | BusTypeSystem
        -- ^ The system-wide message bus.
        | BusTypeSession
        -- ^ The login session message bus.
        | AnotherBusType Int
        -- ^ Catch-all for unknown values
        deriving (Int -> BusType -> ShowS
    [BusType] -> ShowS
    BusType -> String
    (Int -> BusType -> ShowS)
    -> (BusType -> String) -> ([BusType] -> ShowS) -> Show BusType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> BusType -> ShowS
    showsPrec :: Int -> BusType -> ShowS
    $cshow :: BusType -> String
    show :: BusType -> String
    $cshowList :: [BusType] -> ShowS
    showList :: [BusType] -> ShowS
    Show, BusType -> BusType -> Bool
    (BusType -> BusType -> Bool)
    -> (BusType -> BusType -> Bool) -> Eq BusType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: BusType -> BusType -> Bool
    == :: BusType -> BusType -> Bool
    $c/= :: BusType -> BusType -> Bool
    /= :: BusType -> BusType -> Bool
    Eq)

    instance P.Enum BusType where
        fromEnum :: BusType -> Int
    fromEnum BusType
    BusTypeStarter = Int
    -1
        fromEnum BusType
    BusTypeNone = Int
    0
        fromEnum BusType
    BusTypeSystem = Int
    1
        fromEnum BusType
    BusTypeSession = Int
    2
        fromEnum (AnotherBusType Int
    k) = Int
    k

        toEnum :: Int -> BusType
    toEnum Int
    -1 = BusType
    BusTypeStarter
        toEnum Int
    0 = BusType
    BusTypeNone
        toEnum Int
    1 = BusType
    BusTypeSystem
        toEnum Int
    2 = BusType
    BusTypeSession
        toEnum Int
    k = Int -> BusType
    AnotherBusType Int
    k

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

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

    foreign import ccall "g_bus_type_get_type" c_g_bus_type_get_type ::
        IO GType

    instance B.Types.TypedObject BusType where
        glibType :: IO GType
    glibType = IO GType
    c_g_bus_type_get_type

    instance B.Types.BoxedEnum BusType