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

    Specifies the 'GI.GLib.Structs.Scanner.Scanner' parser configuration. Most settings can
    be changed during the parsing phase and will affect the lexical
    parsing of the next unpeeked token.
    -}

    #define ENABLE_OVERLOADING \
           (!defined(__HADDOCK_VERSION__))

    module GI.GLib.Structs.ScannerConfig
        (

    -- * Exported types
        ScannerConfig(..)                       ,
        newZeroScannerConfig                    ,
        noScannerConfig                         ,

     -- * Properties
    -- ** caseSensitive #attr:caseSensitive#
    {- | specifies if symbols are case sensitive (the
        default is 'False').
    -}
        getScannerConfigCaseSensitive           ,
    #if ENABLE_OVERLOADING
        scannerConfig_caseSensitive             ,
    #endif
        setScannerConfigCaseSensitive           ,

    -- ** char2Token #attr:char2Token#
    {- | specifies if characters are reported by setting
        @token = ch@ or as 'GI.GLib.Enums.TokenTypeChar' (the default is 'True').
    -}
        getScannerConfigChar2Token              ,
    #if ENABLE_OVERLOADING
        scannerConfig_char2Token                ,
    #endif
        setScannerConfigChar2Token              ,

    -- ** cpairCommentSingle #attr:cpairCommentSingle#
    {- | specifies the characters at the start and
        end of single-line comments. The default is \"#\\n\" which means
        that single-line comments start with a \'#\' and continue until
        a \'\\n\' (end of line).
    -}
        clearScannerConfigCpairCommentSingle    ,
        getScannerConfigCpairCommentSingle      ,
    #if ENABLE_OVERLOADING
        scannerConfig_cpairCommentSingle        ,
    #endif
        setScannerConfigCpairCommentSingle      ,

    -- ** csetIdentifierFirst #attr:csetIdentifierFirst#
    {- | specifies the characters which can start
        identifiers (the default is 'GI.GLib.Constants.CSET_a_2_z', \"_\", and 'GI.GLib.Constants.CSET_A_2_Z').
    -}
        clearScannerConfigCsetIdentifierFirst   ,
        getScannerConfigCsetIdentifierFirst     ,
    #if ENABLE_OVERLOADING
        scannerConfig_csetIdentifierFirst       ,
    #endif
        setScannerConfigCsetIdentifierFirst     ,

    -- ** csetIdentifierNth #attr:csetIdentifierNth#
    {- | specifies the characters which can be used
        in identifiers, after the first character (the default is
        'GI.GLib.Constants.CSET_a_2_z', \"_0123456789\", 'GI.GLib.Constants.CSET_A_2_Z', @/G_CSET_LATINS/@,
        @/G_CSET_LATINC/@).
    -}
        clearScannerConfigCsetIdentifierNth     ,
        getScannerConfigCsetIdentifierNth       ,
    #if ENABLE_OVERLOADING
        scannerConfig_csetIdentifierNth         ,
    #endif
        setScannerConfigCsetIdentifierNth       ,

    -- ** csetSkipCharacters #attr:csetSkipCharacters#
    {- | specifies which characters should be skipped
        by the scanner (the default is the whitespace characters: space,
        tab, carriage-return and line-feed).
    -}
        clearScannerConfigCsetSkipCharacters    ,
        getScannerConfigCsetSkipCharacters      ,
    #if ENABLE_OVERLOADING
        scannerConfig_csetSkipCharacters        ,
    #endif
        setScannerConfigCsetSkipCharacters      ,

    -- ** identifier2String #attr:identifier2String#
    {- | specifies if identifiers are reported as strings
        (the default is 'False').
    -}
        getScannerConfigIdentifier2String       ,
    #if ENABLE_OVERLOADING
        scannerConfig_identifier2String         ,
    #endif
        setScannerConfigIdentifier2String       ,

    -- ** int2Float #attr:int2Float#
    {- | specifies if all numbers are reported as 'GI.GLib.Enums.TokenTypeFloat'
        (the default is 'False').
    -}
        getScannerConfigInt2Float               ,
    #if ENABLE_OVERLOADING
        scannerConfig_int2Float                 ,
    #endif
        setScannerConfigInt2Float               ,

    -- ** numbers2Int #attr:numbers2Int#
    {- | specifies if binary, octal and hexadecimal numbers
        are reported as @/G_TOKEN_INT/@ (the default is 'True').
    -}
        getScannerConfigNumbers2Int             ,
    #if ENABLE_OVERLOADING
        scannerConfig_numbers2Int               ,
    #endif
        setScannerConfigNumbers2Int             ,

    -- ** scanBinary #attr:scanBinary#
    {- | specifies if binary numbers are recognized (the
        default is 'False').
    -}
        getScannerConfigScanBinary              ,
    #if ENABLE_OVERLOADING
        scannerConfig_scanBinary                ,
    #endif
        setScannerConfigScanBinary              ,

    -- ** scanCommentMulti #attr:scanCommentMulti#
    {- | specifies if multi-line comments are recognized
        (the default is 'True').
    -}
        getScannerConfigScanCommentMulti        ,
    #if ENABLE_OVERLOADING
        scannerConfig_scanCommentMulti          ,
    #endif
        setScannerConfigScanCommentMulti        ,

    -- ** scanFloat #attr:scanFloat#
    {- | specifies if floating point numbers are recognized
        (the default is 'True').
    -}
        getScannerConfigScanFloat               ,
    #if ENABLE_OVERLOADING
        scannerConfig_scanFloat                 ,
    #endif
        setScannerConfigScanFloat               ,

    -- ** scanHex #attr:scanHex#
    {- | specifies if hexadecimal numbers are recognized (the
        default is 'True').
    -}
        getScannerConfigScanHex                 ,
    #if ENABLE_OVERLOADING
        scannerConfig_scanHex                   ,
    #endif
        setScannerConfigScanHex                 ,

    -- ** scanHexDollar #attr:scanHexDollar#
    {- | specifies if \'$\' is recognized as a prefix for
        hexadecimal numbers (the default is 'False').
    -}
        getScannerConfigScanHexDollar           ,
    #if ENABLE_OVERLOADING
        scannerConfig_scanHexDollar             ,
    #endif
        setScannerConfigScanHexDollar           ,

    -- ** scanIdentifier #attr:scanIdentifier#
    {- | specifies if identifiers are recognized (the
        default is 'True').
    -}
        getScannerConfigScanIdentifier          ,
    #if ENABLE_OVERLOADING
        scannerConfig_scanIdentifier            ,
    #endif
        setScannerConfigScanIdentifier          ,

    -- ** scanIdentifier1char #attr:scanIdentifier1char#
    {- | specifies if single-character
        identifiers are recognized (the default is 'False').
    -}
        getScannerConfigScanIdentifier1char     ,
    #if ENABLE_OVERLOADING
        scannerConfig_scanIdentifier1char       ,
    #endif
        setScannerConfigScanIdentifier1char     ,

    -- ** scanIdentifierNULL #attr:scanIdentifierNULL#
    {- | specifies if 'Nothing' is reported as
        'GI.GLib.Enums.TokenTypeIdentifierNull' (the default is 'False').
    -}
        getScannerConfigScanIdentifierNULL      ,
    #if ENABLE_OVERLOADING
        scannerConfig_scanIdentifierNULL        ,
    #endif
        setScannerConfigScanIdentifierNULL      ,

    -- ** scanOctal #attr:scanOctal#
    {- | specifies if octal numbers are recognized (the
        default is 'True').
    -}
        getScannerConfigScanOctal               ,
    #if ENABLE_OVERLOADING
        scannerConfig_scanOctal                 ,
    #endif
        setScannerConfigScanOctal               ,

    -- ** scanStringDq #attr:scanStringDq#
    {- | specifies if strings can be enclosed in double
        quotes (the default is 'True').
    -}
        getScannerConfigScanStringDq            ,
    #if ENABLE_OVERLOADING
        scannerConfig_scanStringDq              ,
    #endif
        setScannerConfigScanStringDq            ,

    -- ** scanStringSq #attr:scanStringSq#
    {- | specifies if strings can be enclosed in single
        quotes (the default is 'True').
    -}
        getScannerConfigScanStringSq            ,
    #if ENABLE_OVERLOADING
        scannerConfig_scanStringSq              ,
    #endif
        setScannerConfigScanStringSq            ,

    -- ** scanSymbols #attr:scanSymbols#
    {- | specifies if symbols are recognized (the default
        is 'True').
    -}
        getScannerConfigScanSymbols             ,
    #if ENABLE_OVERLOADING
        scannerConfig_scanSymbols               ,
    #endif
        setScannerConfigScanSymbols             ,

    -- ** scope0Fallback #attr:scope0Fallback#
    {- | specifies if a symbol is searched for in the
        default scope in addition to the current scope (the default is 'False').
    -}
        getScannerConfigScope0Fallback          ,
    #if ENABLE_OVERLOADING
        scannerConfig_scope0Fallback            ,
    #endif
        setScannerConfigScope0Fallback          ,

    -- ** skipCommentMulti #attr:skipCommentMulti#
    {- | specifies if multi-line comments are skipped
        and not returned as tokens (the default is 'True').
    -}
        getScannerConfigSkipCommentMulti        ,
    #if ENABLE_OVERLOADING
        scannerConfig_skipCommentMulti          ,
    #endif
        setScannerConfigSkipCommentMulti        ,

    -- ** skipCommentSingle #attr:skipCommentSingle#
    {- | specifies if single-line comments are skipped
        and not returned as tokens (the default is 'True').
    -}
        getScannerConfigSkipCommentSingle       ,
    #if ENABLE_OVERLOADING
        scannerConfig_skipCommentSingle         ,
    #endif
        setScannerConfigSkipCommentSingle       ,

    -- ** storeInt64 #attr:storeInt64#
    {- | use value.v_int64 rather than v_int
    -}
        getScannerConfigStoreInt64              ,
    #if ENABLE_OVERLOADING
        scannerConfig_storeInt64                ,
    #endif
        setScannerConfigStoreInt64              ,

    -- ** symbol2Token #attr:symbol2Token#
    {- | specifies if symbols are reported by setting
        @token = v_symbol@ or as 'GI.GLib.Enums.TokenTypeSymbol' (the default is 'False').
    -}
        getScannerConfigSymbol2Token            ,
    #if ENABLE_OVERLOADING
        scannerConfig_symbol2Token              ,
    #endif
        setScannerConfigSymbol2Token            ,

        ) where

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

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

    -- | Memory-managed wrapper type.
    newtype ScannerConfig = ScannerConfig (ManagedPtr ScannerConfig)
    instance WrappedPtr ScannerConfig where
        wrappedPtrCalloc = callocBytes 128
        wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 128 >=> wrapPtr ScannerConfig)
        wrappedPtrFree = Just ptr_to_g_free

    -- | Construct a `ScannerConfig` struct initialized to zero.
    newZeroScannerConfig :: MonadIO m => m ScannerConfig
    newZeroScannerConfig = liftIO $ wrappedPtrCalloc >>= wrapPtr ScannerConfig

    instance tag ~ 'AttrSet => Constructible ScannerConfig tag where
        new _ attrs = do
            o <- newZeroScannerConfig
            GI.Attributes.set o attrs
            return o

    -- | A convenience alias for `Nothing` :: `Maybe` `ScannerConfig`.
    noScannerConfig :: Maybe ScannerConfig
    noScannerConfig = Nothing

    {- |
    Get the value of the “@cset_skip_characters@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #csetSkipCharacters
    @
    -}
    getScannerConfigCsetSkipCharacters :: MonadIO m => ScannerConfig -> m (Maybe T.Text)
    getScannerConfigCsetSkipCharacters s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 0) :: IO CString
        result <- SP.convertIfNonNull val $ \val' -> do
            val'' <- cstringToText val'
            return val''
        return result

    {- |
    Set the value of the “@cset_skip_characters@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #csetSkipCharacters 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigCsetSkipCharacters :: MonadIO m => ScannerConfig -> CString -> m ()
    setScannerConfigCsetSkipCharacters s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 0) (val :: CString)

    {- |
    Set the value of the “@cset_skip_characters@” field to `Nothing`.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.clear' #csetSkipCharacters
    @
    -}
    clearScannerConfigCsetSkipCharacters :: MonadIO m => ScannerConfig -> m ()
    clearScannerConfigCsetSkipCharacters s = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 0) (FP.nullPtr :: CString)

    #if ENABLE_OVERLOADING
    data ScannerConfigCsetSkipCharactersFieldInfo
    instance AttrInfo ScannerConfigCsetSkipCharactersFieldInfo where
        type AttrAllowedOps ScannerConfigCsetSkipCharactersFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
        type AttrSetTypeConstraint ScannerConfigCsetSkipCharactersFieldInfo = (~) CString
        type AttrBaseTypeConstraint ScannerConfigCsetSkipCharactersFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigCsetSkipCharactersFieldInfo = Maybe T.Text
        type AttrLabel ScannerConfigCsetSkipCharactersFieldInfo = "cset_skip_characters"
        type AttrOrigin ScannerConfigCsetSkipCharactersFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigCsetSkipCharacters
        attrSet _ = setScannerConfigCsetSkipCharacters
        attrConstruct = undefined
        attrClear _ = clearScannerConfigCsetSkipCharacters

    scannerConfig_csetSkipCharacters :: AttrLabelProxy "csetSkipCharacters"
    scannerConfig_csetSkipCharacters = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@cset_identifier_first@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #csetIdentifierFirst
    @
    -}
    getScannerConfigCsetIdentifierFirst :: MonadIO m => ScannerConfig -> m (Maybe T.Text)
    getScannerConfigCsetIdentifierFirst s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 8) :: IO CString
        result <- SP.convertIfNonNull val $ \val' -> do
            val'' <- cstringToText val'
            return val''
        return result

    {- |
    Set the value of the “@cset_identifier_first@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #csetIdentifierFirst 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigCsetIdentifierFirst :: MonadIO m => ScannerConfig -> CString -> m ()
    setScannerConfigCsetIdentifierFirst s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 8) (val :: CString)

    {- |
    Set the value of the “@cset_identifier_first@” field to `Nothing`.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.clear' #csetIdentifierFirst
    @
    -}
    clearScannerConfigCsetIdentifierFirst :: MonadIO m => ScannerConfig -> m ()
    clearScannerConfigCsetIdentifierFirst s = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 8) (FP.nullPtr :: CString)

    #if ENABLE_OVERLOADING
    data ScannerConfigCsetIdentifierFirstFieldInfo
    instance AttrInfo ScannerConfigCsetIdentifierFirstFieldInfo where
        type AttrAllowedOps ScannerConfigCsetIdentifierFirstFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
        type AttrSetTypeConstraint ScannerConfigCsetIdentifierFirstFieldInfo = (~) CString
        type AttrBaseTypeConstraint ScannerConfigCsetIdentifierFirstFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigCsetIdentifierFirstFieldInfo = Maybe T.Text
        type AttrLabel ScannerConfigCsetIdentifierFirstFieldInfo = "cset_identifier_first"
        type AttrOrigin ScannerConfigCsetIdentifierFirstFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigCsetIdentifierFirst
        attrSet _ = setScannerConfigCsetIdentifierFirst
        attrConstruct = undefined
        attrClear _ = clearScannerConfigCsetIdentifierFirst

    scannerConfig_csetIdentifierFirst :: AttrLabelProxy "csetIdentifierFirst"
    scannerConfig_csetIdentifierFirst = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@cset_identifier_nth@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #csetIdentifierNth
    @
    -}
    getScannerConfigCsetIdentifierNth :: MonadIO m => ScannerConfig -> m (Maybe T.Text)
    getScannerConfigCsetIdentifierNth s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 16) :: IO CString
        result <- SP.convertIfNonNull val $ \val' -> do
            val'' <- cstringToText val'
            return val''
        return result

    {- |
    Set the value of the “@cset_identifier_nth@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #csetIdentifierNth 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigCsetIdentifierNth :: MonadIO m => ScannerConfig -> CString -> m ()
    setScannerConfigCsetIdentifierNth s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 16) (val :: CString)

    {- |
    Set the value of the “@cset_identifier_nth@” field to `Nothing`.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.clear' #csetIdentifierNth
    @
    -}
    clearScannerConfigCsetIdentifierNth :: MonadIO m => ScannerConfig -> m ()
    clearScannerConfigCsetIdentifierNth s = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 16) (FP.nullPtr :: CString)

    #if ENABLE_OVERLOADING
    data ScannerConfigCsetIdentifierNthFieldInfo
    instance AttrInfo ScannerConfigCsetIdentifierNthFieldInfo where
        type AttrAllowedOps ScannerConfigCsetIdentifierNthFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
        type AttrSetTypeConstraint ScannerConfigCsetIdentifierNthFieldInfo = (~) CString
        type AttrBaseTypeConstraint ScannerConfigCsetIdentifierNthFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigCsetIdentifierNthFieldInfo = Maybe T.Text
        type AttrLabel ScannerConfigCsetIdentifierNthFieldInfo = "cset_identifier_nth"
        type AttrOrigin ScannerConfigCsetIdentifierNthFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigCsetIdentifierNth
        attrSet _ = setScannerConfigCsetIdentifierNth
        attrConstruct = undefined
        attrClear _ = clearScannerConfigCsetIdentifierNth

    scannerConfig_csetIdentifierNth :: AttrLabelProxy "csetIdentifierNth"
    scannerConfig_csetIdentifierNth = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@cpair_comment_single@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #cpairCommentSingle
    @
    -}
    getScannerConfigCpairCommentSingle :: MonadIO m => ScannerConfig -> m (Maybe T.Text)
    getScannerConfigCpairCommentSingle s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 24) :: IO CString
        result <- SP.convertIfNonNull val $ \val' -> do
            val'' <- cstringToText val'
            return val''
        return result

    {- |
    Set the value of the “@cpair_comment_single@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #cpairCommentSingle 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigCpairCommentSingle :: MonadIO m => ScannerConfig -> CString -> m ()
    setScannerConfigCpairCommentSingle s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 24) (val :: CString)

    {- |
    Set the value of the “@cpair_comment_single@” field to `Nothing`.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.clear' #cpairCommentSingle
    @
    -}
    clearScannerConfigCpairCommentSingle :: MonadIO m => ScannerConfig -> m ()
    clearScannerConfigCpairCommentSingle s = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 24) (FP.nullPtr :: CString)

    #if ENABLE_OVERLOADING
    data ScannerConfigCpairCommentSingleFieldInfo
    instance AttrInfo ScannerConfigCpairCommentSingleFieldInfo where
        type AttrAllowedOps ScannerConfigCpairCommentSingleFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
        type AttrSetTypeConstraint ScannerConfigCpairCommentSingleFieldInfo = (~) CString
        type AttrBaseTypeConstraint ScannerConfigCpairCommentSingleFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigCpairCommentSingleFieldInfo = Maybe T.Text
        type AttrLabel ScannerConfigCpairCommentSingleFieldInfo = "cpair_comment_single"
        type AttrOrigin ScannerConfigCpairCommentSingleFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigCpairCommentSingle
        attrSet _ = setScannerConfigCpairCommentSingle
        attrConstruct = undefined
        attrClear _ = clearScannerConfigCpairCommentSingle

    scannerConfig_cpairCommentSingle :: AttrLabelProxy "cpairCommentSingle"
    scannerConfig_cpairCommentSingle = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@case_sensitive@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #caseSensitive
    @
    -}
    getScannerConfigCaseSensitive :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigCaseSensitive s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 32) :: IO Word32
        return val

    {- |
    Set the value of the “@case_sensitive@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #caseSensitive 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigCaseSensitive :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigCaseSensitive s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 32) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigCaseSensitiveFieldInfo
    instance AttrInfo ScannerConfigCaseSensitiveFieldInfo where
        type AttrAllowedOps ScannerConfigCaseSensitiveFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigCaseSensitiveFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigCaseSensitiveFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigCaseSensitiveFieldInfo = Word32
        type AttrLabel ScannerConfigCaseSensitiveFieldInfo = "case_sensitive"
        type AttrOrigin ScannerConfigCaseSensitiveFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigCaseSensitive
        attrSet _ = setScannerConfigCaseSensitive
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_caseSensitive :: AttrLabelProxy "caseSensitive"
    scannerConfig_caseSensitive = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@skip_comment_multi@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #skipCommentMulti
    @
    -}
    getScannerConfigSkipCommentMulti :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigSkipCommentMulti s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 36) :: IO Word32
        return val

    {- |
    Set the value of the “@skip_comment_multi@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #skipCommentMulti 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigSkipCommentMulti :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigSkipCommentMulti s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 36) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigSkipCommentMultiFieldInfo
    instance AttrInfo ScannerConfigSkipCommentMultiFieldInfo where
        type AttrAllowedOps ScannerConfigSkipCommentMultiFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigSkipCommentMultiFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigSkipCommentMultiFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigSkipCommentMultiFieldInfo = Word32
        type AttrLabel ScannerConfigSkipCommentMultiFieldInfo = "skip_comment_multi"
        type AttrOrigin ScannerConfigSkipCommentMultiFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigSkipCommentMulti
        attrSet _ = setScannerConfigSkipCommentMulti
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_skipCommentMulti :: AttrLabelProxy "skipCommentMulti"
    scannerConfig_skipCommentMulti = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@skip_comment_single@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #skipCommentSingle
    @
    -}
    getScannerConfigSkipCommentSingle :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigSkipCommentSingle s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 40) :: IO Word32
        return val

    {- |
    Set the value of the “@skip_comment_single@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #skipCommentSingle 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigSkipCommentSingle :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigSkipCommentSingle s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 40) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigSkipCommentSingleFieldInfo
    instance AttrInfo ScannerConfigSkipCommentSingleFieldInfo where
        type AttrAllowedOps ScannerConfigSkipCommentSingleFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigSkipCommentSingleFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigSkipCommentSingleFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigSkipCommentSingleFieldInfo = Word32
        type AttrLabel ScannerConfigSkipCommentSingleFieldInfo = "skip_comment_single"
        type AttrOrigin ScannerConfigSkipCommentSingleFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigSkipCommentSingle
        attrSet _ = setScannerConfigSkipCommentSingle
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_skipCommentSingle :: AttrLabelProxy "skipCommentSingle"
    scannerConfig_skipCommentSingle = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@scan_comment_multi@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #scanCommentMulti
    @
    -}
    getScannerConfigScanCommentMulti :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigScanCommentMulti s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 44) :: IO Word32
        return val

    {- |
    Set the value of the “@scan_comment_multi@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #scanCommentMulti 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigScanCommentMulti :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigScanCommentMulti s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 44) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigScanCommentMultiFieldInfo
    instance AttrInfo ScannerConfigScanCommentMultiFieldInfo where
        type AttrAllowedOps ScannerConfigScanCommentMultiFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigScanCommentMultiFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigScanCommentMultiFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigScanCommentMultiFieldInfo = Word32
        type AttrLabel ScannerConfigScanCommentMultiFieldInfo = "scan_comment_multi"
        type AttrOrigin ScannerConfigScanCommentMultiFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigScanCommentMulti
        attrSet _ = setScannerConfigScanCommentMulti
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_scanCommentMulti :: AttrLabelProxy "scanCommentMulti"
    scannerConfig_scanCommentMulti = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@scan_identifier@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #scanIdentifier
    @
    -}
    getScannerConfigScanIdentifier :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigScanIdentifier s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 48) :: IO Word32
        return val

    {- |
    Set the value of the “@scan_identifier@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #scanIdentifier 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigScanIdentifier :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigScanIdentifier s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 48) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigScanIdentifierFieldInfo
    instance AttrInfo ScannerConfigScanIdentifierFieldInfo where
        type AttrAllowedOps ScannerConfigScanIdentifierFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigScanIdentifierFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigScanIdentifierFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigScanIdentifierFieldInfo = Word32
        type AttrLabel ScannerConfigScanIdentifierFieldInfo = "scan_identifier"
        type AttrOrigin ScannerConfigScanIdentifierFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigScanIdentifier
        attrSet _ = setScannerConfigScanIdentifier
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_scanIdentifier :: AttrLabelProxy "scanIdentifier"
    scannerConfig_scanIdentifier = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@scan_identifier_1char@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #scanIdentifier1char
    @
    -}
    getScannerConfigScanIdentifier1char :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigScanIdentifier1char s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 52) :: IO Word32
        return val

    {- |
    Set the value of the “@scan_identifier_1char@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #scanIdentifier1char 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigScanIdentifier1char :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigScanIdentifier1char s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 52) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigScanIdentifier1charFieldInfo
    instance AttrInfo ScannerConfigScanIdentifier1charFieldInfo where
        type AttrAllowedOps ScannerConfigScanIdentifier1charFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigScanIdentifier1charFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigScanIdentifier1charFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigScanIdentifier1charFieldInfo = Word32
        type AttrLabel ScannerConfigScanIdentifier1charFieldInfo = "scan_identifier_1char"
        type AttrOrigin ScannerConfigScanIdentifier1charFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigScanIdentifier1char
        attrSet _ = setScannerConfigScanIdentifier1char
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_scanIdentifier1char :: AttrLabelProxy "scanIdentifier1char"
    scannerConfig_scanIdentifier1char = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@scan_identifier_NULL@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #scanIdentifierNULL
    @
    -}
    getScannerConfigScanIdentifierNULL :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigScanIdentifierNULL s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 56) :: IO Word32
        return val

    {- |
    Set the value of the “@scan_identifier_NULL@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #scanIdentifierNULL 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigScanIdentifierNULL :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigScanIdentifierNULL s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 56) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigScanIdentifierNULLFieldInfo
    instance AttrInfo ScannerConfigScanIdentifierNULLFieldInfo where
        type AttrAllowedOps ScannerConfigScanIdentifierNULLFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigScanIdentifierNULLFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigScanIdentifierNULLFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigScanIdentifierNULLFieldInfo = Word32
        type AttrLabel ScannerConfigScanIdentifierNULLFieldInfo = "scan_identifier_NULL"
        type AttrOrigin ScannerConfigScanIdentifierNULLFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigScanIdentifierNULL
        attrSet _ = setScannerConfigScanIdentifierNULL
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_scanIdentifierNULL :: AttrLabelProxy "scanIdentifierNULL"
    scannerConfig_scanIdentifierNULL = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@scan_symbols@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #scanSymbols
    @
    -}
    getScannerConfigScanSymbols :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigScanSymbols s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 60) :: IO Word32
        return val

    {- |
    Set the value of the “@scan_symbols@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #scanSymbols 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigScanSymbols :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigScanSymbols s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 60) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigScanSymbolsFieldInfo
    instance AttrInfo ScannerConfigScanSymbolsFieldInfo where
        type AttrAllowedOps ScannerConfigScanSymbolsFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigScanSymbolsFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigScanSymbolsFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigScanSymbolsFieldInfo = Word32
        type AttrLabel ScannerConfigScanSymbolsFieldInfo = "scan_symbols"
        type AttrOrigin ScannerConfigScanSymbolsFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigScanSymbols
        attrSet _ = setScannerConfigScanSymbols
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_scanSymbols :: AttrLabelProxy "scanSymbols"
    scannerConfig_scanSymbols = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@scan_binary@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #scanBinary
    @
    -}
    getScannerConfigScanBinary :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigScanBinary s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 64) :: IO Word32
        return val

    {- |
    Set the value of the “@scan_binary@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #scanBinary 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigScanBinary :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigScanBinary s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 64) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigScanBinaryFieldInfo
    instance AttrInfo ScannerConfigScanBinaryFieldInfo where
        type AttrAllowedOps ScannerConfigScanBinaryFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigScanBinaryFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigScanBinaryFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigScanBinaryFieldInfo = Word32
        type AttrLabel ScannerConfigScanBinaryFieldInfo = "scan_binary"
        type AttrOrigin ScannerConfigScanBinaryFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigScanBinary
        attrSet _ = setScannerConfigScanBinary
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_scanBinary :: AttrLabelProxy "scanBinary"
    scannerConfig_scanBinary = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@scan_octal@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #scanOctal
    @
    -}
    getScannerConfigScanOctal :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigScanOctal s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 68) :: IO Word32
        return val

    {- |
    Set the value of the “@scan_octal@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #scanOctal 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigScanOctal :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigScanOctal s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 68) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigScanOctalFieldInfo
    instance AttrInfo ScannerConfigScanOctalFieldInfo where
        type AttrAllowedOps ScannerConfigScanOctalFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigScanOctalFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigScanOctalFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigScanOctalFieldInfo = Word32
        type AttrLabel ScannerConfigScanOctalFieldInfo = "scan_octal"
        type AttrOrigin ScannerConfigScanOctalFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigScanOctal
        attrSet _ = setScannerConfigScanOctal
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_scanOctal :: AttrLabelProxy "scanOctal"
    scannerConfig_scanOctal = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@scan_float@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #scanFloat
    @
    -}
    getScannerConfigScanFloat :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigScanFloat s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 72) :: IO Word32
        return val

    {- |
    Set the value of the “@scan_float@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #scanFloat 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigScanFloat :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigScanFloat s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 72) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigScanFloatFieldInfo
    instance AttrInfo ScannerConfigScanFloatFieldInfo where
        type AttrAllowedOps ScannerConfigScanFloatFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigScanFloatFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigScanFloatFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigScanFloatFieldInfo = Word32
        type AttrLabel ScannerConfigScanFloatFieldInfo = "scan_float"
        type AttrOrigin ScannerConfigScanFloatFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigScanFloat
        attrSet _ = setScannerConfigScanFloat
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_scanFloat :: AttrLabelProxy "scanFloat"
    scannerConfig_scanFloat = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@scan_hex@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #scanHex
    @
    -}
    getScannerConfigScanHex :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigScanHex s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 76) :: IO Word32
        return val

    {- |
    Set the value of the “@scan_hex@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #scanHex 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigScanHex :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigScanHex s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 76) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigScanHexFieldInfo
    instance AttrInfo ScannerConfigScanHexFieldInfo where
        type AttrAllowedOps ScannerConfigScanHexFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigScanHexFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigScanHexFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigScanHexFieldInfo = Word32
        type AttrLabel ScannerConfigScanHexFieldInfo = "scan_hex"
        type AttrOrigin ScannerConfigScanHexFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigScanHex
        attrSet _ = setScannerConfigScanHex
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_scanHex :: AttrLabelProxy "scanHex"
    scannerConfig_scanHex = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@scan_hex_dollar@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #scanHexDollar
    @
    -}
    getScannerConfigScanHexDollar :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigScanHexDollar s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 80) :: IO Word32
        return val

    {- |
    Set the value of the “@scan_hex_dollar@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #scanHexDollar 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigScanHexDollar :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigScanHexDollar s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 80) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigScanHexDollarFieldInfo
    instance AttrInfo ScannerConfigScanHexDollarFieldInfo where
        type AttrAllowedOps ScannerConfigScanHexDollarFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigScanHexDollarFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigScanHexDollarFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigScanHexDollarFieldInfo = Word32
        type AttrLabel ScannerConfigScanHexDollarFieldInfo = "scan_hex_dollar"
        type AttrOrigin ScannerConfigScanHexDollarFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigScanHexDollar
        attrSet _ = setScannerConfigScanHexDollar
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_scanHexDollar :: AttrLabelProxy "scanHexDollar"
    scannerConfig_scanHexDollar = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@scan_string_sq@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #scanStringSq
    @
    -}
    getScannerConfigScanStringSq :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigScanStringSq s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 84) :: IO Word32
        return val

    {- |
    Set the value of the “@scan_string_sq@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #scanStringSq 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigScanStringSq :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigScanStringSq s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 84) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigScanStringSqFieldInfo
    instance AttrInfo ScannerConfigScanStringSqFieldInfo where
        type AttrAllowedOps ScannerConfigScanStringSqFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigScanStringSqFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigScanStringSqFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigScanStringSqFieldInfo = Word32
        type AttrLabel ScannerConfigScanStringSqFieldInfo = "scan_string_sq"
        type AttrOrigin ScannerConfigScanStringSqFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigScanStringSq
        attrSet _ = setScannerConfigScanStringSq
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_scanStringSq :: AttrLabelProxy "scanStringSq"
    scannerConfig_scanStringSq = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@scan_string_dq@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #scanStringDq
    @
    -}
    getScannerConfigScanStringDq :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigScanStringDq s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 88) :: IO Word32
        return val

    {- |
    Set the value of the “@scan_string_dq@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #scanStringDq 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigScanStringDq :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigScanStringDq s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 88) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigScanStringDqFieldInfo
    instance AttrInfo ScannerConfigScanStringDqFieldInfo where
        type AttrAllowedOps ScannerConfigScanStringDqFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigScanStringDqFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigScanStringDqFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigScanStringDqFieldInfo = Word32
        type AttrLabel ScannerConfigScanStringDqFieldInfo = "scan_string_dq"
        type AttrOrigin ScannerConfigScanStringDqFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigScanStringDq
        attrSet _ = setScannerConfigScanStringDq
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_scanStringDq :: AttrLabelProxy "scanStringDq"
    scannerConfig_scanStringDq = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@numbers_2_int@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #numbers2Int
    @
    -}
    getScannerConfigNumbers2Int :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigNumbers2Int s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 92) :: IO Word32
        return val

    {- |
    Set the value of the “@numbers_2_int@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #numbers2Int 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigNumbers2Int :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigNumbers2Int s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 92) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigNumbers2IntFieldInfo
    instance AttrInfo ScannerConfigNumbers2IntFieldInfo where
        type AttrAllowedOps ScannerConfigNumbers2IntFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigNumbers2IntFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigNumbers2IntFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigNumbers2IntFieldInfo = Word32
        type AttrLabel ScannerConfigNumbers2IntFieldInfo = "numbers_2_int"
        type AttrOrigin ScannerConfigNumbers2IntFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigNumbers2Int
        attrSet _ = setScannerConfigNumbers2Int
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_numbers2Int :: AttrLabelProxy "numbers2Int"
    scannerConfig_numbers2Int = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@int_2_float@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #int2Float
    @
    -}
    getScannerConfigInt2Float :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigInt2Float s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 96) :: IO Word32
        return val

    {- |
    Set the value of the “@int_2_float@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #int2Float 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigInt2Float :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigInt2Float s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 96) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigInt2FloatFieldInfo
    instance AttrInfo ScannerConfigInt2FloatFieldInfo where
        type AttrAllowedOps ScannerConfigInt2FloatFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigInt2FloatFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigInt2FloatFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigInt2FloatFieldInfo = Word32
        type AttrLabel ScannerConfigInt2FloatFieldInfo = "int_2_float"
        type AttrOrigin ScannerConfigInt2FloatFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigInt2Float
        attrSet _ = setScannerConfigInt2Float
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_int2Float :: AttrLabelProxy "int2Float"
    scannerConfig_int2Float = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@identifier_2_string@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #identifier2String
    @
    -}
    getScannerConfigIdentifier2String :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigIdentifier2String s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 100) :: IO Word32
        return val

    {- |
    Set the value of the “@identifier_2_string@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #identifier2String 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigIdentifier2String :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigIdentifier2String s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 100) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigIdentifier2StringFieldInfo
    instance AttrInfo ScannerConfigIdentifier2StringFieldInfo where
        type AttrAllowedOps ScannerConfigIdentifier2StringFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigIdentifier2StringFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigIdentifier2StringFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigIdentifier2StringFieldInfo = Word32
        type AttrLabel ScannerConfigIdentifier2StringFieldInfo = "identifier_2_string"
        type AttrOrigin ScannerConfigIdentifier2StringFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigIdentifier2String
        attrSet _ = setScannerConfigIdentifier2String
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_identifier2String :: AttrLabelProxy "identifier2String"
    scannerConfig_identifier2String = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@char_2_token@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #char2Token
    @
    -}
    getScannerConfigChar2Token :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigChar2Token s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 104) :: IO Word32
        return val

    {- |
    Set the value of the “@char_2_token@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #char2Token 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigChar2Token :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigChar2Token s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 104) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigChar2TokenFieldInfo
    instance AttrInfo ScannerConfigChar2TokenFieldInfo where
        type AttrAllowedOps ScannerConfigChar2TokenFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigChar2TokenFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigChar2TokenFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigChar2TokenFieldInfo = Word32
        type AttrLabel ScannerConfigChar2TokenFieldInfo = "char_2_token"
        type AttrOrigin ScannerConfigChar2TokenFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigChar2Token
        attrSet _ = setScannerConfigChar2Token
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_char2Token :: AttrLabelProxy "char2Token"
    scannerConfig_char2Token = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@symbol_2_token@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #symbol2Token
    @
    -}
    getScannerConfigSymbol2Token :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigSymbol2Token s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 108) :: IO Word32
        return val

    {- |
    Set the value of the “@symbol_2_token@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #symbol2Token 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigSymbol2Token :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigSymbol2Token s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 108) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigSymbol2TokenFieldInfo
    instance AttrInfo ScannerConfigSymbol2TokenFieldInfo where
        type AttrAllowedOps ScannerConfigSymbol2TokenFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigSymbol2TokenFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigSymbol2TokenFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigSymbol2TokenFieldInfo = Word32
        type AttrLabel ScannerConfigSymbol2TokenFieldInfo = "symbol_2_token"
        type AttrOrigin ScannerConfigSymbol2TokenFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigSymbol2Token
        attrSet _ = setScannerConfigSymbol2Token
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_symbol2Token :: AttrLabelProxy "symbol2Token"
    scannerConfig_symbol2Token = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@scope_0_fallback@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #scope0Fallback
    @
    -}
    getScannerConfigScope0Fallback :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigScope0Fallback s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 112) :: IO Word32
        return val

    {- |
    Set the value of the “@scope_0_fallback@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #scope0Fallback 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigScope0Fallback :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigScope0Fallback s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 112) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigScope0FallbackFieldInfo
    instance AttrInfo ScannerConfigScope0FallbackFieldInfo where
        type AttrAllowedOps ScannerConfigScope0FallbackFieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigScope0FallbackFieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigScope0FallbackFieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigScope0FallbackFieldInfo = Word32
        type AttrLabel ScannerConfigScope0FallbackFieldInfo = "scope_0_fallback"
        type AttrOrigin ScannerConfigScope0FallbackFieldInfo = ScannerConfig
        attrGet _ = getScannerConfigScope0Fallback
        attrSet _ = setScannerConfigScope0Fallback
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_scope0Fallback :: AttrLabelProxy "scope0Fallback"
    scannerConfig_scope0Fallback = AttrLabelProxy

    #endif

    {- |
    Get the value of the “@store_int64@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.get' scannerConfig #storeInt64
    @
    -}
    getScannerConfigStoreInt64 :: MonadIO m => ScannerConfig -> m Word32
    getScannerConfigStoreInt64 s = liftIO $ withManagedPtr s $ \ptr -> do
        val <- peek (ptr `plusPtr` 116) :: IO Word32
        return val

    {- |
    Set the value of the “@store_int64@” field.
    When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

    @
    'Data.GI.Base.Attributes.set' scannerConfig [ #storeInt64 'Data.GI.Base.Attributes.:=' value ]
    @
    -}
    setScannerConfigStoreInt64 :: MonadIO m => ScannerConfig -> Word32 -> m ()
    setScannerConfigStoreInt64 s val = liftIO $ withManagedPtr s $ \ptr -> do
        poke (ptr `plusPtr` 116) (val :: Word32)

    #if ENABLE_OVERLOADING
    data ScannerConfigStoreInt64FieldInfo
    instance AttrInfo ScannerConfigStoreInt64FieldInfo where
        type AttrAllowedOps ScannerConfigStoreInt64FieldInfo = '[ 'AttrSet, 'AttrGet]
        type AttrSetTypeConstraint ScannerConfigStoreInt64FieldInfo = (~) Word32
        type AttrBaseTypeConstraint ScannerConfigStoreInt64FieldInfo = (~) ScannerConfig
        type AttrGetType ScannerConfigStoreInt64FieldInfo = Word32
        type AttrLabel ScannerConfigStoreInt64FieldInfo = "store_int64"
        type AttrOrigin ScannerConfigStoreInt64FieldInfo = ScannerConfig
        attrGet _ = getScannerConfigStoreInt64
        attrSet _ = setScannerConfigStoreInt64
        attrConstruct = undefined
        attrClear _ = undefined

    scannerConfig_storeInt64 :: AttrLabelProxy "storeInt64"
    scannerConfig_storeInt64 = AttrLabelProxy

    #endif

    #if ENABLE_OVERLOADING
    instance O.HasAttributeList ScannerConfig
    type instance O.AttributeList ScannerConfig = ScannerConfigAttributeList
    type ScannerConfigAttributeList = ('[ '("csetSkipCharacters", ScannerConfigCsetSkipCharactersFieldInfo), '("csetIdentifierFirst", ScannerConfigCsetIdentifierFirstFieldInfo), '("csetIdentifierNth", ScannerConfigCsetIdentifierNthFieldInfo), '("cpairCommentSingle", ScannerConfigCpairCommentSingleFieldInfo), '("caseSensitive", ScannerConfigCaseSensitiveFieldInfo), '("skipCommentMulti", ScannerConfigSkipCommentMultiFieldInfo), '("skipCommentSingle", ScannerConfigSkipCommentSingleFieldInfo), '("scanCommentMulti", ScannerConfigScanCommentMultiFieldInfo), '("scanIdentifier", ScannerConfigScanIdentifierFieldInfo), '("scanIdentifier1char", ScannerConfigScanIdentifier1charFieldInfo), '("scanIdentifierNULL", ScannerConfigScanIdentifierNULLFieldInfo), '("scanSymbols", ScannerConfigScanSymbolsFieldInfo), '("scanBinary", ScannerConfigScanBinaryFieldInfo), '("scanOctal", ScannerConfigScanOctalFieldInfo), '("scanFloat", ScannerConfigScanFloatFieldInfo), '("scanHex", ScannerConfigScanHexFieldInfo), '("scanHexDollar", ScannerConfigScanHexDollarFieldInfo), '("scanStringSq", ScannerConfigScanStringSqFieldInfo), '("scanStringDq", ScannerConfigScanStringDqFieldInfo), '("numbers2Int", ScannerConfigNumbers2IntFieldInfo), '("int2Float", ScannerConfigInt2FloatFieldInfo), '("identifier2String", ScannerConfigIdentifier2StringFieldInfo), '("char2Token", ScannerConfigChar2TokenFieldInfo), '("symbol2Token", ScannerConfigSymbol2TokenFieldInfo), '("scope0Fallback", ScannerConfigScope0FallbackFieldInfo), '("storeInt64", ScannerConfigStoreInt64FieldInfo)] :: [(Symbol, *)])
    #endif

    #if ENABLE_OVERLOADING
    type family ResolveScannerConfigMethod (t :: Symbol) (o :: *) :: * where
        ResolveScannerConfigMethod l o = O.MethodResolutionFailed l o

    instance (info ~ ResolveScannerConfigMethod t ScannerConfig, O.MethodInfo info ScannerConfig p) => O.IsLabelProxy t (ScannerConfig -> p) where
        fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

    #if MIN_VERSION_base(4,9,0)
    instance (info ~ ResolveScannerConfigMethod t ScannerConfig, O.MethodInfo info ScannerConfig p) => O.IsLabel t (ScannerConfig -> p) where
    #if MIN_VERSION_base(4,10,0)
        fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
    #else
        fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
    #endif
    #endif

    #endif