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

/No description available in the introspection data./
-}

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

module GI.Poppler.Structs.FontsIter
    (

-- * Exported types
    FontsIter(..)                           ,
    noFontsIter                             ,


 -- * Methods
-- ** copy #method:copy#

#if ENABLE_OVERLOADING
    FontsIterCopyMethodInfo                 ,
#endif
    fontsIterCopy                           ,


-- ** free #method:free#

#if ENABLE_OVERLOADING
    FontsIterFreeMethodInfo                 ,
#endif
    fontsIterFree                           ,


-- ** getEncoding #method:getEncoding#

#if ENABLE_OVERLOADING
    FontsIterGetEncodingMethodInfo          ,
#endif
    fontsIterGetEncoding                    ,


-- ** getFileName #method:getFileName#

#if ENABLE_OVERLOADING
    FontsIterGetFileNameMethodInfo          ,
#endif
    fontsIterGetFileName                    ,


-- ** getFontType #method:getFontType#

#if ENABLE_OVERLOADING
    FontsIterGetFontTypeMethodInfo          ,
#endif
    fontsIterGetFontType                    ,


-- ** getFullName #method:getFullName#

#if ENABLE_OVERLOADING
    FontsIterGetFullNameMethodInfo          ,
#endif
    fontsIterGetFullName                    ,


-- ** getName #method:getName#

#if ENABLE_OVERLOADING
    FontsIterGetNameMethodInfo              ,
#endif
    fontsIterGetName                        ,


-- ** getSubstituteName #method:getSubstituteName#

#if ENABLE_OVERLOADING
    FontsIterGetSubstituteNameMethodInfo    ,
#endif
    fontsIterGetSubstituteName              ,


-- ** isEmbedded #method:isEmbedded#

#if ENABLE_OVERLOADING
    FontsIterIsEmbeddedMethodInfo           ,
#endif
    fontsIterIsEmbedded                     ,


-- ** isSubset #method:isSubset#

#if ENABLE_OVERLOADING
    FontsIterIsSubsetMethodInfo             ,
#endif
    fontsIterIsSubset                       ,


-- ** next #method:next#

#if ENABLE_OVERLOADING
    FontsIterNextMethodInfo                 ,
#endif
    fontsIterNext                           ,




    ) where

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

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

import {-# SOURCE #-} qualified GI.Poppler.Enums as Poppler.Enums

-- | Memory-managed wrapper type.
newtype FontsIter = FontsIter (ManagedPtr FontsIter)
foreign import ccall "poppler_fonts_iter_get_type" c_poppler_fonts_iter_get_type ::
    IO GType

instance BoxedObject FontsIter where
    boxedType _ = c_poppler_fonts_iter_get_type

-- | A convenience alias for `Nothing` :: `Maybe` `FontsIter`.
noFontsIter :: Maybe FontsIter
noFontsIter = Nothing


#if ENABLE_OVERLOADING
instance O.HasAttributeList FontsIter
type instance O.AttributeList FontsIter = FontsIterAttributeList
type FontsIterAttributeList = ('[ ] :: [(Symbol, *)])
#endif

-- method FontsIter::copy
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "iter", argType = TInterface (Name {namespace = "Poppler", name = "FontsIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PopplerFontsIter to copy", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Poppler", name = "FontsIter"}))
-- throws : False
-- Skip return : False

foreign import ccall "poppler_fonts_iter_copy" poppler_fonts_iter_copy ::
    Ptr FontsIter ->                        -- iter : TInterface (Name {namespace = "Poppler", name = "FontsIter"})
    IO (Ptr FontsIter)

{- |
Creates a copy of /@iter@/
-}
fontsIterCopy ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FontsIter
    {- ^ /@iter@/: a 'GI.Poppler.Structs.FontsIter.FontsIter' to copy -}
    -> m FontsIter
    {- ^ __Returns:__ a new allocated copy of /@iter@/ -}
fontsIterCopy iter = liftIO $ do
    iter' <- unsafeManagedPtrGetPtr iter
    result <- poppler_fonts_iter_copy iter'
    checkUnexpectedReturnNULL "fontsIterCopy" result
    result' <- (wrapBoxed FontsIter) result
    touchManagedPtr iter
    return result'

#if ENABLE_OVERLOADING
data FontsIterCopyMethodInfo
instance (signature ~ (m FontsIter), MonadIO m) => O.MethodInfo FontsIterCopyMethodInfo FontsIter signature where
    overloadedMethod _ = fontsIterCopy

#endif

-- method FontsIter::free
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "iter", argType = TInterface (Name {namespace = "Poppler", name = "FontsIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PopplerFontsIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "poppler_fonts_iter_free" poppler_fonts_iter_free ::
    Ptr FontsIter ->                        -- iter : TInterface (Name {namespace = "Poppler", name = "FontsIter"})
    IO ()

{- |
Frees the given 'GI.Poppler.Structs.FontsIter.FontsIter'
-}
fontsIterFree ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FontsIter
    {- ^ /@iter@/: a 'GI.Poppler.Structs.FontsIter.FontsIter' -}
    -> m ()
fontsIterFree iter = liftIO $ do
    iter' <- unsafeManagedPtrGetPtr iter
    poppler_fonts_iter_free iter'
    touchManagedPtr iter
    return ()

#if ENABLE_OVERLOADING
data FontsIterFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo FontsIterFreeMethodInfo FontsIter signature where
    overloadedMethod _ = fontsIterFree

#endif

-- method FontsIter::get_encoding
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "iter", argType = TInterface (Name {namespace = "Poppler", name = "FontsIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PopplerFontsIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "poppler_fonts_iter_get_encoding" poppler_fonts_iter_get_encoding ::
    Ptr FontsIter ->                        -- iter : TInterface (Name {namespace = "Poppler", name = "FontsIter"})
    IO CString

{- |
Returns the encoding of the font associated with /@iter@/

/Since: 0.20/
-}
fontsIterGetEncoding ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FontsIter
    {- ^ /@iter@/: a 'GI.Poppler.Structs.FontsIter.FontsIter' -}
    -> m T.Text
    {- ^ __Returns:__ the font encoding -}
fontsIterGetEncoding iter = liftIO $ do
    iter' <- unsafeManagedPtrGetPtr iter
    result <- poppler_fonts_iter_get_encoding iter'
    checkUnexpectedReturnNULL "fontsIterGetEncoding" result
    result' <- cstringToText result
    touchManagedPtr iter
    return result'

#if ENABLE_OVERLOADING
data FontsIterGetEncodingMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo FontsIterGetEncodingMethodInfo FontsIter signature where
    overloadedMethod _ = fontsIterGetEncoding

#endif

-- method FontsIter::get_file_name
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "iter", argType = TInterface (Name {namespace = "Poppler", name = "FontsIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PopplerFontsIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "poppler_fonts_iter_get_file_name" poppler_fonts_iter_get_file_name ::
    Ptr FontsIter ->                        -- iter : TInterface (Name {namespace = "Poppler", name = "FontsIter"})
    IO CString

{- |
The filename of the font associated with /@iter@/ or 'Nothing' if
the font is embedded
-}
fontsIterGetFileName ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FontsIter
    {- ^ /@iter@/: a 'GI.Poppler.Structs.FontsIter.FontsIter' -}
    -> m T.Text
    {- ^ __Returns:__ the filename of the font or 'Nothing' if font is embedded -}
fontsIterGetFileName iter = liftIO $ do
    iter' <- unsafeManagedPtrGetPtr iter
    result <- poppler_fonts_iter_get_file_name iter'
    checkUnexpectedReturnNULL "fontsIterGetFileName" result
    result' <- cstringToText result
    touchManagedPtr iter
    return result'

#if ENABLE_OVERLOADING
data FontsIterGetFileNameMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo FontsIterGetFileNameMethodInfo FontsIter signature where
    overloadedMethod _ = fontsIterGetFileName

#endif

-- method FontsIter::get_font_type
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "iter", argType = TInterface (Name {namespace = "Poppler", name = "FontsIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PopplerFontsIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Poppler", name = "FontType"}))
-- throws : False
-- Skip return : False

foreign import ccall "poppler_fonts_iter_get_font_type" poppler_fonts_iter_get_font_type ::
    Ptr FontsIter ->                        -- iter : TInterface (Name {namespace = "Poppler", name = "FontsIter"})
    IO CUInt

{- |
Returns the type of the font associated with /@iter@/
-}
fontsIterGetFontType ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FontsIter
    {- ^ /@iter@/: a 'GI.Poppler.Structs.FontsIter.FontsIter' -}
    -> m Poppler.Enums.FontType
    {- ^ __Returns:__ the font type -}
fontsIterGetFontType iter = liftIO $ do
    iter' <- unsafeManagedPtrGetPtr iter
    result <- poppler_fonts_iter_get_font_type iter'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr iter
    return result'

#if ENABLE_OVERLOADING
data FontsIterGetFontTypeMethodInfo
instance (signature ~ (m Poppler.Enums.FontType), MonadIO m) => O.MethodInfo FontsIterGetFontTypeMethodInfo FontsIter signature where
    overloadedMethod _ = fontsIterGetFontType

#endif

-- method FontsIter::get_full_name
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "iter", argType = TInterface (Name {namespace = "Poppler", name = "FontsIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PopplerFontsIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "poppler_fonts_iter_get_full_name" poppler_fonts_iter_get_full_name ::
    Ptr FontsIter ->                        -- iter : TInterface (Name {namespace = "Poppler", name = "FontsIter"})
    IO CString

{- |
Returns the full name of the font associated with /@iter@/
-}
fontsIterGetFullName ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FontsIter
    {- ^ /@iter@/: a 'GI.Poppler.Structs.FontsIter.FontsIter' -}
    -> m T.Text
    {- ^ __Returns:__ the font full name -}
fontsIterGetFullName iter = liftIO $ do
    iter' <- unsafeManagedPtrGetPtr iter
    result <- poppler_fonts_iter_get_full_name iter'
    checkUnexpectedReturnNULL "fontsIterGetFullName" result
    result' <- cstringToText result
    touchManagedPtr iter
    return result'

#if ENABLE_OVERLOADING
data FontsIterGetFullNameMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo FontsIterGetFullNameMethodInfo FontsIter signature where
    overloadedMethod _ = fontsIterGetFullName

#endif

-- method FontsIter::get_name
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "iter", argType = TInterface (Name {namespace = "Poppler", name = "FontsIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PopplerFontsIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "poppler_fonts_iter_get_name" poppler_fonts_iter_get_name ::
    Ptr FontsIter ->                        -- iter : TInterface (Name {namespace = "Poppler", name = "FontsIter"})
    IO CString

{- |
Returns the name of the font associated with /@iter@/
-}
fontsIterGetName ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FontsIter
    {- ^ /@iter@/: a 'GI.Poppler.Structs.FontsIter.FontsIter' -}
    -> m T.Text
    {- ^ __Returns:__ the font name -}
fontsIterGetName iter = liftIO $ do
    iter' <- unsafeManagedPtrGetPtr iter
    result <- poppler_fonts_iter_get_name iter'
    checkUnexpectedReturnNULL "fontsIterGetName" result
    result' <- cstringToText result
    touchManagedPtr iter
    return result'

#if ENABLE_OVERLOADING
data FontsIterGetNameMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo FontsIterGetNameMethodInfo FontsIter signature where
    overloadedMethod _ = fontsIterGetName

#endif

-- method FontsIter::get_substitute_name
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "iter", argType = TInterface (Name {namespace = "Poppler", name = "FontsIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PopplerFontsIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "poppler_fonts_iter_get_substitute_name" poppler_fonts_iter_get_substitute_name ::
    Ptr FontsIter ->                        -- iter : TInterface (Name {namespace = "Poppler", name = "FontsIter"})
    IO CString

{- |
The name of the substitute font of the font associated with /@iter@/ or 'Nothing' if
the font is embedded

/Since: 0.20/
-}
fontsIterGetSubstituteName ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FontsIter
    {- ^ /@iter@/: a 'GI.Poppler.Structs.FontsIter.FontsIter' -}
    -> m T.Text
    {- ^ __Returns:__ the name of the substitute font or 'Nothing' if font is embedded -}
fontsIterGetSubstituteName iter = liftIO $ do
    iter' <- unsafeManagedPtrGetPtr iter
    result <- poppler_fonts_iter_get_substitute_name iter'
    checkUnexpectedReturnNULL "fontsIterGetSubstituteName" result
    result' <- cstringToText result
    touchManagedPtr iter
    return result'

#if ENABLE_OVERLOADING
data FontsIterGetSubstituteNameMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo FontsIterGetSubstituteNameMethodInfo FontsIter signature where
    overloadedMethod _ = fontsIterGetSubstituteName

#endif

-- method FontsIter::is_embedded
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "iter", argType = TInterface (Name {namespace = "Poppler", name = "FontsIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PopplerFontsIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "poppler_fonts_iter_is_embedded" poppler_fonts_iter_is_embedded ::
    Ptr FontsIter ->                        -- iter : TInterface (Name {namespace = "Poppler", name = "FontsIter"})
    IO CInt

{- |
Returns whether the font associated with /@iter@/ is embedded in the document
-}
fontsIterIsEmbedded ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FontsIter
    {- ^ /@iter@/: a 'GI.Poppler.Structs.FontsIter.FontsIter' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if font is embedded, 'False' otherwise -}
fontsIterIsEmbedded iter = liftIO $ do
    iter' <- unsafeManagedPtrGetPtr iter
    result <- poppler_fonts_iter_is_embedded iter'
    let result' = (/= 0) result
    touchManagedPtr iter
    return result'

#if ENABLE_OVERLOADING
data FontsIterIsEmbeddedMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo FontsIterIsEmbeddedMethodInfo FontsIter signature where
    overloadedMethod _ = fontsIterIsEmbedded

#endif

-- method FontsIter::is_subset
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "iter", argType = TInterface (Name {namespace = "Poppler", name = "FontsIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PopplerFontsIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "poppler_fonts_iter_is_subset" poppler_fonts_iter_is_subset ::
    Ptr FontsIter ->                        -- iter : TInterface (Name {namespace = "Poppler", name = "FontsIter"})
    IO CInt

{- |
Returns whether the font associated with /@iter@/ is a subset of another font
-}
fontsIterIsSubset ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FontsIter
    {- ^ /@iter@/: a 'GI.Poppler.Structs.FontsIter.FontsIter' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if font is a subset, 'False' otherwise -}
fontsIterIsSubset iter = liftIO $ do
    iter' <- unsafeManagedPtrGetPtr iter
    result <- poppler_fonts_iter_is_subset iter'
    let result' = (/= 0) result
    touchManagedPtr iter
    return result'

#if ENABLE_OVERLOADING
data FontsIterIsSubsetMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo FontsIterIsSubsetMethodInfo FontsIter signature where
    overloadedMethod _ = fontsIterIsSubset

#endif

-- method FontsIter::next
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "iter", argType = TInterface (Name {namespace = "Poppler", name = "FontsIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PopplerFontsIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "poppler_fonts_iter_next" poppler_fonts_iter_next ::
    Ptr FontsIter ->                        -- iter : TInterface (Name {namespace = "Poppler", name = "FontsIter"})
    IO CInt

{- |
Sets /@iter@/ to point to the next font
-}
fontsIterNext ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FontsIter
    {- ^ /@iter@/: a 'GI.Poppler.Structs.FontsIter.FontsIter' -}
    -> m Bool
    {- ^ __Returns:__ 'True', if /@iter@/ was set to the next font -}
fontsIterNext iter = liftIO $ do
    iter' <- unsafeManagedPtrGetPtr iter
    result <- poppler_fonts_iter_next iter'
    let result' = (/= 0) result
    touchManagedPtr iter
    return result'

#if ENABLE_OVERLOADING
data FontsIterNextMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo FontsIterNextMethodInfo FontsIter signature where
    overloadedMethod _ = fontsIterNext

#endif

#if ENABLE_OVERLOADING
type family ResolveFontsIterMethod (t :: Symbol) (o :: *) :: * where
    ResolveFontsIterMethod "copy" o = FontsIterCopyMethodInfo
    ResolveFontsIterMethod "free" o = FontsIterFreeMethodInfo
    ResolveFontsIterMethod "isEmbedded" o = FontsIterIsEmbeddedMethodInfo
    ResolveFontsIterMethod "isSubset" o = FontsIterIsSubsetMethodInfo
    ResolveFontsIterMethod "next" o = FontsIterNextMethodInfo
    ResolveFontsIterMethod "getEncoding" o = FontsIterGetEncodingMethodInfo
    ResolveFontsIterMethod "getFileName" o = FontsIterGetFileNameMethodInfo
    ResolveFontsIterMethod "getFontType" o = FontsIterGetFontTypeMethodInfo
    ResolveFontsIterMethod "getFullName" o = FontsIterGetFullNameMethodInfo
    ResolveFontsIterMethod "getName" o = FontsIterGetNameMethodInfo
    ResolveFontsIterMethod "getSubstituteName" o = FontsIterGetSubstituteNameMethodInfo
    ResolveFontsIterMethod l o = O.MethodResolutionFailed l o

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

#endif