    {-# LANGUAGE TypeApplications #-}

    -- | Copyright  : Will Thompson and Iñaki García Etxebarria
    -- License    : LGPL-2.1
    -- Maintainer : Iñaki García Etxebarria
    --
    -- @GInetAddress@ represents an IPv4 or IPv6 internet address. Use
    -- 'GI.Gio.Objects.Resolver.resolverLookupByName' or
    -- 'GI.Gio.Objects.Resolver.resolverLookupByNameAsync' to look up the @GInetAddress@ for
    -- a hostname. Use 'GI.Gio.Objects.Resolver.resolverLookupByAddress' or
    -- 'GI.Gio.Objects.Resolver.resolverLookupByAddressAsync' to look up the hostname for a
    -- @GInetAddress@.
    --
    -- To actually connect to a remote host, you will need a
    -- t'GI.Gio.Objects.InetSocketAddress.InetSocketAddress' (which includes a @GInetAddress@ as well as a
    -- port number).

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

    module GI.Gio.Objects.InetAddress
        (

    -- * Exported types
        InetAddress(..)                         ,
        IsInetAddress                           ,
        toInetAddress                           ,

     -- * Methods
    -- |
    --
    --  === __Click to display all available methods, including inherited ones__
    -- ==== Methods
    -- [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [equal]("GI.Gio.Objects.InetAddress#g:method:equal"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [toString]("GI.Gio.Objects.InetAddress#g:method:toString"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
    --
    -- ==== Getters
    -- [getData]("GI.GObject.Objects.Object#g:method:getData"), [getFamily]("GI.Gio.Objects.InetAddress#g:method:getFamily"), [getFlowinfo]("GI.Gio.Objects.InetAddress#g:method:getFlowinfo"), [getIsAny]("GI.Gio.Objects.InetAddress#g:method:getIsAny"), [getIsLinkLocal]("GI.Gio.Objects.InetAddress#g:method:getIsLinkLocal"), [getIsLoopback]("GI.Gio.Objects.InetAddress#g:method:getIsLoopback"), [getIsMcGlobal]("GI.Gio.Objects.InetAddress#g:method:getIsMcGlobal"), [getIsMcLinkLocal]("GI.Gio.Objects.InetAddress#g:method:getIsMcLinkLocal"), [getIsMcNodeLocal]("GI.Gio.Objects.InetAddress#g:method:getIsMcNodeLocal"), [getIsMcOrgLocal]("GI.Gio.Objects.InetAddress#g:method:getIsMcOrgLocal"), [getIsMcSiteLocal]("GI.Gio.Objects.InetAddress#g:method:getIsMcSiteLocal"), [getIsMulticast]("GI.Gio.Objects.InetAddress#g:method:getIsMulticast"), [getIsSiteLocal]("GI.Gio.Objects.InetAddress#g:method:getIsSiteLocal"), [getNativeSize]("GI.Gio.Objects.InetAddress#g:method:getNativeSize"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getScopeId]("GI.Gio.Objects.InetAddress#g:method:getScopeId").
    --
    -- ==== Setters
    -- [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty").

    #if defined(ENABLE_OVERLOADING)
        ResolveInetAddressMethod                ,
    #endif

    -- ** equal #method:equal#

    #if defined(ENABLE_OVERLOADING)
        InetAddressEqualMethodInfo              ,
    #endif
        inetAddressEqual                        ,

    -- ** getFamily #method:getFamily#

    #if defined(ENABLE_OVERLOADING)
        InetAddressGetFamilyMethodInfo          ,
    #endif
        inetAddressGetFamily                    ,

    -- ** getFlowinfo #method:getFlowinfo#

    #if defined(ENABLE_OVERLOADING)
        InetAddressGetFlowinfoMethodInfo        ,
    #endif
        inetAddressGetFlowinfo                  ,

    -- ** getIsAny #method:getIsAny#

    #if defined(ENABLE_OVERLOADING)
        InetAddressGetIsAnyMethodInfo           ,
    #endif
        inetAddressGetIsAny                     ,

    -- ** getIsLinkLocal #method:getIsLinkLocal#

    #if defined(ENABLE_OVERLOADING)
        InetAddressGetIsLinkLocalMethodInfo     ,
    #endif
        inetAddressGetIsLinkLocal               ,

    -- ** getIsLoopback #method:getIsLoopback#

    #if defined(ENABLE_OVERLOADING)
        InetAddressGetIsLoopbackMethodInfo      ,
    #endif
        inetAddressGetIsLoopback                ,

    -- ** getIsMcGlobal #method:getIsMcGlobal#

    #if defined(ENABLE_OVERLOADING)
        InetAddressGetIsMcGlobalMethodInfo      ,
    #endif
        inetAddressGetIsMcGlobal                ,

    -- ** getIsMcLinkLocal #method:getIsMcLinkLocal#

    #if defined(ENABLE_OVERLOADING)
        InetAddressGetIsMcLinkLocalMethodInfo   ,
    #endif
        inetAddressGetIsMcLinkLocal             ,

    -- ** getIsMcNodeLocal #method:getIsMcNodeLocal#

    #if defined(ENABLE_OVERLOADING)
        InetAddressGetIsMcNodeLocalMethodInfo   ,
    #endif
        inetAddressGetIsMcNodeLocal             ,

    -- ** getIsMcOrgLocal #method:getIsMcOrgLocal#

    #if defined(ENABLE_OVERLOADING)
        InetAddressGetIsMcOrgLocalMethodInfo    ,
    #endif
        inetAddressGetIsMcOrgLocal              ,

    -- ** getIsMcSiteLocal #method:getIsMcSiteLocal#

    #if defined(ENABLE_OVERLOADING)
        InetAddressGetIsMcSiteLocalMethodInfo   ,
    #endif
        inetAddressGetIsMcSiteLocal             ,

    -- ** getIsMulticast #method:getIsMulticast#

    #if defined(ENABLE_OVERLOADING)
        InetAddressGetIsMulticastMethodInfo     ,
    #endif
        inetAddressGetIsMulticast               ,

    -- ** getIsSiteLocal #method:getIsSiteLocal#

    #if defined(ENABLE_OVERLOADING)
        InetAddressGetIsSiteLocalMethodInfo     ,
    #endif
        inetAddressGetIsSiteLocal               ,

    -- ** getNativeSize #method:getNativeSize#

    #if defined(ENABLE_OVERLOADING)
        InetAddressGetNativeSizeMethodInfo      ,
    #endif
        inetAddressGetNativeSize                ,

    -- ** getScopeId #method:getScopeId#

    #if defined(ENABLE_OVERLOADING)
        InetAddressGetScopeIdMethodInfo         ,
    #endif
        inetAddressGetScopeId                   ,

    -- ** newAny #method:newAny#

        inetAddressNewAny                       ,

    -- ** newFromBytes #method:newFromBytes#

        inetAddressNewFromBytes                 ,

    -- ** newFromBytesWithIpv6Info #method:newFromBytesWithIpv6Info#

        inetAddressNewFromBytesWithIpv6Info     ,

    -- ** newFromString #method:newFromString#

        inetAddressNewFromString                ,

    -- ** newLoopback #method:newLoopback#

        inetAddressNewLoopback                  ,

    -- ** toString #method:toString#

    #if defined(ENABLE_OVERLOADING)
        InetAddressToStringMethodInfo           ,
    #endif
        inetAddressToString                     ,

     -- * Properties

    -- ** bytes #attr:bytes#
    -- | The raw address data.
    --
    -- /Since: 2.22/

    #if defined(ENABLE_OVERLOADING)
        InetAddressBytesPropertyInfo            ,
    #endif
        constructInetAddressBytes               ,
        getInetAddressBytes                     ,
    #if defined(ENABLE_OVERLOADING)
        inetAddressBytes                        ,
    #endif

    -- ** family #attr:family#
    -- | The address family (IPv4 or IPv6).
    --
    -- /Since: 2.22/

    #if defined(ENABLE_OVERLOADING)
        InetAddressFamilyPropertyInfo           ,
    #endif
        constructInetAddressFamily              ,
        getInetAddressFamily                    ,
    #if defined(ENABLE_OVERLOADING)
        inetAddressFamily                       ,
    #endif

    -- ** flowinfo #attr:flowinfo#
    -- | The flowinfo for an IPv6 address.
    -- See 'GI.Gio.Objects.InetAddress.inetAddressGetFlowinfo'.
    --
    -- /Since: 2.86/

    #if defined(ENABLE_OVERLOADING)
        InetAddressFlowinfoPropertyInfo         ,
    #endif
        constructInetAddressFlowinfo            ,
        getInetAddressFlowinfo                  ,
    #if defined(ENABLE_OVERLOADING)
        inetAddressFlowinfo                     ,
    #endif

    -- ** isAny #attr:isAny#
    -- | Whether this is the \"any\" address for its family.
    -- See 'GI.Gio.Objects.InetAddress.inetAddressGetIsAny'.
    --
    -- /Since: 2.22/

    #if defined(ENABLE_OVERLOADING)
        InetAddressIsAnyPropertyInfo            ,
    #endif
        getInetAddressIsAny                     ,
    #if defined(ENABLE_OVERLOADING)
        inetAddressIsAny                        ,
    #endif

    -- ** isLinkLocal #attr:isLinkLocal#
    -- | Whether this is a link-local address.
    -- See 'GI.Gio.Objects.InetAddress.inetAddressGetIsLinkLocal'.
    --
    -- /Since: 2.22/

    #if defined(ENABLE_OVERLOADING)
        InetAddressIsLinkLocalPropertyInfo      ,
    #endif
        getInetAddressIsLinkLocal               ,
    #if defined(ENABLE_OVERLOADING)
        inetAddressIsLinkLocal                  ,
    #endif

    -- ** isLoopback #attr:isLoopback#
    -- | Whether this is the loopback address for its family.
    -- See 'GI.Gio.Objects.InetAddress.inetAddressGetIsLoopback'.
    --
    -- /Since: 2.22/

    #if defined(ENABLE_OVERLOADING)
        InetAddressIsLoopbackPropertyInfo       ,
    #endif
        getInetAddressIsLoopback                ,
    #if defined(ENABLE_OVERLOADING)
        inetAddressIsLoopback                   ,
    #endif

    -- ** isMcGlobal #attr:isMcGlobal#
    -- | Whether this is a global multicast address.
    -- See 'GI.Gio.Objects.InetAddress.inetAddressGetIsMcGlobal'.
    --
    -- /Since: 2.22/

    #if defined(ENABLE_OVERLOADING)
        InetAddressIsMcGlobalPropertyInfo       ,
    #endif
        getInetAddressIsMcGlobal                ,
    #if defined(ENABLE_OVERLOADING)
        inetAddressIsMcGlobal                   ,
    #endif

    -- ** isMcLinkLocal #attr:isMcLinkLocal#
    -- | Whether this is a link-local multicast address.
    -- See 'GI.Gio.Objects.InetAddress.inetAddressGetIsMcLinkLocal'.
    --
    -- /Since: 2.22/

    #if defined(ENABLE_OVERLOADING)
        InetAddressIsMcLinkLocalPropertyInfo    ,
    #endif
        getInetAddressIsMcLinkLocal             ,
    #if defined(ENABLE_OVERLOADING)
        inetAddressIsMcLinkLocal                ,
    #endif

    -- ** isMcNodeLocal #attr:isMcNodeLocal#
    -- | Whether this is a node-local multicast address.
    -- See 'GI.Gio.Objects.InetAddress.inetAddressGetIsMcNodeLocal'.
    --
    -- /Since: 2.22/

    #if defined(ENABLE_OVERLOADING)
        InetAddressIsMcNodeLocalPropertyInfo    ,
    #endif
        getInetAddressIsMcNodeLocal             ,
    #if defined(ENABLE_OVERLOADING)
        inetAddressIsMcNodeLocal                ,
    #endif

    -- ** isMcOrgLocal #attr:isMcOrgLocal#
    -- | Whether this is an organization-local multicast address.
    -- See 'GI.Gio.Objects.InetAddress.inetAddressGetIsMcOrgLocal'.
    --
    -- /Since: 2.22/

    #if defined(ENABLE_OVERLOADING)
        InetAddressIsMcOrgLocalPropertyInfo     ,
    #endif
        getInetAddressIsMcOrgLocal              ,
    #if defined(ENABLE_OVERLOADING)
        inetAddressIsMcOrgLocal                 ,
    #endif

    -- ** isMcSiteLocal #attr:isMcSiteLocal#
    -- | Whether this is a site-local multicast address.
    -- See 'GI.Gio.Objects.InetAddress.inetAddressGetIsMcSiteLocal'.
    --
    -- /Since: 2.22/

    #if defined(ENABLE_OVERLOADING)
        InetAddressIsMcSiteLocalPropertyInfo    ,
    #endif
        getInetAddressIsMcSiteLocal             ,
    #if defined(ENABLE_OVERLOADING)
        inetAddressIsMcSiteLocal                ,
    #endif

    -- ** isMulticast #attr:isMulticast#
    -- | Whether this is a multicast address.
    -- See 'GI.Gio.Objects.InetAddress.inetAddressGetIsMulticast'.
    --
    -- /Since: 2.22/

    #if defined(ENABLE_OVERLOADING)
        InetAddressIsMulticastPropertyInfo      ,
    #endif
        getInetAddressIsMulticast               ,
    #if defined(ENABLE_OVERLOADING)
        inetAddressIsMulticast                  ,
    #endif

    -- ** isSiteLocal #attr:isSiteLocal#
    -- | Whether this is a site-local address.
    -- See 'GI.Gio.Objects.InetAddress.inetAddressGetIsLoopback'.
    --
    -- /Since: 2.22/

    #if defined(ENABLE_OVERLOADING)
        InetAddressIsSiteLocalPropertyInfo      ,
    #endif
        getInetAddressIsSiteLocal               ,
    #if defined(ENABLE_OVERLOADING)
        inetAddressIsSiteLocal                  ,
    #endif

    -- ** scopeId #attr:scopeId#
    -- | The scope-id for an IPv6 address.
    -- See 'GI.Gio.Objects.InetAddress.inetAddressGetScopeId'.
    --
    -- /Since: 2.86/

    #if defined(ENABLE_OVERLOADING)
        InetAddressScopeIdPropertyInfo          ,
    #endif
        constructInetAddressScopeId             ,
        getInetAddressScopeId                   ,
    #if defined(ENABLE_OVERLOADING)
        inetAddressScopeId                      ,
    #endif

        ) 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)
    import qualified GI.GObject.Objects.Object as GObject.Object
    import {-# SOURCE #-} qualified GI.Gio.Enums as Gio.Enums

    #else
    import qualified GI.GObject.Objects.Object as GObject.Object
    import {-# SOURCE #-} qualified GI.Gio.Enums as Gio.Enums

    #endif

    -- | Memory-managed wrapper type.
    newtype InetAddress = InetAddress (SP.ManagedPtr InetAddress)
        deriving (InetAddress -> InetAddress -> Bool
    (InetAddress -> InetAddress -> Bool)
    -> (InetAddress -> InetAddress -> Bool) -> Eq InetAddress
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: InetAddress -> InetAddress -> Bool
    == :: InetAddress -> InetAddress -> Bool
    $c/= :: InetAddress -> InetAddress -> Bool
    /= :: InetAddress -> InetAddress -> Bool
    Eq)

    instance SP.ManagedPtrNewtype InetAddress where
        toManagedPtr :: InetAddress -> ManagedPtr InetAddress
    toManagedPtr (InetAddress ManagedPtr InetAddress
    p) = ManagedPtr InetAddress
    p

    foreign import ccall "g_inet_address_get_type"
        c_g_inet_address_get_type :: IO B.Types.GType

    instance B.Types.TypedObject InetAddress where
        glibType :: IO GType
    glibType = IO GType
    c_g_inet_address_get_type

    instance B.Types.GObject InetAddress

    -- | Type class for types which can be safely cast to t'InetAddress', for instance with `toInetAddress`.
    class (SP.GObject o, O.IsDescendantOf InetAddress o) => IsInetAddress o
    instance (SP.GObject o, O.IsDescendantOf InetAddress o) => IsInetAddress o

    instance O.HasParentTypes InetAddress
    type instance O.ParentTypes InetAddress = '[GObject.Object.Object]

    -- | Cast to t'InetAddress', for types for which this is known to be safe. For general casts, use 'Data.GI.Base.ManagedPtr.castTo'.
    toInetAddress :: (MIO.MonadIO m, IsInetAddress o) => o -> m InetAddress
    toInetAddress :: forall (m :: * -> *) o.
    (MonadIO m, IsInetAddress o) =>
    o -> m InetAddress
    toInetAddress = IO InetAddress -> m InetAddress
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO InetAddress -> m InetAddress)
    -> (o -> IO InetAddress) -> o -> m InetAddress
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . (ManagedPtr InetAddress -> InetAddress) -> o -> IO InetAddress
    forall o o'.
    (HasCallStack, ManagedPtrNewtype o, TypedObject o,
     ManagedPtrNewtype o', TypedObject o') =>
    (ManagedPtr o' -> o') -> o -> IO o'
    B.ManagedPtr.unsafeCastTo ManagedPtr InetAddress -> InetAddress
    InetAddress

    -- | Convert t'InetAddress' to and from t'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
    instance B.GValue.IsGValue (Maybe InetAddress) where
        gvalueGType_ :: IO GType
    gvalueGType_ = IO GType
    c_g_inet_address_get_type
        gvalueSet_ :: Ptr GValue -> Maybe InetAddress -> IO ()
    gvalueSet_ Ptr GValue
    gv Maybe InetAddress
    P.Nothing = Ptr GValue -> Ptr InetAddress -> IO ()
    forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
    B.GValue.set_object Ptr GValue
    gv (Ptr InetAddress
    forall a. Ptr a
    FP.nullPtr :: FP.Ptr InetAddress)
        gvalueSet_ Ptr GValue
    gv (P.Just InetAddress
    obj) = InetAddress -> (Ptr InetAddress -> IO ()) -> IO ()
    forall a c.
    (HasCallStack, ManagedPtrNewtype a) =>
    a -> (Ptr a -> IO c) -> IO c
    B.ManagedPtr.withManagedPtr InetAddress
    obj (Ptr GValue -> Ptr InetAddress -> IO ()
    forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
    B.GValue.set_object Ptr GValue
    gv)
        gvalueGet_ :: Ptr GValue -> IO (Maybe InetAddress)
    gvalueGet_ Ptr GValue
    gv = do
            ptr <- Ptr GValue -> IO (Ptr InetAddress)
    forall a. GObject a => Ptr GValue -> IO (Ptr a)
    B.GValue.get_object Ptr GValue
    gv :: IO (FP.Ptr InetAddress)
            if ptr /= FP.nullPtr
            then P.Just <$> B.ManagedPtr.newObject InetAddress ptr
            else return P.Nothing

    #if defined(ENABLE_OVERLOADING)
    type family ResolveInetAddressMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
        ResolveInetAddressMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
        ResolveInetAddressMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
        ResolveInetAddressMethod "equal" o = InetAddressEqualMethodInfo
        ResolveInetAddressMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
        ResolveInetAddressMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
        ResolveInetAddressMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
        ResolveInetAddressMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
        ResolveInetAddressMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
        ResolveInetAddressMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
        ResolveInetAddressMethod "ref" o = GObject.Object.ObjectRefMethodInfo
        ResolveInetAddressMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
        ResolveInetAddressMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
        ResolveInetAddressMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
        ResolveInetAddressMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
        ResolveInetAddressMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
        ResolveInetAddressMethod "toString" o = InetAddressToStringMethodInfo
        ResolveInetAddressMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
        ResolveInetAddressMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
        ResolveInetAddressMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
        ResolveInetAddressMethod "getFamily" o = InetAddressGetFamilyMethodInfo
        ResolveInetAddressMethod "getFlowinfo" o = InetAddressGetFlowinfoMethodInfo
        ResolveInetAddressMethod "getIsAny" o = InetAddressGetIsAnyMethodInfo
        ResolveInetAddressMethod "getIsLinkLocal" o = InetAddressGetIsLinkLocalMethodInfo
        ResolveInetAddressMethod "getIsLoopback" o = InetAddressGetIsLoopbackMethodInfo
        ResolveInetAddressMethod "getIsMcGlobal" o = InetAddressGetIsMcGlobalMethodInfo
        ResolveInetAddressMethod "getIsMcLinkLocal" o = InetAddressGetIsMcLinkLocalMethodInfo
        ResolveInetAddressMethod "getIsMcNodeLocal" o = InetAddressGetIsMcNodeLocalMethodInfo
        ResolveInetAddressMethod "getIsMcOrgLocal" o = InetAddressGetIsMcOrgLocalMethodInfo
        ResolveInetAddressMethod "getIsMcSiteLocal" o = InetAddressGetIsMcSiteLocalMethodInfo
        ResolveInetAddressMethod "getIsMulticast" o = InetAddressGetIsMulticastMethodInfo
        ResolveInetAddressMethod "getIsSiteLocal" o = InetAddressGetIsSiteLocalMethodInfo
        ResolveInetAddressMethod "getNativeSize" o = InetAddressGetNativeSizeMethodInfo
        ResolveInetAddressMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
        ResolveInetAddressMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
        ResolveInetAddressMethod "getScopeId" o = InetAddressGetScopeIdMethodInfo
        ResolveInetAddressMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
        ResolveInetAddressMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
        ResolveInetAddressMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
        ResolveInetAddressMethod l o = O.MethodResolutionFailed l o

    instance (info ~ ResolveInetAddressMethod t InetAddress, O.OverloadedMethod info InetAddress p) => OL.IsLabel t (InetAddress -> p) where
    #if MIN_VERSION_base(4,10,0)
        fromLabel = O.overloadedMethod @info
    #else
        fromLabel _ = O.overloadedMethod @info
    #endif

    #if MIN_VERSION_base(4,13,0)
    instance (info ~ ResolveInetAddressMethod t InetAddress, O.OverloadedMethod info InetAddress p, R.HasField t InetAddress p) => R.HasField t InetAddress p where
        getField = O.overloadedMethod @info

    #endif

    instance (info ~ ResolveInetAddressMethod t InetAddress, O.OverloadedMethodInfo info InetAddress) => OL.IsLabel t (O.MethodProxy info InetAddress) where
    #if MIN_VERSION_base(4,10,0)
        fromLabel = O.MethodProxy
    #else
        fromLabel _ = O.MethodProxy
    #endif

    #endif

    -- VVV Prop "bytes"
       -- Type: TBasicType TPtr
       -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
       -- Nullable: (Nothing,Nothing)

    -- | Get the value of the “@bytes@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' inetAddress #bytes
    -- @
    getInetAddressBytes :: (MonadIO m, IsInetAddress o) => o -> m (Ptr ())
    getInetAddressBytes :: forall (m :: * -> *) o.
    (MonadIO m, IsInetAddress o) =>
    o -> m (Ptr ())
    getInetAddressBytes o
    obj = IO (Ptr ()) -> m (Ptr ())
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (Ptr ()) -> m (Ptr ())) -> IO (Ptr ()) -> m (Ptr ())
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO (Ptr ())
    forall a b. GObject a => a -> String -> IO (Ptr b)
    B.Properties.getObjectPropertyPtr o
    obj String
    "bytes"

    -- | Construct a t'GValueConstruct' with valid value for the “@bytes@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructInetAddressBytes :: (IsInetAddress o, MIO.MonadIO m) => Ptr () -> m (GValueConstruct o)
    constructInetAddressBytes :: forall o (m :: * -> *).
    (IsInetAddress o, MonadIO m) =>
    Ptr () -> m (GValueConstruct o)
    constructInetAddressBytes Ptr ()
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Ptr () -> IO (GValueConstruct o)
    forall b o. String -> Ptr b -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyPtr String
    "bytes" Ptr ()
    val

    #if defined(ENABLE_OVERLOADING)
    data InetAddressBytesPropertyInfo
    instance AttrInfo InetAddressBytesPropertyInfo where
        type AttrAllowedOps InetAddressBytesPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
        type AttrBaseTypeConstraint InetAddressBytesPropertyInfo = IsInetAddress
        type AttrSetTypeConstraint InetAddressBytesPropertyInfo = (~) (Ptr ())
        type AttrTransferTypeConstraint InetAddressBytesPropertyInfo = (~) (Ptr ())
        type AttrTransferType InetAddressBytesPropertyInfo = Ptr ()
        type AttrGetType InetAddressBytesPropertyInfo = (Ptr ())
        type AttrLabel InetAddressBytesPropertyInfo = "bytes"
        type AttrOrigin InetAddressBytesPropertyInfo = InetAddress
        attrGet = getInetAddressBytes
        attrSet = undefined
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructInetAddressBytes
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.bytes"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#g:attr:bytes"
            })
    #endif

    -- VVV Prop "family"
       -- Type: TInterface (Name {namespace = "Gio", name = "SocketFamily"})
       -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
       -- Nullable: (Just False,Nothing)

    -- | Get the value of the “@family@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' inetAddress #family
    -- @
    getInetAddressFamily :: (MonadIO m, IsInetAddress o) => o -> m Gio.Enums.SocketFamily
    getInetAddressFamily :: forall (m :: * -> *) o.
    (MonadIO m, IsInetAddress o) =>
    o -> m SocketFamily
    getInetAddressFamily o
    obj = IO SocketFamily -> m SocketFamily
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO SocketFamily -> m SocketFamily)
    -> IO SocketFamily -> m SocketFamily
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO SocketFamily
    forall a b. (GObject a, Enum b, BoxedEnum b) => a -> String -> IO b
    B.Properties.getObjectPropertyEnum o
    obj String
    "family"

    -- | Construct a t'GValueConstruct' with valid value for the “@family@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructInetAddressFamily :: (IsInetAddress o, MIO.MonadIO m) => Gio.Enums.SocketFamily -> m (GValueConstruct o)
    constructInetAddressFamily :: forall o (m :: * -> *).
    (IsInetAddress o, MonadIO m) =>
    SocketFamily -> m (GValueConstruct o)
    constructInetAddressFamily SocketFamily
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> SocketFamily -> IO (GValueConstruct o)
    forall a o.
    (Enum a, BoxedEnum a) =>
    String -> a -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyEnum String
    "family" SocketFamily
    val

    #if defined(ENABLE_OVERLOADING)
    data InetAddressFamilyPropertyInfo
    instance AttrInfo InetAddressFamilyPropertyInfo where
        type AttrAllowedOps InetAddressFamilyPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
        type AttrBaseTypeConstraint InetAddressFamilyPropertyInfo = IsInetAddress
        type AttrSetTypeConstraint InetAddressFamilyPropertyInfo = (~) Gio.Enums.SocketFamily
        type AttrTransferTypeConstraint InetAddressFamilyPropertyInfo = (~) Gio.Enums.SocketFamily
        type AttrTransferType InetAddressFamilyPropertyInfo = Gio.Enums.SocketFamily
        type AttrGetType InetAddressFamilyPropertyInfo = Gio.Enums.SocketFamily
        type AttrLabel InetAddressFamilyPropertyInfo = "family"
        type AttrOrigin InetAddressFamilyPropertyInfo = InetAddress
        attrGet = getInetAddressFamily
        attrSet = undefined
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructInetAddressFamily
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.family"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#g:attr:family"
            })
    #endif

    -- VVV Prop "flowinfo"
       -- Type: TBasicType TUInt
       -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
       -- Nullable: (Nothing,Nothing)

    -- | Get the value of the “@flowinfo@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' inetAddress #flowinfo
    -- @
    getInetAddressFlowinfo :: (MonadIO m, IsInetAddress o) => o -> m Word32
    getInetAddressFlowinfo :: forall (m :: * -> *) o.
    (MonadIO m, IsInetAddress o) =>
    o -> m Word32
    getInetAddressFlowinfo o
    obj = IO Word32 -> m Word32
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Word32
    forall a. GObject a => a -> String -> IO Word32
    B.Properties.getObjectPropertyUInt32 o
    obj String
    "flowinfo"

    -- | Construct a t'GValueConstruct' with valid value for the “@flowinfo@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructInetAddressFlowinfo :: (IsInetAddress o, MIO.MonadIO m) => Word32 -> m (GValueConstruct o)
    constructInetAddressFlowinfo :: forall o (m :: * -> *).
    (IsInetAddress o, MonadIO m) =>
    Word32 -> m (GValueConstruct o)
    constructInetAddressFlowinfo Word32
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Word32 -> IO (GValueConstruct o)
    forall o. String -> Word32 -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyUInt32 String
    "flowinfo" Word32
    val

    #if defined(ENABLE_OVERLOADING)
    data InetAddressFlowinfoPropertyInfo
    instance AttrInfo InetAddressFlowinfoPropertyInfo where
        type AttrAllowedOps InetAddressFlowinfoPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
        type AttrBaseTypeConstraint InetAddressFlowinfoPropertyInfo = IsInetAddress
        type AttrSetTypeConstraint InetAddressFlowinfoPropertyInfo = (~) Word32
        type AttrTransferTypeConstraint InetAddressFlowinfoPropertyInfo = (~) Word32
        type AttrTransferType InetAddressFlowinfoPropertyInfo = Word32
        type AttrGetType InetAddressFlowinfoPropertyInfo = Word32
        type AttrLabel InetAddressFlowinfoPropertyInfo = "flowinfo"
        type AttrOrigin InetAddressFlowinfoPropertyInfo = InetAddress
        attrGet = getInetAddressFlowinfo
        attrSet = undefined
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructInetAddressFlowinfo
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.flowinfo"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#g:attr:flowinfo"
            })
    #endif

    -- VVV Prop "is-any"
       -- Type: TBasicType TBoolean
       -- Flags: [PropertyReadable]
       -- Nullable: (Just False,Nothing)

    -- | Get the value of the “@is-any@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' inetAddress #isAny
    -- @
    getInetAddressIsAny :: (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsAny :: forall (m :: * -> *) o. (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsAny o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "is-any"

    #if defined(ENABLE_OVERLOADING)
    data InetAddressIsAnyPropertyInfo
    instance AttrInfo InetAddressIsAnyPropertyInfo where
        type AttrAllowedOps InetAddressIsAnyPropertyInfo = '[ 'AttrGet]
        type AttrBaseTypeConstraint InetAddressIsAnyPropertyInfo = IsInetAddress
        type AttrSetTypeConstraint InetAddressIsAnyPropertyInfo = (~) ()
        type AttrTransferTypeConstraint InetAddressIsAnyPropertyInfo = (~) ()
        type AttrTransferType InetAddressIsAnyPropertyInfo = ()
        type AttrGetType InetAddressIsAnyPropertyInfo = Bool
        type AttrLabel InetAddressIsAnyPropertyInfo = "is-any"
        type AttrOrigin InetAddressIsAnyPropertyInfo = InetAddress
        attrGet = getInetAddressIsAny
        attrSet = undefined
        attrPut = undefined
        attrTransfer _ = undefined
        attrConstruct = undefined
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.isAny"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#g:attr:isAny"
            })
    #endif

    -- VVV Prop "is-link-local"
       -- Type: TBasicType TBoolean
       -- Flags: [PropertyReadable]
       -- Nullable: (Just False,Nothing)

    -- | Get the value of the “@is-link-local@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' inetAddress #isLinkLocal
    -- @
    getInetAddressIsLinkLocal :: (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsLinkLocal :: forall (m :: * -> *) o. (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsLinkLocal o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "is-link-local"

    #if defined(ENABLE_OVERLOADING)
    data InetAddressIsLinkLocalPropertyInfo
    instance AttrInfo InetAddressIsLinkLocalPropertyInfo where
        type AttrAllowedOps InetAddressIsLinkLocalPropertyInfo = '[ 'AttrGet]
        type AttrBaseTypeConstraint InetAddressIsLinkLocalPropertyInfo = IsInetAddress
        type AttrSetTypeConstraint InetAddressIsLinkLocalPropertyInfo = (~) ()
        type AttrTransferTypeConstraint InetAddressIsLinkLocalPropertyInfo = (~) ()
        type AttrTransferType InetAddressIsLinkLocalPropertyInfo = ()
        type AttrGetType InetAddressIsLinkLocalPropertyInfo = Bool
        type AttrLabel InetAddressIsLinkLocalPropertyInfo = "is-link-local"
        type AttrOrigin InetAddressIsLinkLocalPropertyInfo = InetAddress
        attrGet = getInetAddressIsLinkLocal
        attrSet = undefined
        attrPut = undefined
        attrTransfer _ = undefined
        attrConstruct = undefined
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.isLinkLocal"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#g:attr:isLinkLocal"
            })
    #endif

    -- VVV Prop "is-loopback"
       -- Type: TBasicType TBoolean
       -- Flags: [PropertyReadable]
       -- Nullable: (Just False,Nothing)

    -- | Get the value of the “@is-loopback@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' inetAddress #isLoopback
    -- @
    getInetAddressIsLoopback :: (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsLoopback :: forall (m :: * -> *) o. (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsLoopback o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "is-loopback"

    #if defined(ENABLE_OVERLOADING)
    data InetAddressIsLoopbackPropertyInfo
    instance AttrInfo InetAddressIsLoopbackPropertyInfo where
        type AttrAllowedOps InetAddressIsLoopbackPropertyInfo = '[ 'AttrGet]
        type AttrBaseTypeConstraint InetAddressIsLoopbackPropertyInfo = IsInetAddress
        type AttrSetTypeConstraint InetAddressIsLoopbackPropertyInfo = (~) ()
        type AttrTransferTypeConstraint InetAddressIsLoopbackPropertyInfo = (~) ()
        type AttrTransferType InetAddressIsLoopbackPropertyInfo = ()
        type AttrGetType InetAddressIsLoopbackPropertyInfo = Bool
        type AttrLabel InetAddressIsLoopbackPropertyInfo = "is-loopback"
        type AttrOrigin InetAddressIsLoopbackPropertyInfo = InetAddress
        attrGet = getInetAddressIsLoopback
        attrSet = undefined
        attrPut = undefined
        attrTransfer _ = undefined
        attrConstruct = undefined
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.isLoopback"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#g:attr:isLoopback"
            })
    #endif

    -- VVV Prop "is-mc-global"
       -- Type: TBasicType TBoolean
       -- Flags: [PropertyReadable]
       -- Nullable: (Just False,Nothing)

    -- | Get the value of the “@is-mc-global@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' inetAddress #isMcGlobal
    -- @
    getInetAddressIsMcGlobal :: (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsMcGlobal :: forall (m :: * -> *) o. (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsMcGlobal o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "is-mc-global"

    #if defined(ENABLE_OVERLOADING)
    data InetAddressIsMcGlobalPropertyInfo
    instance AttrInfo InetAddressIsMcGlobalPropertyInfo where
        type AttrAllowedOps InetAddressIsMcGlobalPropertyInfo = '[ 'AttrGet]
        type AttrBaseTypeConstraint InetAddressIsMcGlobalPropertyInfo = IsInetAddress
        type AttrSetTypeConstraint InetAddressIsMcGlobalPropertyInfo = (~) ()
        type AttrTransferTypeConstraint InetAddressIsMcGlobalPropertyInfo = (~) ()
        type AttrTransferType InetAddressIsMcGlobalPropertyInfo = ()
        type AttrGetType InetAddressIsMcGlobalPropertyInfo = Bool
        type AttrLabel InetAddressIsMcGlobalPropertyInfo = "is-mc-global"
        type AttrOrigin InetAddressIsMcGlobalPropertyInfo = InetAddress
        attrGet = getInetAddressIsMcGlobal
        attrSet = undefined
        attrPut = undefined
        attrTransfer _ = undefined
        attrConstruct = undefined
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.isMcGlobal"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#g:attr:isMcGlobal"
            })
    #endif

    -- VVV Prop "is-mc-link-local"
       -- Type: TBasicType TBoolean
       -- Flags: [PropertyReadable]
       -- Nullable: (Just False,Nothing)

    -- | Get the value of the “@is-mc-link-local@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' inetAddress #isMcLinkLocal
    -- @
    getInetAddressIsMcLinkLocal :: (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsMcLinkLocal :: forall (m :: * -> *) o. (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsMcLinkLocal o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "is-mc-link-local"

    #if defined(ENABLE_OVERLOADING)
    data InetAddressIsMcLinkLocalPropertyInfo
    instance AttrInfo InetAddressIsMcLinkLocalPropertyInfo where
        type AttrAllowedOps InetAddressIsMcLinkLocalPropertyInfo = '[ 'AttrGet]
        type AttrBaseTypeConstraint InetAddressIsMcLinkLocalPropertyInfo = IsInetAddress
        type AttrSetTypeConstraint InetAddressIsMcLinkLocalPropertyInfo = (~) ()
        type AttrTransferTypeConstraint InetAddressIsMcLinkLocalPropertyInfo = (~) ()
        type AttrTransferType InetAddressIsMcLinkLocalPropertyInfo = ()
        type AttrGetType InetAddressIsMcLinkLocalPropertyInfo = Bool
        type AttrLabel InetAddressIsMcLinkLocalPropertyInfo = "is-mc-link-local"
        type AttrOrigin InetAddressIsMcLinkLocalPropertyInfo = InetAddress
        attrGet = getInetAddressIsMcLinkLocal
        attrSet = undefined
        attrPut = undefined
        attrTransfer _ = undefined
        attrConstruct = undefined
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.isMcLinkLocal"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#g:attr:isMcLinkLocal"
            })
    #endif

    -- VVV Prop "is-mc-node-local"
       -- Type: TBasicType TBoolean
       -- Flags: [PropertyReadable]
       -- Nullable: (Just False,Nothing)

    -- | Get the value of the “@is-mc-node-local@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' inetAddress #isMcNodeLocal
    -- @
    getInetAddressIsMcNodeLocal :: (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsMcNodeLocal :: forall (m :: * -> *) o. (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsMcNodeLocal o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "is-mc-node-local"

    #if defined(ENABLE_OVERLOADING)
    data InetAddressIsMcNodeLocalPropertyInfo
    instance AttrInfo InetAddressIsMcNodeLocalPropertyInfo where
        type AttrAllowedOps InetAddressIsMcNodeLocalPropertyInfo = '[ 'AttrGet]
        type AttrBaseTypeConstraint InetAddressIsMcNodeLocalPropertyInfo = IsInetAddress
        type AttrSetTypeConstraint InetAddressIsMcNodeLocalPropertyInfo = (~) ()
        type AttrTransferTypeConstraint InetAddressIsMcNodeLocalPropertyInfo = (~) ()
        type AttrTransferType InetAddressIsMcNodeLocalPropertyInfo = ()
        type AttrGetType InetAddressIsMcNodeLocalPropertyInfo = Bool
        type AttrLabel InetAddressIsMcNodeLocalPropertyInfo = "is-mc-node-local"
        type AttrOrigin InetAddressIsMcNodeLocalPropertyInfo = InetAddress
        attrGet = getInetAddressIsMcNodeLocal
        attrSet = undefined
        attrPut = undefined
        attrTransfer _ = undefined
        attrConstruct = undefined
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.isMcNodeLocal"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#g:attr:isMcNodeLocal"
            })
    #endif

    -- VVV Prop "is-mc-org-local"
       -- Type: TBasicType TBoolean
       -- Flags: [PropertyReadable]
       -- Nullable: (Just False,Nothing)

    -- | Get the value of the “@is-mc-org-local@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' inetAddress #isMcOrgLocal
    -- @
    getInetAddressIsMcOrgLocal :: (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsMcOrgLocal :: forall (m :: * -> *) o. (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsMcOrgLocal o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "is-mc-org-local"

    #if defined(ENABLE_OVERLOADING)
    data InetAddressIsMcOrgLocalPropertyInfo
    instance AttrInfo InetAddressIsMcOrgLocalPropertyInfo where
        type AttrAllowedOps InetAddressIsMcOrgLocalPropertyInfo = '[ 'AttrGet]
        type AttrBaseTypeConstraint InetAddressIsMcOrgLocalPropertyInfo = IsInetAddress
        type AttrSetTypeConstraint InetAddressIsMcOrgLocalPropertyInfo = (~) ()
        type AttrTransferTypeConstraint InetAddressIsMcOrgLocalPropertyInfo = (~) ()
        type AttrTransferType InetAddressIsMcOrgLocalPropertyInfo = ()
        type AttrGetType InetAddressIsMcOrgLocalPropertyInfo = Bool
        type AttrLabel InetAddressIsMcOrgLocalPropertyInfo = "is-mc-org-local"
        type AttrOrigin InetAddressIsMcOrgLocalPropertyInfo = InetAddress
        attrGet = getInetAddressIsMcOrgLocal
        attrSet = undefined
        attrPut = undefined
        attrTransfer _ = undefined
        attrConstruct = undefined
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.isMcOrgLocal"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#g:attr:isMcOrgLocal"
            })
    #endif

    -- VVV Prop "is-mc-site-local"
       -- Type: TBasicType TBoolean
       -- Flags: [PropertyReadable]
       -- Nullable: (Just False,Nothing)

    -- | Get the value of the “@is-mc-site-local@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' inetAddress #isMcSiteLocal
    -- @
    getInetAddressIsMcSiteLocal :: (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsMcSiteLocal :: forall (m :: * -> *) o. (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsMcSiteLocal o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "is-mc-site-local"

    #if defined(ENABLE_OVERLOADING)
    data InetAddressIsMcSiteLocalPropertyInfo
    instance AttrInfo InetAddressIsMcSiteLocalPropertyInfo where
        type AttrAllowedOps InetAddressIsMcSiteLocalPropertyInfo = '[ 'AttrGet]
        type AttrBaseTypeConstraint InetAddressIsMcSiteLocalPropertyInfo = IsInetAddress
        type AttrSetTypeConstraint InetAddressIsMcSiteLocalPropertyInfo = (~) ()
        type AttrTransferTypeConstraint InetAddressIsMcSiteLocalPropertyInfo = (~) ()
        type AttrTransferType InetAddressIsMcSiteLocalPropertyInfo = ()
        type AttrGetType InetAddressIsMcSiteLocalPropertyInfo = Bool
        type AttrLabel InetAddressIsMcSiteLocalPropertyInfo = "is-mc-site-local"
        type AttrOrigin InetAddressIsMcSiteLocalPropertyInfo = InetAddress
        attrGet = getInetAddressIsMcSiteLocal
        attrSet = undefined
        attrPut = undefined
        attrTransfer _ = undefined
        attrConstruct = undefined
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.isMcSiteLocal"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#g:attr:isMcSiteLocal"
            })
    #endif

    -- VVV Prop "is-multicast"
       -- Type: TBasicType TBoolean
       -- Flags: [PropertyReadable]
       -- Nullable: (Just False,Nothing)

    -- | Get the value of the “@is-multicast@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' inetAddress #isMulticast
    -- @
    getInetAddressIsMulticast :: (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsMulticast :: forall (m :: * -> *) o. (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsMulticast o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "is-multicast"

    #if defined(ENABLE_OVERLOADING)
    data InetAddressIsMulticastPropertyInfo
    instance AttrInfo InetAddressIsMulticastPropertyInfo where
        type AttrAllowedOps InetAddressIsMulticastPropertyInfo = '[ 'AttrGet]
        type AttrBaseTypeConstraint InetAddressIsMulticastPropertyInfo = IsInetAddress
        type AttrSetTypeConstraint InetAddressIsMulticastPropertyInfo = (~) ()
        type AttrTransferTypeConstraint InetAddressIsMulticastPropertyInfo = (~) ()
        type AttrTransferType InetAddressIsMulticastPropertyInfo = ()
        type AttrGetType InetAddressIsMulticastPropertyInfo = Bool
        type AttrLabel InetAddressIsMulticastPropertyInfo = "is-multicast"
        type AttrOrigin InetAddressIsMulticastPropertyInfo = InetAddress
        attrGet = getInetAddressIsMulticast
        attrSet = undefined
        attrPut = undefined
        attrTransfer _ = undefined
        attrConstruct = undefined
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.isMulticast"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#g:attr:isMulticast"
            })
    #endif

    -- VVV Prop "is-site-local"
       -- Type: TBasicType TBoolean
       -- Flags: [PropertyReadable]
       -- Nullable: (Just False,Nothing)

    -- | Get the value of the “@is-site-local@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' inetAddress #isSiteLocal
    -- @
    getInetAddressIsSiteLocal :: (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsSiteLocal :: forall (m :: * -> *) o. (MonadIO m, IsInetAddress o) => o -> m Bool
    getInetAddressIsSiteLocal o
    obj = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Bool
    forall a. GObject a => a -> String -> IO Bool
    B.Properties.getObjectPropertyBool o
    obj String
    "is-site-local"

    #if defined(ENABLE_OVERLOADING)
    data InetAddressIsSiteLocalPropertyInfo
    instance AttrInfo InetAddressIsSiteLocalPropertyInfo where
        type AttrAllowedOps InetAddressIsSiteLocalPropertyInfo = '[ 'AttrGet]
        type AttrBaseTypeConstraint InetAddressIsSiteLocalPropertyInfo = IsInetAddress
        type AttrSetTypeConstraint InetAddressIsSiteLocalPropertyInfo = (~) ()
        type AttrTransferTypeConstraint InetAddressIsSiteLocalPropertyInfo = (~) ()
        type AttrTransferType InetAddressIsSiteLocalPropertyInfo = ()
        type AttrGetType InetAddressIsSiteLocalPropertyInfo = Bool
        type AttrLabel InetAddressIsSiteLocalPropertyInfo = "is-site-local"
        type AttrOrigin InetAddressIsSiteLocalPropertyInfo = InetAddress
        attrGet = getInetAddressIsSiteLocal
        attrSet = undefined
        attrPut = undefined
        attrTransfer _ = undefined
        attrConstruct = undefined
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.isSiteLocal"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#g:attr:isSiteLocal"
            })
    #endif

    -- VVV Prop "scope-id"
       -- Type: TBasicType TUInt
       -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
       -- Nullable: (Nothing,Nothing)

    -- | Get the value of the “@scope-id@” property.
    -- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
    --
    -- @
    -- 'Data.GI.Base.Attributes.get' inetAddress #scopeId
    -- @
    getInetAddressScopeId :: (MonadIO m, IsInetAddress o) => o -> m Word32
    getInetAddressScopeId :: forall (m :: * -> *) o.
    (MonadIO m, IsInetAddress o) =>
    o -> m Word32
    getInetAddressScopeId o
    obj = IO Word32 -> m Word32
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
    forall a b. (a -> b) -> a -> b
    $ o -> String -> IO Word32
    forall a. GObject a => a -> String -> IO Word32
    B.Properties.getObjectPropertyUInt32 o
    obj String
    "scope-id"

    -- | Construct a t'GValueConstruct' with valid value for the “@scope-id@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
    constructInetAddressScopeId :: (IsInetAddress o, MIO.MonadIO m) => Word32 -> m (GValueConstruct o)
    constructInetAddressScopeId :: forall o (m :: * -> *).
    (IsInetAddress o, MonadIO m) =>
    Word32 -> m (GValueConstruct o)
    constructInetAddressScopeId Word32
    val = IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
    -> IO (GValueConstruct o) -> m (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ do
        IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a. IO a -> IO a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
    -> IO (GValueConstruct o) -> IO (GValueConstruct o)
    forall a b. (a -> b) -> a -> b
    $ String -> Word32 -> IO (GValueConstruct o)
    forall o. String -> Word32 -> IO (GValueConstruct o)
    B.Properties.constructObjectPropertyUInt32 String
    "scope-id" Word32
    val

    #if defined(ENABLE_OVERLOADING)
    data InetAddressScopeIdPropertyInfo
    instance AttrInfo InetAddressScopeIdPropertyInfo where
        type AttrAllowedOps InetAddressScopeIdPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
        type AttrBaseTypeConstraint InetAddressScopeIdPropertyInfo = IsInetAddress
        type AttrSetTypeConstraint InetAddressScopeIdPropertyInfo = (~) Word32
        type AttrTransferTypeConstraint InetAddressScopeIdPropertyInfo = (~) Word32
        type AttrTransferType InetAddressScopeIdPropertyInfo = Word32
        type AttrGetType InetAddressScopeIdPropertyInfo = Word32
        type AttrLabel InetAddressScopeIdPropertyInfo = "scope-id"
        type AttrOrigin InetAddressScopeIdPropertyInfo = InetAddress
        attrGet = getInetAddressScopeId
        attrSet = undefined
        attrPut = undefined
        attrTransfer _ v = do
            return v
        attrConstruct = constructInetAddressScopeId
        attrClear = undefined
        dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.scopeId"
            , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#g:attr:scopeId"
            })
    #endif

    #if defined(ENABLE_OVERLOADING)
    instance O.HasAttributeList InetAddress
    type instance O.AttributeList InetAddress = InetAddressAttributeList
    type InetAddressAttributeList = ('[ '("bytes", InetAddressBytesPropertyInfo), '("family", InetAddressFamilyPropertyInfo), '("flowinfo", InetAddressFlowinfoPropertyInfo), '("isAny", InetAddressIsAnyPropertyInfo), '("isLinkLocal", InetAddressIsLinkLocalPropertyInfo), '("isLoopback", InetAddressIsLoopbackPropertyInfo), '("isMcGlobal", InetAddressIsMcGlobalPropertyInfo), '("isMcLinkLocal", InetAddressIsMcLinkLocalPropertyInfo), '("isMcNodeLocal", InetAddressIsMcNodeLocalPropertyInfo), '("isMcOrgLocal", InetAddressIsMcOrgLocalPropertyInfo), '("isMcSiteLocal", InetAddressIsMcSiteLocalPropertyInfo), '("isMulticast", InetAddressIsMulticastPropertyInfo), '("isSiteLocal", InetAddressIsSiteLocalPropertyInfo), '("scopeId", InetAddressScopeIdPropertyInfo)] :: [(Symbol, DK.Type)])
    #endif

    #if defined(ENABLE_OVERLOADING)
    inetAddressBytes :: AttrLabelProxy "bytes"
    inetAddressBytes = AttrLabelProxy

    inetAddressFamily :: AttrLabelProxy "family"
    inetAddressFamily = AttrLabelProxy

    inetAddressFlowinfo :: AttrLabelProxy "flowinfo"
    inetAddressFlowinfo = AttrLabelProxy

    inetAddressIsAny :: AttrLabelProxy "isAny"
    inetAddressIsAny = AttrLabelProxy

    inetAddressIsLinkLocal :: AttrLabelProxy "isLinkLocal"
    inetAddressIsLinkLocal = AttrLabelProxy

    inetAddressIsLoopback :: AttrLabelProxy "isLoopback"
    inetAddressIsLoopback = AttrLabelProxy

    inetAddressIsMcGlobal :: AttrLabelProxy "isMcGlobal"
    inetAddressIsMcGlobal = AttrLabelProxy

    inetAddressIsMcLinkLocal :: AttrLabelProxy "isMcLinkLocal"
    inetAddressIsMcLinkLocal = AttrLabelProxy

    inetAddressIsMcNodeLocal :: AttrLabelProxy "isMcNodeLocal"
    inetAddressIsMcNodeLocal = AttrLabelProxy

    inetAddressIsMcOrgLocal :: AttrLabelProxy "isMcOrgLocal"
    inetAddressIsMcOrgLocal = AttrLabelProxy

    inetAddressIsMcSiteLocal :: AttrLabelProxy "isMcSiteLocal"
    inetAddressIsMcSiteLocal = AttrLabelProxy

    inetAddressIsMulticast :: AttrLabelProxy "isMulticast"
    inetAddressIsMulticast = AttrLabelProxy

    inetAddressIsSiteLocal :: AttrLabelProxy "isSiteLocal"
    inetAddressIsSiteLocal = AttrLabelProxy

    inetAddressScopeId :: AttrLabelProxy "scopeId"
    inetAddressScopeId = AttrLabelProxy

    #endif

    #if defined(ENABLE_OVERLOADING)
    type instance O.SignalList InetAddress = InetAddressSignalList
    type InetAddressSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])

    #endif

    -- method InetAddress::new_any
    -- method type : Constructor
    -- Args: [ Arg
    --           { argCName = "family"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "SocketFamily" }
    --           , argCType = Just "GSocketFamily"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "the address family" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TInterface Name { namespace = "Gio" , name = "InetAddress" })
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_new_any" g_inet_address_new_any ::
        CUInt ->                                -- family : TInterface (Name {namespace = "Gio", name = "SocketFamily"})
        IO (Ptr InetAddress)

    -- | Creates a t'GI.Gio.Objects.InetAddress.InetAddress' for the \"any\" address (unassigned\/\"don\'t
    -- care\") for /@family@/.
    --
    -- /Since: 2.22/
    inetAddressNewAny ::
        (B.CallStack.HasCallStack, MonadIO m) =>
        Gio.Enums.SocketFamily
        -- ^ /@family@/: the address family
        -> m InetAddress
        -- ^ __Returns:__ a new t'GI.Gio.Objects.InetAddress.InetAddress' corresponding to the \"any\" address
        -- for /@family@/.
        --     Free the returned object with 'GI.GObject.Objects.Object.objectUnref'.
    inetAddressNewAny :: forall (m :: * -> *).
    (HasCallStack, MonadIO m) =>
    SocketFamily -> m InetAddress
    inetAddressNewAny SocketFamily
    family = IO InetAddress -> m InetAddress
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO InetAddress -> m InetAddress)
    -> IO InetAddress -> m InetAddress
    forall a b. (a -> b) -> a -> b
    $ do
        let family' :: CUInt
    family' = (Int -> CUInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CUInt) -> (SocketFamily -> Int) -> SocketFamily -> CUInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . SocketFamily -> Int
    forall a. Enum a => a -> Int
    fromEnum) SocketFamily
    family
        result <- CUInt -> IO (Ptr InetAddress)
    g_inet_address_new_any CUInt
    family'
        checkUnexpectedReturnNULL "inetAddressNewAny" result
        result' <- (wrapObject InetAddress) result
        return result'

    #if defined(ENABLE_OVERLOADING)
    #endif

    -- method InetAddress::new_from_bytes
    -- method type : Constructor
    -- Args: [ Arg
    --           { argCName = "bytes"
    --           , argType = TCArray False (-1) (-1) (TBasicType TUInt8)
    --           , argCType = Just "const guint8*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "raw address data" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       , Arg
    --           { argCName = "family"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "SocketFamily" }
    --           , argCType = Just "GSocketFamily"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "the address family of @bytes"
    --                 , sinceVersion = Nothing
    --                 }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TInterface Name { namespace = "Gio" , name = "InetAddress" })
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_new_from_bytes" g_inet_address_new_from_bytes ::
        Ptr Word8 ->                            -- bytes : TCArray False (-1) (-1) (TBasicType TUInt8)
        CUInt ->                                -- family : TInterface (Name {namespace = "Gio", name = "SocketFamily"})
        IO (Ptr InetAddress)

    -- | Creates a new t'GI.Gio.Objects.InetAddress.InetAddress' from the given /@family@/ and /@bytes@/.
    -- /@bytes@/ should be 4 bytes for 'GI.Gio.Enums.SocketFamilyIpv4' and 16 bytes for
    -- 'GI.Gio.Enums.SocketFamilyIpv6'.
    --
    -- /Since: 2.22/
    inetAddressNewFromBytes ::
        (B.CallStack.HasCallStack, MonadIO m) =>
        Ptr Word8
        -- ^ /@bytes@/: raw address data
        -> Gio.Enums.SocketFamily
        -- ^ /@family@/: the address family of /@bytes@/
        -> m InetAddress
        -- ^ __Returns:__ a new t'GI.Gio.Objects.InetAddress.InetAddress' corresponding to /@family@/ and /@bytes@/.
        --     Free the returned object with 'GI.GObject.Objects.Object.objectUnref'.
    inetAddressNewFromBytes :: forall (m :: * -> *).
    (HasCallStack, MonadIO m) =>
    Ptr Word8 -> SocketFamily -> m InetAddress
    inetAddressNewFromBytes Ptr Word8
    bytes SocketFamily
    family = IO InetAddress -> m InetAddress
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO InetAddress -> m InetAddress)
    -> IO InetAddress -> m InetAddress
    forall a b. (a -> b) -> a -> b
    $ do
        let family' :: CUInt
    family' = (Int -> CUInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CUInt) -> (SocketFamily -> Int) -> SocketFamily -> CUInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . SocketFamily -> Int
    forall a. Enum a => a -> Int
    fromEnum) SocketFamily
    family
        result <- Ptr Word8 -> CUInt -> IO (Ptr InetAddress)
    g_inet_address_new_from_bytes Ptr Word8
    bytes CUInt
    family'
        checkUnexpectedReturnNULL "inetAddressNewFromBytes" result
        result' <- (wrapObject InetAddress) result
        return result'

    #if defined(ENABLE_OVERLOADING)
    #endif

    -- method InetAddress::new_from_bytes_with_ipv6_info
    -- method type : Constructor
    -- Args: [ Arg
    --           { argCName = "bytes"
    --           , argType = TCArray False (-1) (-1) (TBasicType TUInt8)
    --           , argCType = Just "const guint8*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "raw address data" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       , Arg
    --           { argCName = "family"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "SocketFamily" }
    --           , argCType = Just "GSocketFamily"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "the address family of @bytes"
    --                 , sinceVersion = Nothing
    --                 }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       , Arg
    --           { argCName = "flowinfo"
    --           , argType = TBasicType TUInt32
    --           , argCType = Just "guint32"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       , Arg
    --           { argCName = "scope_id"
    --           , argType = TBasicType TUInt32
    --           , argCType = Just "guint32"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "the scope-id of the address"
    --                 , sinceVersion = Nothing
    --                 }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TInterface Name { namespace = "Gio" , name = "InetAddress" })
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_new_from_bytes_with_ipv6_info" g_inet_address_new_from_bytes_with_ipv6_info ::
        Ptr Word8 ->                            -- bytes : TCArray False (-1) (-1) (TBasicType TUInt8)
        CUInt ->                                -- family : TInterface (Name {namespace = "Gio", name = "SocketFamily"})
        Word32 ->                               -- flowinfo : TBasicType TUInt32
        Word32 ->                               -- scope_id : TBasicType TUInt32
        IO (Ptr InetAddress)

    -- | Creates a new t'GI.Gio.Objects.InetAddress.InetAddress' from the given /@family@/, /@bytes@/
    -- and /@scopeId@/.
    --
    -- /@bytes@/ must be 4 bytes for 'GI.Gio.Enums.SocketFamilyIpv4' and 16 bytes for
    -- 'GI.Gio.Enums.SocketFamilyIpv6'.
    --
    -- /Since: 2.86/
    inetAddressNewFromBytesWithIpv6Info ::
        (B.CallStack.HasCallStack, MonadIO m) =>
        Ptr Word8
        -- ^ /@bytes@/: raw address data
        -> Gio.Enums.SocketFamily
        -- ^ /@family@/: the address family of /@bytes@/
        -> Word32
        -> Word32
        -- ^ /@scopeId@/: the scope-id of the address
        -> m InetAddress
        -- ^ __Returns:__ a new internet address corresponding to
        --   /@family@/, /@bytes@/ and /@scopeId@/
    inetAddressNewFromBytesWithIpv6Info :: forall (m :: * -> *).
    (HasCallStack, MonadIO m) =>
    Ptr Word8 -> SocketFamily -> Word32 -> Word32 -> m InetAddress
    inetAddressNewFromBytesWithIpv6Info Ptr Word8
    bytes SocketFamily
    family Word32
    flowinfo Word32
    scopeId = IO InetAddress -> m InetAddress
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO InetAddress -> m InetAddress)
    -> IO InetAddress -> m InetAddress
    forall a b. (a -> b) -> a -> b
    $ do
        let family' :: CUInt
    family' = (Int -> CUInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CUInt) -> (SocketFamily -> Int) -> SocketFamily -> CUInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . SocketFamily -> Int
    forall a. Enum a => a -> Int
    fromEnum) SocketFamily
    family
        result <- Ptr Word8 -> CUInt -> Word32 -> Word32 -> IO (Ptr InetAddress)
    g_inet_address_new_from_bytes_with_ipv6_info Ptr Word8
    bytes CUInt
    family' Word32
    flowinfo Word32
    scopeId
        checkUnexpectedReturnNULL "inetAddressNewFromBytesWithIpv6Info" result
        result' <- (wrapObject InetAddress) result
        return result'

    #if defined(ENABLE_OVERLOADING)
    #endif

    -- method InetAddress::new_from_string
    -- method type : Constructor
    -- Args: [ Arg
    --           { argCName = "string"
    --           , argType = TBasicType TUTF8
    --           , argCType = Just "const gchar*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a string representation of an IP address"
    --                 , sinceVersion = Nothing
    --                 }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TInterface Name { namespace = "Gio" , name = "InetAddress" })
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_new_from_string" g_inet_address_new_from_string ::
        CString ->                              -- string : TBasicType TUTF8
        IO (Ptr InetAddress)

    -- | Parses /@string@/ as an IP address and creates a new t'GI.Gio.Objects.InetAddress.InetAddress'.
    --
    -- If /@address@/ is an IPv6 address, it can also contain a scope ID
    -- (separated from the address by a @%@). Note that currently this
    -- behavior is platform specific. This may change in a future release.
    --
    -- /Since: 2.22/
    inetAddressNewFromString ::
        (B.CallStack.HasCallStack, MonadIO m) =>
        T.Text
        -- ^ /@string@/: a string representation of an IP address
        -> m (Maybe InetAddress)
        -- ^ __Returns:__ a new t'GI.Gio.Objects.InetAddress.InetAddress' corresponding
        -- to /@string@/, or 'P.Nothing' if /@string@/ could not be parsed.
        --     Free the returned object with 'GI.GObject.Objects.Object.objectUnref'.
    inetAddressNewFromString :: forall (m :: * -> *).
    (HasCallStack, MonadIO m) =>
    Text -> m (Maybe InetAddress)
    inetAddressNewFromString Text
    string = IO (Maybe InetAddress) -> m (Maybe InetAddress)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO (Maybe InetAddress) -> m (Maybe InetAddress))
    -> IO (Maybe InetAddress) -> m (Maybe InetAddress)
    forall a b. (a -> b) -> a -> b
    $ do
        string' <- Text -> IO CString
    textToCString Text
    string
        result <- g_inet_address_new_from_string string'
        maybeResult <- convertIfNonNull result $ \Ptr InetAddress
    result' -> do
            result'' <- ((ManagedPtr InetAddress -> InetAddress)
    -> Ptr InetAddress -> IO InetAddress
    forall a b.
    (HasCallStack, GObject a, GObject b) =>
    (ManagedPtr a -> a) -> Ptr b -> IO a
    wrapObject ManagedPtr InetAddress -> InetAddress
    InetAddress) Ptr InetAddress
    result'
            return result''
        freeMem string'
        return maybeResult

    #if defined(ENABLE_OVERLOADING)
    #endif

    -- method InetAddress::new_loopback
    -- method type : Constructor
    -- Args: [ Arg
    --           { argCName = "family"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "SocketFamily" }
    --           , argCType = Just "GSocketFamily"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "the address family" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TInterface Name { namespace = "Gio" , name = "InetAddress" })
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_new_loopback" g_inet_address_new_loopback ::
        CUInt ->                                -- family : TInterface (Name {namespace = "Gio", name = "SocketFamily"})
        IO (Ptr InetAddress)

    -- | Creates a t'GI.Gio.Objects.InetAddress.InetAddress' for the loopback address for /@family@/.
    --
    -- /Since: 2.22/
    inetAddressNewLoopback ::
        (B.CallStack.HasCallStack, MonadIO m) =>
        Gio.Enums.SocketFamily
        -- ^ /@family@/: the address family
        -> m InetAddress
        -- ^ __Returns:__ a new t'GI.Gio.Objects.InetAddress.InetAddress' corresponding to the loopback address
        -- for /@family@/.
        --     Free the returned object with 'GI.GObject.Objects.Object.objectUnref'.
    inetAddressNewLoopback :: forall (m :: * -> *).
    (HasCallStack, MonadIO m) =>
    SocketFamily -> m InetAddress
    inetAddressNewLoopback SocketFamily
    family = IO InetAddress -> m InetAddress
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO InetAddress -> m InetAddress)
    -> IO InetAddress -> m InetAddress
    forall a b. (a -> b) -> a -> b
    $ do
        let family' :: CUInt
    family' = (Int -> CUInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CUInt) -> (SocketFamily -> Int) -> SocketFamily -> CUInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . SocketFamily -> Int
    forall a. Enum a => a -> Int
    fromEnum) SocketFamily
    family
        result <- CUInt -> IO (Ptr InetAddress)
    g_inet_address_new_loopback CUInt
    family'
        checkUnexpectedReturnNULL "inetAddressNewLoopback" result
        result' <- (wrapObject InetAddress) result
        return result'

    #if defined(ENABLE_OVERLOADING)
    #endif

    -- method InetAddress::equal
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "address"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "InetAddress" }
    --           , argCType = Just "GInetAddress*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "A #GInetAddress." , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       , Arg
    --           { argCName = "other_address"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "InetAddress" }
    --           , argCType = Just "GInetAddress*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "Another #GInetAddress."
    --                 , sinceVersion = Nothing
    --                 }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TBasicType TBoolean)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_equal" g_inet_address_equal ::
        Ptr InetAddress ->                      -- address : TInterface (Name {namespace = "Gio", name = "InetAddress"})
        Ptr InetAddress ->                      -- other_address : TInterface (Name {namespace = "Gio", name = "InetAddress"})
        IO CInt

    -- | Checks if two t'GI.Gio.Objects.InetAddress.InetAddress' instances are equal, e.g. the same address.
    --
    -- /Since: 2.30/
    inetAddressEqual ::
        (B.CallStack.HasCallStack, MonadIO m, IsInetAddress a, IsInetAddress b) =>
        a
        -- ^ /@address@/: A t'GI.Gio.Objects.InetAddress.InetAddress'.
        -> b
        -- ^ /@otherAddress@/: Another t'GI.Gio.Objects.InetAddress.InetAddress'.
        -> m Bool
        -- ^ __Returns:__ 'P.True' if /@address@/ and /@otherAddress@/ are equal, 'P.False' otherwise.
    inetAddressEqual :: forall (m :: * -> *) a b.
    (HasCallStack, MonadIO m, IsInetAddress a, IsInetAddress b) =>
    a -> b -> m Bool
    inetAddressEqual a
    address b
    otherAddress = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ do
        address' <- a -> IO (Ptr InetAddress)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    address
        otherAddress' <- unsafeManagedPtrCastPtr otherAddress
        result <- g_inet_address_equal address' otherAddress'
        let result' = (CInt -> CInt -> Bool
    forall a. Eq a => a -> a -> Bool
    /= CInt
    0) CInt
    result
        touchManagedPtr address
        touchManagedPtr otherAddress
        return result'

    #if defined(ENABLE_OVERLOADING)
    data InetAddressEqualMethodInfo
    instance (signature ~ (b -> m Bool), MonadIO m, IsInetAddress a, IsInetAddress b) => O.OverloadedMethod InetAddressEqualMethodInfo a signature where
        overloadedMethod = inetAddressEqual

    instance O.OverloadedMethodInfo InetAddressEqualMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.inetAddressEqual",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#v:inetAddressEqual"
            })

    #endif

    -- method InetAddress::get_family
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "address"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "InetAddress" }
    --           , argCType = Just "GInetAddress*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a #GInetAddress" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just
    --               (TInterface Name { namespace = "Gio" , name = "SocketFamily" })
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_get_family" g_inet_address_get_family ::
        Ptr InetAddress ->                      -- address : TInterface (Name {namespace = "Gio", name = "InetAddress"})
        IO CUInt

    -- | Gets /@address@/\'s family
    --
    -- /Since: 2.22/
    inetAddressGetFamily ::
        (B.CallStack.HasCallStack, MonadIO m, IsInetAddress a) =>
        a
        -- ^ /@address@/: a t'GI.Gio.Objects.InetAddress.InetAddress'
        -> m Gio.Enums.SocketFamily
        -- ^ __Returns:__ /@address@/\'s family
    inetAddressGetFamily :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsInetAddress a) =>
    a -> m SocketFamily
    inetAddressGetFamily a
    address = IO SocketFamily -> m SocketFamily
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO SocketFamily -> m SocketFamily)
    -> IO SocketFamily -> m SocketFamily
    forall a b. (a -> b) -> a -> b
    $ do
        address' <- a -> IO (Ptr InetAddress)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    address
        result <- g_inet_address_get_family address'
        let result' = (Int -> SocketFamily
    forall a. Enum a => Int -> a
    toEnum (Int -> SocketFamily) -> (CUInt -> Int) -> CUInt -> SocketFamily
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . CUInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral) CUInt
    result
        touchManagedPtr address
        return result'

    #if defined(ENABLE_OVERLOADING)
    data InetAddressGetFamilyMethodInfo
    instance (signature ~ (m Gio.Enums.SocketFamily), MonadIO m, IsInetAddress a) => O.OverloadedMethod InetAddressGetFamilyMethodInfo a signature where
        overloadedMethod = inetAddressGetFamily

    instance O.OverloadedMethodInfo InetAddressGetFamilyMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.inetAddressGetFamily",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#v:inetAddressGetFamily"
            })

    #endif

    -- method InetAddress::get_flowinfo
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "address"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "InetAddress" }
    --           , argCType = Just "GInetAddress*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a #GInetAddress" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TBasicType TUInt32)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_get_flowinfo" g_inet_address_get_flowinfo ::
        Ptr InetAddress ->                      -- address : TInterface (Name {namespace = "Gio", name = "InetAddress"})
        IO Word32

    -- | Gets the value of [InetAddress:flowinfo]("GI.Gio.Objects.InetAddress#g:attr:flowinfo").
    --
    -- /Since: 2.86/
    inetAddressGetFlowinfo ::
        (B.CallStack.HasCallStack, MonadIO m, IsInetAddress a) =>
        a
        -- ^ /@address@/: a t'GI.Gio.Objects.InetAddress.InetAddress'
        -> m Word32
        -- ^ __Returns:__ The flowinfo for the address, @0@ if unset or not IPv6 address.
    inetAddressGetFlowinfo :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsInetAddress a) =>
    a -> m Word32
    inetAddressGetFlowinfo a
    address = IO Word32 -> m Word32
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
    forall a b. (a -> b) -> a -> b
    $ do
        address' <- a -> IO (Ptr InetAddress)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    address
        result <- g_inet_address_get_flowinfo address'
        touchManagedPtr address
        return result

    #if defined(ENABLE_OVERLOADING)
    data InetAddressGetFlowinfoMethodInfo
    instance (signature ~ (m Word32), MonadIO m, IsInetAddress a) => O.OverloadedMethod InetAddressGetFlowinfoMethodInfo a signature where
        overloadedMethod = inetAddressGetFlowinfo

    instance O.OverloadedMethodInfo InetAddressGetFlowinfoMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.inetAddressGetFlowinfo",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#v:inetAddressGetFlowinfo"
            })

    #endif

    -- method InetAddress::get_is_any
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "address"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "InetAddress" }
    --           , argCType = Just "GInetAddress*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a #GInetAddress" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TBasicType TBoolean)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_get_is_any" g_inet_address_get_is_any ::
        Ptr InetAddress ->                      -- address : TInterface (Name {namespace = "Gio", name = "InetAddress"})
        IO CInt

    -- | Tests whether /@address@/ is the \"any\" address for its family.
    --
    -- /Since: 2.22/
    inetAddressGetIsAny ::
        (B.CallStack.HasCallStack, MonadIO m, IsInetAddress a) =>
        a
        -- ^ /@address@/: a t'GI.Gio.Objects.InetAddress.InetAddress'
        -> m Bool
        -- ^ __Returns:__ 'P.True' if /@address@/ is the \"any\" address for its family.
    inetAddressGetIsAny :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsInetAddress a) =>
    a -> m Bool
    inetAddressGetIsAny a
    address = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ do
        address' <- a -> IO (Ptr InetAddress)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    address
        result <- g_inet_address_get_is_any address'
        let result' = (CInt -> CInt -> Bool
    forall a. Eq a => a -> a -> Bool
    /= CInt
    0) CInt
    result
        touchManagedPtr address
        return result'

    #if defined(ENABLE_OVERLOADING)
    data InetAddressGetIsAnyMethodInfo
    instance (signature ~ (m Bool), MonadIO m, IsInetAddress a) => O.OverloadedMethod InetAddressGetIsAnyMethodInfo a signature where
        overloadedMethod = inetAddressGetIsAny

    instance O.OverloadedMethodInfo InetAddressGetIsAnyMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.inetAddressGetIsAny",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#v:inetAddressGetIsAny"
            })

    #endif

    -- method InetAddress::get_is_link_local
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "address"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "InetAddress" }
    --           , argCType = Just "GInetAddress*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a #GInetAddress" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TBasicType TBoolean)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_get_is_link_local" g_inet_address_get_is_link_local ::
        Ptr InetAddress ->                      -- address : TInterface (Name {namespace = "Gio", name = "InetAddress"})
        IO CInt

    -- | Tests whether /@address@/ is a link-local address (that is, if it
    -- identifies a host on a local network that is not connected to the
    -- Internet).
    --
    -- /Since: 2.22/
    inetAddressGetIsLinkLocal ::
        (B.CallStack.HasCallStack, MonadIO m, IsInetAddress a) =>
        a
        -- ^ /@address@/: a t'GI.Gio.Objects.InetAddress.InetAddress'
        -> m Bool
        -- ^ __Returns:__ 'P.True' if /@address@/ is a link-local address.
    inetAddressGetIsLinkLocal :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsInetAddress a) =>
    a -> m Bool
    inetAddressGetIsLinkLocal a
    address = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ do
        address' <- a -> IO (Ptr InetAddress)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    address
        result <- g_inet_address_get_is_link_local address'
        let result' = (CInt -> CInt -> Bool
    forall a. Eq a => a -> a -> Bool
    /= CInt
    0) CInt
    result
        touchManagedPtr address
        return result'

    #if defined(ENABLE_OVERLOADING)
    data InetAddressGetIsLinkLocalMethodInfo
    instance (signature ~ (m Bool), MonadIO m, IsInetAddress a) => O.OverloadedMethod InetAddressGetIsLinkLocalMethodInfo a signature where
        overloadedMethod = inetAddressGetIsLinkLocal

    instance O.OverloadedMethodInfo InetAddressGetIsLinkLocalMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.inetAddressGetIsLinkLocal",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#v:inetAddressGetIsLinkLocal"
            })

    #endif

    -- method InetAddress::get_is_loopback
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "address"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "InetAddress" }
    --           , argCType = Just "GInetAddress*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a #GInetAddress" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TBasicType TBoolean)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_get_is_loopback" g_inet_address_get_is_loopback ::
        Ptr InetAddress ->                      -- address : TInterface (Name {namespace = "Gio", name = "InetAddress"})
        IO CInt

    -- | Tests whether /@address@/ is the loopback address for its family.
    --
    -- /Since: 2.22/
    inetAddressGetIsLoopback ::
        (B.CallStack.HasCallStack, MonadIO m, IsInetAddress a) =>
        a
        -- ^ /@address@/: a t'GI.Gio.Objects.InetAddress.InetAddress'
        -> m Bool
        -- ^ __Returns:__ 'P.True' if /@address@/ is the loopback address for its family.
    inetAddressGetIsLoopback :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsInetAddress a) =>
    a -> m Bool
    inetAddressGetIsLoopback a
    address = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ do
        address' <- a -> IO (Ptr InetAddress)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    address
        result <- g_inet_address_get_is_loopback address'
        let result' = (CInt -> CInt -> Bool
    forall a. Eq a => a -> a -> Bool
    /= CInt
    0) CInt
    result
        touchManagedPtr address
        return result'

    #if defined(ENABLE_OVERLOADING)
    data InetAddressGetIsLoopbackMethodInfo
    instance (signature ~ (m Bool), MonadIO m, IsInetAddress a) => O.OverloadedMethod InetAddressGetIsLoopbackMethodInfo a signature where
        overloadedMethod = inetAddressGetIsLoopback

    instance O.OverloadedMethodInfo InetAddressGetIsLoopbackMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.inetAddressGetIsLoopback",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#v:inetAddressGetIsLoopback"
            })

    #endif

    -- method InetAddress::get_is_mc_global
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "address"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "InetAddress" }
    --           , argCType = Just "GInetAddress*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a #GInetAddress" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TBasicType TBoolean)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_get_is_mc_global" g_inet_address_get_is_mc_global ::
        Ptr InetAddress ->                      -- address : TInterface (Name {namespace = "Gio", name = "InetAddress"})
        IO CInt

    -- | Tests whether /@address@/ is a global multicast address.
    --
    -- /Since: 2.22/
    inetAddressGetIsMcGlobal ::
        (B.CallStack.HasCallStack, MonadIO m, IsInetAddress a) =>
        a
        -- ^ /@address@/: a t'GI.Gio.Objects.InetAddress.InetAddress'
        -> m Bool
        -- ^ __Returns:__ 'P.True' if /@address@/ is a global multicast address.
    inetAddressGetIsMcGlobal :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsInetAddress a) =>
    a -> m Bool
    inetAddressGetIsMcGlobal a
    address = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ do
        address' <- a -> IO (Ptr InetAddress)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    address
        result <- g_inet_address_get_is_mc_global address'
        let result' = (CInt -> CInt -> Bool
    forall a. Eq a => a -> a -> Bool
    /= CInt
    0) CInt
    result
        touchManagedPtr address
        return result'

    #if defined(ENABLE_OVERLOADING)
    data InetAddressGetIsMcGlobalMethodInfo
    instance (signature ~ (m Bool), MonadIO m, IsInetAddress a) => O.OverloadedMethod InetAddressGetIsMcGlobalMethodInfo a signature where
        overloadedMethod = inetAddressGetIsMcGlobal

    instance O.OverloadedMethodInfo InetAddressGetIsMcGlobalMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.inetAddressGetIsMcGlobal",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#v:inetAddressGetIsMcGlobal"
            })

    #endif

    -- method InetAddress::get_is_mc_link_local
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "address"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "InetAddress" }
    --           , argCType = Just "GInetAddress*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a #GInetAddress" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TBasicType TBoolean)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_get_is_mc_link_local" g_inet_address_get_is_mc_link_local ::
        Ptr InetAddress ->                      -- address : TInterface (Name {namespace = "Gio", name = "InetAddress"})
        IO CInt

    -- | Tests whether /@address@/ is a link-local multicast address.
    --
    -- /Since: 2.22/
    inetAddressGetIsMcLinkLocal ::
        (B.CallStack.HasCallStack, MonadIO m, IsInetAddress a) =>
        a
        -- ^ /@address@/: a t'GI.Gio.Objects.InetAddress.InetAddress'
        -> m Bool
        -- ^ __Returns:__ 'P.True' if /@address@/ is a link-local multicast address.
    inetAddressGetIsMcLinkLocal :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsInetAddress a) =>
    a -> m Bool
    inetAddressGetIsMcLinkLocal a
    address = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ do
        address' <- a -> IO (Ptr InetAddress)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    address
        result <- g_inet_address_get_is_mc_link_local address'
        let result' = (CInt -> CInt -> Bool
    forall a. Eq a => a -> a -> Bool
    /= CInt
    0) CInt
    result
        touchManagedPtr address
        return result'

    #if defined(ENABLE_OVERLOADING)
    data InetAddressGetIsMcLinkLocalMethodInfo
    instance (signature ~ (m Bool), MonadIO m, IsInetAddress a) => O.OverloadedMethod InetAddressGetIsMcLinkLocalMethodInfo a signature where
        overloadedMethod = inetAddressGetIsMcLinkLocal

    instance O.OverloadedMethodInfo InetAddressGetIsMcLinkLocalMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.inetAddressGetIsMcLinkLocal",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#v:inetAddressGetIsMcLinkLocal"
            })

    #endif

    -- method InetAddress::get_is_mc_node_local
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "address"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "InetAddress" }
    --           , argCType = Just "GInetAddress*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a #GInetAddress" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TBasicType TBoolean)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_get_is_mc_node_local" g_inet_address_get_is_mc_node_local ::
        Ptr InetAddress ->                      -- address : TInterface (Name {namespace = "Gio", name = "InetAddress"})
        IO CInt

    -- | Tests whether /@address@/ is a node-local multicast address.
    --
    -- /Since: 2.22/
    inetAddressGetIsMcNodeLocal ::
        (B.CallStack.HasCallStack, MonadIO m, IsInetAddress a) =>
        a
        -- ^ /@address@/: a t'GI.Gio.Objects.InetAddress.InetAddress'
        -> m Bool
        -- ^ __Returns:__ 'P.True' if /@address@/ is a node-local multicast address.
    inetAddressGetIsMcNodeLocal :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsInetAddress a) =>
    a -> m Bool
    inetAddressGetIsMcNodeLocal a
    address = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ do
        address' <- a -> IO (Ptr InetAddress)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    address
        result <- g_inet_address_get_is_mc_node_local address'
        let result' = (CInt -> CInt -> Bool
    forall a. Eq a => a -> a -> Bool
    /= CInt
    0) CInt
    result
        touchManagedPtr address
        return result'

    #if defined(ENABLE_OVERLOADING)
    data InetAddressGetIsMcNodeLocalMethodInfo
    instance (signature ~ (m Bool), MonadIO m, IsInetAddress a) => O.OverloadedMethod InetAddressGetIsMcNodeLocalMethodInfo a signature where
        overloadedMethod = inetAddressGetIsMcNodeLocal

    instance O.OverloadedMethodInfo InetAddressGetIsMcNodeLocalMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.inetAddressGetIsMcNodeLocal",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#v:inetAddressGetIsMcNodeLocal"
            })

    #endif

    -- method InetAddress::get_is_mc_org_local
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "address"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "InetAddress" }
    --           , argCType = Just "GInetAddress*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a #GInetAddress" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TBasicType TBoolean)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_get_is_mc_org_local" g_inet_address_get_is_mc_org_local ::
        Ptr InetAddress ->                      -- address : TInterface (Name {namespace = "Gio", name = "InetAddress"})
        IO CInt

    -- | Tests whether /@address@/ is an organization-local multicast address.
    --
    -- /Since: 2.22/
    inetAddressGetIsMcOrgLocal ::
        (B.CallStack.HasCallStack, MonadIO m, IsInetAddress a) =>
        a
        -- ^ /@address@/: a t'GI.Gio.Objects.InetAddress.InetAddress'
        -> m Bool
        -- ^ __Returns:__ 'P.True' if /@address@/ is an organization-local multicast address.
    inetAddressGetIsMcOrgLocal :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsInetAddress a) =>
    a -> m Bool
    inetAddressGetIsMcOrgLocal a
    address = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ do
        address' <- a -> IO (Ptr InetAddress)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    address
        result <- g_inet_address_get_is_mc_org_local address'
        let result' = (CInt -> CInt -> Bool
    forall a. Eq a => a -> a -> Bool
    /= CInt
    0) CInt
    result
        touchManagedPtr address
        return result'

    #if defined(ENABLE_OVERLOADING)
    data InetAddressGetIsMcOrgLocalMethodInfo
    instance (signature ~ (m Bool), MonadIO m, IsInetAddress a) => O.OverloadedMethod InetAddressGetIsMcOrgLocalMethodInfo a signature where
        overloadedMethod = inetAddressGetIsMcOrgLocal

    instance O.OverloadedMethodInfo InetAddressGetIsMcOrgLocalMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.inetAddressGetIsMcOrgLocal",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#v:inetAddressGetIsMcOrgLocal"
            })

    #endif

    -- method InetAddress::get_is_mc_site_local
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "address"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "InetAddress" }
    --           , argCType = Just "GInetAddress*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a #GInetAddress" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TBasicType TBoolean)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_get_is_mc_site_local" g_inet_address_get_is_mc_site_local ::
        Ptr InetAddress ->                      -- address : TInterface (Name {namespace = "Gio", name = "InetAddress"})
        IO CInt

    -- | Tests whether /@address@/ is a site-local multicast address.
    --
    -- /Since: 2.22/
    inetAddressGetIsMcSiteLocal ::
        (B.CallStack.HasCallStack, MonadIO m, IsInetAddress a) =>
        a
        -- ^ /@address@/: a t'GI.Gio.Objects.InetAddress.InetAddress'
        -> m Bool
        -- ^ __Returns:__ 'P.True' if /@address@/ is a site-local multicast address.
    inetAddressGetIsMcSiteLocal :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsInetAddress a) =>
    a -> m Bool
    inetAddressGetIsMcSiteLocal a
    address = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ do
        address' <- a -> IO (Ptr InetAddress)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    address
        result <- g_inet_address_get_is_mc_site_local address'
        let result' = (CInt -> CInt -> Bool
    forall a. Eq a => a -> a -> Bool
    /= CInt
    0) CInt
    result
        touchManagedPtr address
        return result'

    #if defined(ENABLE_OVERLOADING)
    data InetAddressGetIsMcSiteLocalMethodInfo
    instance (signature ~ (m Bool), MonadIO m, IsInetAddress a) => O.OverloadedMethod InetAddressGetIsMcSiteLocalMethodInfo a signature where
        overloadedMethod = inetAddressGetIsMcSiteLocal

    instance O.OverloadedMethodInfo InetAddressGetIsMcSiteLocalMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.inetAddressGetIsMcSiteLocal",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#v:inetAddressGetIsMcSiteLocal"
            })

    #endif

    -- method InetAddress::get_is_multicast
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "address"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "InetAddress" }
    --           , argCType = Just "GInetAddress*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a #GInetAddress" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TBasicType TBoolean)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_get_is_multicast" g_inet_address_get_is_multicast ::
        Ptr InetAddress ->                      -- address : TInterface (Name {namespace = "Gio", name = "InetAddress"})
        IO CInt

    -- | Tests whether /@address@/ is a multicast address.
    --
    -- /Since: 2.22/
    inetAddressGetIsMulticast ::
        (B.CallStack.HasCallStack, MonadIO m, IsInetAddress a) =>
        a
        -- ^ /@address@/: a t'GI.Gio.Objects.InetAddress.InetAddress'
        -> m Bool
        -- ^ __Returns:__ 'P.True' if /@address@/ is a multicast address.
    inetAddressGetIsMulticast :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsInetAddress a) =>
    a -> m Bool
    inetAddressGetIsMulticast a
    address = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ do
        address' <- a -> IO (Ptr InetAddress)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    address
        result <- g_inet_address_get_is_multicast address'
        let result' = (CInt -> CInt -> Bool
    forall a. Eq a => a -> a -> Bool
    /= CInt
    0) CInt
    result
        touchManagedPtr address
        return result'

    #if defined(ENABLE_OVERLOADING)
    data InetAddressGetIsMulticastMethodInfo
    instance (signature ~ (m Bool), MonadIO m, IsInetAddress a) => O.OverloadedMethod InetAddressGetIsMulticastMethodInfo a signature where
        overloadedMethod = inetAddressGetIsMulticast

    instance O.OverloadedMethodInfo InetAddressGetIsMulticastMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.inetAddressGetIsMulticast",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#v:inetAddressGetIsMulticast"
            })

    #endif

    -- method InetAddress::get_is_site_local
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "address"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "InetAddress" }
    --           , argCType = Just "GInetAddress*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a #GInetAddress" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TBasicType TBoolean)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_get_is_site_local" g_inet_address_get_is_site_local ::
        Ptr InetAddress ->                      -- address : TInterface (Name {namespace = "Gio", name = "InetAddress"})
        IO CInt

    -- | Tests whether /@address@/ is a site-local address such as 10.0.0.1
    -- (that is, the address identifies a host on a local network that can
    -- not be reached directly from the Internet, but which may have
    -- outgoing Internet connectivity via a NAT or firewall).
    --
    -- /Since: 2.22/
    inetAddressGetIsSiteLocal ::
        (B.CallStack.HasCallStack, MonadIO m, IsInetAddress a) =>
        a
        -- ^ /@address@/: a t'GI.Gio.Objects.InetAddress.InetAddress'
        -> m Bool
        -- ^ __Returns:__ 'P.True' if /@address@/ is a site-local address.
    inetAddressGetIsSiteLocal :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsInetAddress a) =>
    a -> m Bool
    inetAddressGetIsSiteLocal a
    address = IO Bool -> m Bool
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
    forall a b. (a -> b) -> a -> b
    $ do
        address' <- a -> IO (Ptr InetAddress)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    address
        result <- g_inet_address_get_is_site_local address'
        let result' = (CInt -> CInt -> Bool
    forall a. Eq a => a -> a -> Bool
    /= CInt
    0) CInt
    result
        touchManagedPtr address
        return result'

    #if defined(ENABLE_OVERLOADING)
    data InetAddressGetIsSiteLocalMethodInfo
    instance (signature ~ (m Bool), MonadIO m, IsInetAddress a) => O.OverloadedMethod InetAddressGetIsSiteLocalMethodInfo a signature where
        overloadedMethod = inetAddressGetIsSiteLocal

    instance O.OverloadedMethodInfo InetAddressGetIsSiteLocalMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.inetAddressGetIsSiteLocal",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#v:inetAddressGetIsSiteLocal"
            })

    #endif

    -- method InetAddress::get_native_size
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "address"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "InetAddress" }
    --           , argCType = Just "GInetAddress*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a #GInetAddress" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TBasicType TSize)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_get_native_size" g_inet_address_get_native_size ::
        Ptr InetAddress ->                      -- address : TInterface (Name {namespace = "Gio", name = "InetAddress"})
        IO FCT.CSize

    -- | Gets the size of the native raw binary address for /@address@/. This
    -- is the size of the data that you get from @/g_inet_address_to_bytes()/@.
    --
    -- /Since: 2.22/
    inetAddressGetNativeSize ::
        (B.CallStack.HasCallStack, MonadIO m, IsInetAddress a) =>
        a
        -- ^ /@address@/: a t'GI.Gio.Objects.InetAddress.InetAddress'
        -> m FCT.CSize
        -- ^ __Returns:__ the number of bytes used for the native version of /@address@/.
    inetAddressGetNativeSize :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsInetAddress a) =>
    a -> m CSize
    inetAddressGetNativeSize a
    address = IO CSize -> m CSize
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO CSize -> m CSize) -> IO CSize -> m CSize
    forall a b. (a -> b) -> a -> b
    $ do
        address' <- a -> IO (Ptr InetAddress)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    address
        result <- g_inet_address_get_native_size address'
        touchManagedPtr address
        return result

    #if defined(ENABLE_OVERLOADING)
    data InetAddressGetNativeSizeMethodInfo
    instance (signature ~ (m FCT.CSize), MonadIO m, IsInetAddress a) => O.OverloadedMethod InetAddressGetNativeSizeMethodInfo a signature where
        overloadedMethod = inetAddressGetNativeSize

    instance O.OverloadedMethodInfo InetAddressGetNativeSizeMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.inetAddressGetNativeSize",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#v:inetAddressGetNativeSize"
            })

    #endif

    -- method InetAddress::get_scope_id
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "address"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "InetAddress" }
    --           , argCType = Just "GInetAddress*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a #GInetAddress" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TBasicType TUInt32)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_get_scope_id" g_inet_address_get_scope_id ::
        Ptr InetAddress ->                      -- address : TInterface (Name {namespace = "Gio", name = "InetAddress"})
        IO Word32

    -- | Gets the value of [InetAddress:scopeId]("GI.Gio.Objects.InetAddress#g:attr:scopeId").
    --
    -- /Since: 2.86/
    inetAddressGetScopeId ::
        (B.CallStack.HasCallStack, MonadIO m, IsInetAddress a) =>
        a
        -- ^ /@address@/: a t'GI.Gio.Objects.InetAddress.InetAddress'
        -> m Word32
        -- ^ __Returns:__ The scope-id for the address, @0@ if unset or not IPv6 address.
    inetAddressGetScopeId :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsInetAddress a) =>
    a -> m Word32
    inetAddressGetScopeId a
    address = IO Word32 -> m Word32
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
    forall a b. (a -> b) -> a -> b
    $ do
        address' <- a -> IO (Ptr InetAddress)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    address
        result <- g_inet_address_get_scope_id address'
        touchManagedPtr address
        return result

    #if defined(ENABLE_OVERLOADING)
    data InetAddressGetScopeIdMethodInfo
    instance (signature ~ (m Word32), MonadIO m, IsInetAddress a) => O.OverloadedMethod InetAddressGetScopeIdMethodInfo a signature where
        overloadedMethod = inetAddressGetScopeId

    instance O.OverloadedMethodInfo InetAddressGetScopeIdMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.inetAddressGetScopeId",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#v:inetAddressGetScopeId"
            })

    #endif

    -- method InetAddress::to_string
    -- method type : OrdinaryMethod
    -- Args: [ Arg
    --           { argCName = "address"
    --           , argType =
    --               TInterface Name { namespace = "Gio" , name = "InetAddress" }
    --           , argCType = Just "GInetAddress*"
    --           , direction = DirectionIn
    --           , mayBeNull = False
    --           , argDoc =
    --               Documentation
    --                 { rawDocText = Just "a #GInetAddress" , sinceVersion = Nothing }
    --           , argScope = ScopeTypeInvalid
    --           , argClosure = -1
    --           , argDestroy = -1
    --           , argCallerAllocates = False
    --           , argCallbackUserData = False
    --           , transfer = TransferNothing
    --           }
    --       ]
    -- Lengths: []
    -- returnType: Just (TBasicType TUTF8)
    -- throws : False
    -- Skip return : False

    foreign import ccall "g_inet_address_to_string" g_inet_address_to_string ::
        Ptr InetAddress ->                      -- address : TInterface (Name {namespace = "Gio", name = "InetAddress"})
        IO CString

    -- | Converts /@address@/ to string form.
    --
    -- /Since: 2.22/
    inetAddressToString ::
        (B.CallStack.HasCallStack, MonadIO m, IsInetAddress a) =>
        a
        -- ^ /@address@/: a t'GI.Gio.Objects.InetAddress.InetAddress'
        -> m T.Text
        -- ^ __Returns:__ a representation of /@address@/ as a string, which should be
        -- freed after use.
    inetAddressToString :: forall (m :: * -> *) a.
    (HasCallStack, MonadIO m, IsInetAddress a) =>
    a -> m Text
    inetAddressToString a
    address = IO Text -> m Text
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO Text -> m Text) -> IO Text -> m Text
    forall a b. (a -> b) -> a -> b
    $ do
        address' <- a -> IO (Ptr InetAddress)
    forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
    unsafeManagedPtrCastPtr a
    address
        result <- g_inet_address_to_string address'
        checkUnexpectedReturnNULL "inetAddressToString" result
        result' <- cstringToText result
        freeMem result
        touchManagedPtr address
        return result'

    #if defined(ENABLE_OVERLOADING)
    data InetAddressToStringMethodInfo
    instance (signature ~ (m T.Text), MonadIO m, IsInetAddress a) => O.OverloadedMethod InetAddressToStringMethodInfo a signature where
        overloadedMethod = inetAddressToString

    instance O.OverloadedMethodInfo InetAddressToStringMethodInfo a where
        overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
            O.resolvedSymbolName = "GI.Gio.Objects.InetAddress.inetAddressToString",
            O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.38/docs/GI-Gio-Objects-InetAddress.html#v:inetAddressToString"
            })

    #endif