{-# LINE 1 "src/Bindings/GObject/TypeInformation.hsc" #-}

{-# LINE 2 "src/Bindings/GObject/TypeInformation.hsc" #-}

{-# LINE 3 "src/Bindings/GObject/TypeInformation.hsc" #-}

-- | <http://library.gnome.org/devel/gobject/stable/gobject-Type-Information.html>

module Bindings.GObject.TypeInformation where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

{-# LINE 8 "src/Bindings/GObject/TypeInformation.hsc" #-}
import Bindings.GLib
import Bindings.GObject.Varargs

type C'GType = CUInt

{-# LINE 12 "src/Bindings/GObject/TypeInformation.hsc" #-}
data C'GTypePlugin = C'GTypePlugin

{-# LINE 13 "src/Bindings/GObject/TypeInformation.hsc" #-}

data C'GValue = C'GValue{
{-# LINE 15 "src/Bindings/GObject/TypeInformation.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'GValue where
  sizeOf _ = 20
  alignment = sizeOf
  peek p = do
    return $ C'GValue
  poke p (C'GValue) = do
    return ()

{-# LINE 16 "src/Bindings/GObject/TypeInformation.hsc" #-}

foreign import ccall "inline_G_TYPE_FUNDAMENTAL" c'G_TYPE_FUNDAMENTAL
  :: C'GType -> C'GType

{-# LINE 18 "src/Bindings/GObject/TypeInformation.hsc" #-}

c'G_TYPE_FUNDAMENTAL_MAX = 1020
c'G_TYPE_FUNDAMENTAL_MAX :: (Num a) => a

{-# LINE 20 "src/Bindings/GObject/TypeInformation.hsc" #-}

foreign import ccall "inline_G_TYPE_MAKE_FUNDAMENTAL" c'G_TYPE_MAKE_FUNDAMENTAL
  :: C'GType -> C'GType

{-# LINE 22 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "inline_G_TYPE_IS_ABSTRACT" c'G_TYPE_IS_ABSTRACT
  :: C'GType -> C'gboolean

{-# LINE 23 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "inline_G_TYPE_IS_DERIVED" c'G_TYPE_IS_DERIVED
  :: C'GType -> C'gboolean

{-# LINE 24 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "inline_G_TYPE_IS_FUNDAMENTAL" c'G_TYPE_IS_FUNDAMENTAL
  :: C'GType -> C'gboolean

{-# LINE 25 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "inline_G_TYPE_IS_VALUE_TYPE" c'G_TYPE_IS_VALUE_TYPE
  :: C'GType -> C'gboolean

{-# LINE 26 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "inline_G_TYPE_HAS_VALUE_TABLE" c'G_TYPE_HAS_VALUE_TABLE
  :: C'GType -> C'gboolean

{-# LINE 27 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "inline_G_TYPE_IS_CLASSED" c'G_TYPE_IS_CLASSED
  :: C'GType -> C'gboolean

{-# LINE 28 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "inline_G_TYPE_IS_INSTANTIATABLE" c'G_TYPE_IS_INSTANTIATABLE
  :: C'GType -> C'gboolean

{-# LINE 29 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "inline_G_TYPE_IS_DERIVABLE" c'G_TYPE_IS_DERIVABLE
  :: C'GType -> C'gboolean

{-# LINE 30 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "inline_G_TYPE_IS_DEEP_DERIVABLE" c'G_TYPE_IS_DEEP_DERIVABLE
  :: C'GType -> C'gboolean

{-# LINE 31 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "inline_G_TYPE_IS_INTERFACE" c'G_TYPE_IS_INTERFACE
  :: C'GType -> C'gboolean

{-# LINE 32 "src/Bindings/GObject/TypeInformation.hsc" #-}

data C'GTypeInterface = C'GTypeInterface{
{-# LINE 34 "src/Bindings/GObject/TypeInformation.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'GTypeInterface where
  sizeOf _ = 8
  alignment = sizeOf
  peek p = do
    return $ C'GTypeInterface
  poke p (C'GTypeInterface) = do
    return ()

{-# LINE 35 "src/Bindings/GObject/TypeInformation.hsc" #-}

data C'GTypeInstance = C'GTypeInstance{
{-# LINE 37 "src/Bindings/GObject/TypeInformation.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'GTypeInstance where
  sizeOf _ = 4
  alignment = sizeOf
  peek p = do
    return $ C'GTypeInstance
  poke p (C'GTypeInstance) = do
    return ()

{-# LINE 38 "src/Bindings/GObject/TypeInformation.hsc" #-}

data C'GTypeClass = C'GTypeClass{
{-# LINE 40 "src/Bindings/GObject/TypeInformation.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'GTypeClass where
  sizeOf _ = 4
  alignment = sizeOf
  peek p = do
    return $ C'GTypeClass
  poke p (C'GTypeClass) = do
    return ()

{-# LINE 41 "src/Bindings/GObject/TypeInformation.hsc" #-}

data C'GTypeInfo = C'GTypeInfo{
{-# LINE 43 "src/Bindings/GObject/TypeInformation.hsc" #-}

  c'GTypeInfo'class_size :: C'guint16
{-# LINE 44 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeInfo'base_init :: C'GBaseInitFunc
{-# LINE 45 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeInfo'base_finalize :: C'GBaseFinalizeFunc
{-# LINE 46 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeInfo'class_init :: C'GClassInitFunc
{-# LINE 47 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeInfo'class_finalize :: C'GClassFinalizeFunc
{-# LINE 48 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeInfo'class_data :: C'gconstpointer
{-# LINE 49 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeInfo'instance_size :: C'guint16
{-# LINE 50 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeInfo'instance_init :: C'GInstanceInitFunc
{-# LINE 51 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeInfo'value_table :: Ptr C'GTypeValueTable
{-# LINE 52 "src/Bindings/GObject/TypeInformation.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'GTypeInfo where
  sizeOf _ = 36
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    v3 <- peekByteOff p 12
    v4 <- peekByteOff p 16
    v5 <- peekByteOff p 20
    v6 <- peekByteOff p 24
    v7 <- peekByteOff p 28
    v8 <- peekByteOff p 32
    return $ C'GTypeInfo v0 v1 v2 v3 v4 v5 v6 v7 v8
  poke p (C'GTypeInfo v0 v1 v2 v3 v4 v5 v6 v7 v8) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    pokeByteOff p 12 v3
    pokeByteOff p 16 v4
    pokeByteOff p 20 v5
    pokeByteOff p 24 v6
    pokeByteOff p 28 v7
    pokeByteOff p 32 v8
    return ()

{-# LINE 53 "src/Bindings/GObject/TypeInformation.hsc" #-}

data C'GTypeFundamentalInfo = C'GTypeFundamentalInfo{
{-# LINE 55 "src/Bindings/GObject/TypeInformation.hsc" #-}

  c'GTypeFundamentalInfo'type_flags :: C'GTypeFundamentalFlags
{-# LINE 56 "src/Bindings/GObject/TypeInformation.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'GTypeFundamentalInfo where
  sizeOf _ = 4
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    return $ C'GTypeFundamentalInfo v0
  poke p (C'GTypeFundamentalInfo v0) = do
    pokeByteOff p 0 v0
    return ()

{-# LINE 57 "src/Bindings/GObject/TypeInformation.hsc" #-}

data C'GInterfaceInfo = C'GInterfaceInfo{
{-# LINE 59 "src/Bindings/GObject/TypeInformation.hsc" #-}

  c'GInterfaceInfo'interface_init :: C'GInterfaceInitFunc
{-# LINE 60 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GInterfaceInfo'interface_finalize :: C'GInterfaceFinalizeFunc
{-# LINE 61 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GInterfaceInfo'interface_data :: C'gpointer
{-# LINE 62 "src/Bindings/GObject/TypeInformation.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'GInterfaceInfo where
  sizeOf _ = 12
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    return $ C'GInterfaceInfo v0 v1 v2
  poke p (C'GInterfaceInfo v0 v1 v2) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    return ()

{-# LINE 63 "src/Bindings/GObject/TypeInformation.hsc" #-}

data C'GTypeValueTable = C'GTypeValueTable{
{-# LINE 65 "src/Bindings/GObject/TypeInformation.hsc" #-}

  c'GTypeValueTable'value_init :: FunPtr (Ptr C'GValue -> IO ())
{-# LINE 66 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeValueTable'value_free :: FunPtr (Ptr C'GValue -> IO ())
{-# LINE 67 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeValueTable'value_copy :: FunPtr (Ptr C'GValue -> Ptr C'GValue -> IO ())
{-# LINE 68 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeValueTable'value_peek_pointer :: FunPtr (Ptr C'GValue -> IO C'gpointer)
{-# LINE 69 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeValueTable'collect_format :: Ptr C'gchar
{-# LINE 70 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeValueTable'collect_value :: FunPtr (Ptr C'GValue -> C'guint -> Ptr C'GTypeCValue -> C'guint -> IO (Ptr C'gchar))
{-# LINE 71 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeValueTable'lcopy_format :: Ptr C'gchar
{-# LINE 72 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeValueTable'lcopy_value :: FunPtr (Ptr C'GValue -> C'guint -> Ptr C'GTypeCValue -> C'guint -> IO (Ptr C'gchar))
{-# LINE 73 "src/Bindings/GObject/TypeInformation.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'GTypeValueTable where
  sizeOf _ = 32
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    v3 <- peekByteOff p 12
    v4 <- peekByteOff p 16
    v5 <- peekByteOff p 20
    v6 <- peekByteOff p 24
    v7 <- peekByteOff p 28
    return $ C'GTypeValueTable v0 v1 v2 v3 v4 v5 v6 v7
  poke p (C'GTypeValueTable v0 v1 v2 v3 v4 v5 v6 v7) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    pokeByteOff p 12 v3
    pokeByteOff p 16 v4
    pokeByteOff p 20 v5
    pokeByteOff p 24 v6
    pokeByteOff p 28 v7
    return ()

{-# LINE 74 "src/Bindings/GObject/TypeInformation.hsc" #-}

c'G_TYPE_FLAG_RESERVED_ID_BIT = 1
c'G_TYPE_FLAG_RESERVED_ID_BIT :: (Num a) => a

{-# LINE 76 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_init" c'g_type_init
  :: IO ()
foreign import ccall "&g_type_init" p'g_type_init
  :: FunPtr (IO ())

{-# LINE 77 "src/Bindings/GObject/TypeInformation.hsc" #-}
type C'GTypeDebugFlags = CUInt

{-# LINE 78 "src/Bindings/GObject/TypeInformation.hsc" #-}

c'G_TYPE_DEBUG_NONE = 0
c'G_TYPE_DEBUG_NONE :: (Num a) => a

{-# LINE 80 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_DEBUG_OBJECTS = 1
c'G_TYPE_DEBUG_OBJECTS :: (Num a) => a

{-# LINE 81 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_DEBUG_SIGNALS = 2
c'G_TYPE_DEBUG_SIGNALS :: (Num a) => a

{-# LINE 82 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_DEBUG_MASK = 3
c'G_TYPE_DEBUG_MASK :: (Num a) => a

{-# LINE 83 "src/Bindings/GObject/TypeInformation.hsc" #-}

foreign import ccall "g_type_init_with_debug_flags" c'g_type_init_with_debug_flags
  :: C'GTypeDebugFlags -> IO ()
foreign import ccall "&g_type_init_with_debug_flags" p'g_type_init_with_debug_flags
  :: FunPtr (C'GTypeDebugFlags -> IO ())

{-# LINE 85 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_name" c'g_type_name
  :: C'GType -> IO (Ptr C'gchar)
foreign import ccall "&g_type_name" p'g_type_name
  :: FunPtr (C'GType -> IO (Ptr C'gchar))

{-# LINE 86 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_qname" c'g_type_qname
  :: C'GType -> IO C'GQuark
foreign import ccall "&g_type_qname" p'g_type_qname
  :: FunPtr (C'GType -> IO C'GQuark)

{-# LINE 87 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_from_name" c'g_type_from_name
  :: Ptr C'gchar -> IO C'GType
foreign import ccall "&g_type_from_name" p'g_type_from_name
  :: FunPtr (Ptr C'gchar -> IO C'GType)

{-# LINE 88 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_parent" c'g_type_parent
  :: C'GType -> IO C'GType
foreign import ccall "&g_type_parent" p'g_type_parent
  :: FunPtr (C'GType -> IO C'GType)

{-# LINE 89 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_depth" c'g_type_depth
  :: C'GType -> IO C'guint
foreign import ccall "&g_type_depth" p'g_type_depth
  :: FunPtr (C'GType -> IO C'guint)

{-# LINE 90 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_next_base" c'g_type_next_base
  :: C'GType -> C'GType -> IO C'GType
foreign import ccall "&g_type_next_base" p'g_type_next_base
  :: FunPtr (C'GType -> C'GType -> IO C'GType)

{-# LINE 91 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_is_a" c'g_type_is_a
  :: C'GType -> C'GType -> IO C'gboolean
foreign import ccall "&g_type_is_a" p'g_type_is_a
  :: FunPtr (C'GType -> C'GType -> IO C'gboolean)

{-# LINE 92 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_class_ref" c'g_type_class_ref
  :: C'GType -> IO C'gpointer
foreign import ccall "&g_type_class_ref" p'g_type_class_ref
  :: FunPtr (C'GType -> IO C'gpointer)

{-# LINE 93 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_class_peek" c'g_type_class_peek
  :: C'GType -> IO C'gpointer
foreign import ccall "&g_type_class_peek" p'g_type_class_peek
  :: FunPtr (C'GType -> IO C'gpointer)

{-# LINE 94 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_class_peek_static" c'g_type_class_peek_static
  :: C'GType -> IO C'gpointer
foreign import ccall "&g_type_class_peek_static" p'g_type_class_peek_static
  :: FunPtr (C'GType -> IO C'gpointer)

{-# LINE 95 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_class_unref" c'g_type_class_unref
  :: C'gpointer -> IO ()
foreign import ccall "&g_type_class_unref" p'g_type_class_unref
  :: FunPtr (C'gpointer -> IO ())

{-# LINE 96 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_class_peek_parent" c'g_type_class_peek_parent
  :: C'gpointer -> IO C'gpointer
foreign import ccall "&g_type_class_peek_parent" p'g_type_class_peek_parent
  :: FunPtr (C'gpointer -> IO C'gpointer)

{-# LINE 97 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_class_add_private" c'g_type_class_add_private
  :: C'gpointer -> C'gsize -> IO ()
foreign import ccall "&g_type_class_add_private" p'g_type_class_add_private
  :: FunPtr (C'gpointer -> C'gsize -> IO ())

{-# LINE 98 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_interface_peek" c'g_type_interface_peek
  :: C'gpointer -> C'GType -> IO C'gpointer
foreign import ccall "&g_type_interface_peek" p'g_type_interface_peek
  :: FunPtr (C'gpointer -> C'GType -> IO C'gpointer)

{-# LINE 99 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_interface_peek_parent" c'g_type_interface_peek_parent
  :: C'gpointer -> IO C'gpointer
foreign import ccall "&g_type_interface_peek_parent" p'g_type_interface_peek_parent
  :: FunPtr (C'gpointer -> IO C'gpointer)

{-# LINE 100 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_default_interface_ref" c'g_type_default_interface_ref
  :: C'GType -> IO C'gpointer
foreign import ccall "&g_type_default_interface_ref" p'g_type_default_interface_ref
  :: FunPtr (C'GType -> IO C'gpointer)

{-# LINE 101 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_default_interface_peek" c'g_type_default_interface_peek
  :: C'GType -> IO C'gpointer
foreign import ccall "&g_type_default_interface_peek" p'g_type_default_interface_peek
  :: FunPtr (C'GType -> IO C'gpointer)

{-# LINE 102 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_default_interface_unref" c'g_type_default_interface_unref
  :: C'gpointer -> IO ()
foreign import ccall "&g_type_default_interface_unref" p'g_type_default_interface_unref
  :: FunPtr (C'gpointer -> IO ())

{-# LINE 103 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_children" c'g_type_children
  :: C'GType -> Ptr C'guint -> IO (Ptr C'GType)
foreign import ccall "&g_type_children" p'g_type_children
  :: FunPtr (C'GType -> Ptr C'guint -> IO (Ptr C'GType))

{-# LINE 104 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_interfaces" c'g_type_interfaces
  :: C'GType -> Ptr C'guint -> IO (Ptr C'GType)
foreign import ccall "&g_type_interfaces" p'g_type_interfaces
  :: FunPtr (C'GType -> Ptr C'guint -> IO (Ptr C'GType))

{-# LINE 105 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_interface_prerequisites" c'g_type_interface_prerequisites
  :: C'GType -> Ptr C'guint -> IO (Ptr C'GType)
foreign import ccall "&g_type_interface_prerequisites" p'g_type_interface_prerequisites
  :: FunPtr (C'GType -> Ptr C'guint -> IO (Ptr C'GType))

{-# LINE 106 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_set_qdata" c'g_type_set_qdata
  :: C'GType -> C'GQuark -> C'gpointer -> IO ()
foreign import ccall "&g_type_set_qdata" p'g_type_set_qdata
  :: FunPtr (C'GType -> C'GQuark -> C'gpointer -> IO ())

{-# LINE 107 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_get_qdata" c'g_type_get_qdata
  :: C'GType -> C'GQuark -> IO C'gpointer
foreign import ccall "&g_type_get_qdata" p'g_type_get_qdata
  :: FunPtr (C'GType -> C'GQuark -> IO C'gpointer)

{-# LINE 108 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_query" c'g_type_query
  :: C'GType -> Ptr C'GTypeQuery -> IO ()
foreign import ccall "&g_type_query" p'g_type_query
  :: FunPtr (C'GType -> Ptr C'GTypeQuery -> IO ())

{-# LINE 109 "src/Bindings/GObject/TypeInformation.hsc" #-}

data C'GTypeQuery = C'GTypeQuery{
{-# LINE 111 "src/Bindings/GObject/TypeInformation.hsc" #-}

  c'GTypeQuery'type :: C'GType
{-# LINE 112 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeQuery'type_name :: Ptr C'gchar
{-# LINE 113 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeQuery'class_size :: C'guint
{-# LINE 114 "src/Bindings/GObject/TypeInformation.hsc" #-}
,
  c'GTypeQuery'instance_size :: C'guint
{-# LINE 115 "src/Bindings/GObject/TypeInformation.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'GTypeQuery where
  sizeOf _ = 16
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    v3 <- peekByteOff p 12
    return $ C'GTypeQuery v0 v1 v2 v3
  poke p (C'GTypeQuery v0 v1 v2 v3) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    pokeByteOff p 12 v3
    return ()

{-# LINE 116 "src/Bindings/GObject/TypeInformation.hsc" #-}

type C'GBaseInitFunc = FunPtr (C'gpointer -> IO ())
foreign import ccall "wrapper" mk'GBaseInitFunc
  :: (C'gpointer -> IO ()) -> IO C'GBaseInitFunc
foreign import ccall "dynamic" mK'GBaseInitFunc
  :: C'GBaseInitFunc -> (C'gpointer -> IO ())

{-# LINE 118 "src/Bindings/GObject/TypeInformation.hsc" #-}
type C'GBaseFinalizeFunc = FunPtr (C'gpointer -> IO ())
foreign import ccall "wrapper" mk'GBaseFinalizeFunc
  :: (C'gpointer -> IO ()) -> IO C'GBaseFinalizeFunc
foreign import ccall "dynamic" mK'GBaseFinalizeFunc
  :: C'GBaseFinalizeFunc -> (C'gpointer -> IO ())

{-# LINE 119 "src/Bindings/GObject/TypeInformation.hsc" #-}
type C'GClassInitFunc = FunPtr (C'gpointer -> C'gpointer -> IO ())
foreign import ccall "wrapper" mk'GClassInitFunc
  :: (C'gpointer -> C'gpointer -> IO ()) -> IO C'GClassInitFunc
foreign import ccall "dynamic" mK'GClassInitFunc
  :: C'GClassInitFunc -> (C'gpointer -> C'gpointer -> IO ())

{-# LINE 120 "src/Bindings/GObject/TypeInformation.hsc" #-}
type C'GClassFinalizeFunc = FunPtr (C'gpointer -> C'gpointer -> IO ())
foreign import ccall "wrapper" mk'GClassFinalizeFunc
  :: (C'gpointer -> C'gpointer -> IO ()) -> IO C'GClassFinalizeFunc
foreign import ccall "dynamic" mK'GClassFinalizeFunc
  :: C'GClassFinalizeFunc -> (C'gpointer -> C'gpointer -> IO ())

{-# LINE 121 "src/Bindings/GObject/TypeInformation.hsc" #-}
type C'GInstanceInitFunc = FunPtr (Ptr C'GTypeInstance -> C'gpointer -> IO ())
foreign import ccall "wrapper" mk'GInstanceInitFunc
  :: (Ptr C'GTypeInstance -> C'gpointer -> IO ()) -> IO C'GInstanceInitFunc
foreign import ccall "dynamic" mK'GInstanceInitFunc
  :: C'GInstanceInitFunc -> (Ptr C'GTypeInstance -> C'gpointer -> IO ())

{-# LINE 122 "src/Bindings/GObject/TypeInformation.hsc" #-}
type C'GInterfaceInitFunc = FunPtr (C'gpointer -> C'gpointer -> IO ())
foreign import ccall "wrapper" mk'GInterfaceInitFunc
  :: (C'gpointer -> C'gpointer -> IO ()) -> IO C'GInterfaceInitFunc
foreign import ccall "dynamic" mK'GInterfaceInitFunc
  :: C'GInterfaceInitFunc -> (C'gpointer -> C'gpointer -> IO ())

{-# LINE 123 "src/Bindings/GObject/TypeInformation.hsc" #-}
type C'GInterfaceFinalizeFunc = FunPtr (C'gpointer -> C'gpointer -> IO ())
foreign import ccall "wrapper" mk'GInterfaceFinalizeFunc
  :: (C'gpointer -> C'gpointer -> IO ()) -> IO C'GInterfaceFinalizeFunc
foreign import ccall "dynamic" mK'GInterfaceFinalizeFunc
  :: C'GInterfaceFinalizeFunc -> (C'gpointer -> C'gpointer -> IO ())

{-# LINE 124 "src/Bindings/GObject/TypeInformation.hsc" #-}
type C'GTypeClassCacheFunc = FunPtr (C'gpointer -> Ptr C'GTypeClass -> IO C'gboolean)
foreign import ccall "wrapper" mk'GTypeClassCacheFunc
  :: (C'gpointer -> Ptr C'GTypeClass -> IO C'gboolean) -> IO C'GTypeClassCacheFunc
foreign import ccall "dynamic" mK'GTypeClassCacheFunc
  :: C'GTypeClassCacheFunc -> (C'gpointer -> Ptr C'GTypeClass -> IO C'gboolean)

{-# LINE 125 "src/Bindings/GObject/TypeInformation.hsc" #-}

type C'GTypeFlags = CUInt

{-# LINE 127 "src/Bindings/GObject/TypeInformation.hsc" #-}

c'G_TYPE_FLAG_ABSTRACT = 16
c'G_TYPE_FLAG_ABSTRACT :: (Num a) => a

{-# LINE 129 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_FLAG_VALUE_ABSTRACT = 32
c'G_TYPE_FLAG_VALUE_ABSTRACT :: (Num a) => a

{-# LINE 130 "src/Bindings/GObject/TypeInformation.hsc" #-}

type C'GTypeFundamentalFlags = CUInt

{-# LINE 132 "src/Bindings/GObject/TypeInformation.hsc" #-}

c'G_TYPE_FLAG_CLASSED = 1
c'G_TYPE_FLAG_CLASSED :: (Num a) => a

{-# LINE 134 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_FLAG_INSTANTIATABLE = 2
c'G_TYPE_FLAG_INSTANTIATABLE :: (Num a) => a

{-# LINE 135 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_FLAG_DERIVABLE = 4
c'G_TYPE_FLAG_DERIVABLE :: (Num a) => a

{-# LINE 136 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_FLAG_DEEP_DERIVABLE = 8
c'G_TYPE_FLAG_DEEP_DERIVABLE :: (Num a) => a

{-# LINE 137 "src/Bindings/GObject/TypeInformation.hsc" #-}

foreign import ccall "g_type_register_static" c'g_type_register_static
  :: C'GType -> Ptr C'gchar -> Ptr C'GTypeInfo -> C'GTypeFlags -> IO (C'GType)
foreign import ccall "&g_type_register_static" p'g_type_register_static
  :: FunPtr (C'GType -> Ptr C'gchar -> Ptr C'GTypeInfo -> C'GTypeFlags -> IO (C'GType))

{-# LINE 139 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_register_static_simple" c'g_type_register_static_simple
  :: C'GType -> Ptr C'gchar -> C'guint -> C'GClassInitFunc -> C'guint -> C'GInstanceInitFunc -> C'GTypeFlags -> IO (C'GType)
foreign import ccall "&g_type_register_static_simple" p'g_type_register_static_simple
  :: FunPtr (C'GType -> Ptr C'gchar -> C'guint -> C'GClassInitFunc -> C'guint -> C'GInstanceInitFunc -> C'GTypeFlags -> IO (C'GType))

{-# LINE 140 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_register_dynamic" c'g_type_register_dynamic
  :: C'GType -> Ptr C'gchar -> Ptr C'GTypePlugin -> C'GTypeFlags -> IO (C'GType)
foreign import ccall "&g_type_register_dynamic" p'g_type_register_dynamic
  :: FunPtr (C'GType -> Ptr C'gchar -> Ptr C'GTypePlugin -> C'GTypeFlags -> IO (C'GType))

{-# LINE 141 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_register_fundamental" c'g_type_register_fundamental
  :: C'GType -> Ptr C'gchar -> Ptr C'GTypeInfo -> Ptr C'GTypeFundamentalInfo -> C'GTypeFlags -> IO (C'GType)
foreign import ccall "&g_type_register_fundamental" p'g_type_register_fundamental
  :: FunPtr (C'GType -> Ptr C'gchar -> Ptr C'GTypeInfo -> Ptr C'GTypeFundamentalInfo -> C'GTypeFlags -> IO (C'GType))

{-# LINE 142 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_add_interface_static" c'g_type_add_interface_static
  :: C'GType -> C'GType -> Ptr C'GInterfaceInfo -> IO ()
foreign import ccall "&g_type_add_interface_static" p'g_type_add_interface_static
  :: FunPtr (C'GType -> C'GType -> Ptr C'GInterfaceInfo -> IO ())

{-# LINE 143 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_add_interface_dynamic" c'g_type_add_interface_dynamic
  :: C'GType -> C'GType -> Ptr C'GTypePlugin -> IO ()
foreign import ccall "&g_type_add_interface_dynamic" p'g_type_add_interface_dynamic
  :: FunPtr (C'GType -> C'GType -> Ptr C'GTypePlugin -> IO ())

{-# LINE 144 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_interface_add_prerequisite" c'g_type_interface_add_prerequisite
  :: C'GType -> C'GType -> IO ()
foreign import ccall "&g_type_interface_add_prerequisite" p'g_type_interface_add_prerequisite
  :: FunPtr (C'GType -> C'GType -> IO ())

{-# LINE 145 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_get_plugin" c'g_type_get_plugin
  :: C'GType -> IO (Ptr C'GTypePlugin)
foreign import ccall "&g_type_get_plugin" p'g_type_get_plugin
  :: FunPtr (C'GType -> IO (Ptr C'GTypePlugin))

{-# LINE 146 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_interface_get_plugin" c'g_type_interface_get_plugin
  :: C'GType -> C'GType -> IO (Ptr C'GTypePlugin)
foreign import ccall "&g_type_interface_get_plugin" p'g_type_interface_get_plugin
  :: FunPtr (C'GType -> C'GType -> IO (Ptr C'GTypePlugin))

{-# LINE 147 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_fundamental_next" c'g_type_fundamental_next
  :: IO (C'GType)
foreign import ccall "&g_type_fundamental_next" p'g_type_fundamental_next
  :: FunPtr (IO (C'GType))

{-# LINE 148 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_add_class_cache_func" c'g_type_add_class_cache_func
  :: C'gpointer -> C'GTypeClassCacheFunc -> IO ()
foreign import ccall "&g_type_add_class_cache_func" p'g_type_add_class_cache_func
  :: FunPtr (C'gpointer -> C'GTypeClassCacheFunc -> IO ())

{-# LINE 149 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_remove_class_cache_func" c'g_type_remove_class_cache_func
  :: C'gpointer -> C'GTypeClassCacheFunc -> IO ()
foreign import ccall "&g_type_remove_class_cache_func" p'g_type_remove_class_cache_func
  :: FunPtr (C'gpointer -> C'GTypeClassCacheFunc -> IO ())

{-# LINE 150 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_class_unref_uncached" c'g_type_class_unref_uncached
  :: C'gpointer -> IO ()
foreign import ccall "&g_type_class_unref_uncached" p'g_type_class_unref_uncached
  :: FunPtr (C'gpointer -> IO ())

{-# LINE 151 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_add_interface_check" c'g_type_add_interface_check
  :: C'gpointer -> C'GTypeInterfaceCheckFunc -> IO ()
foreign import ccall "&g_type_add_interface_check" p'g_type_add_interface_check
  :: FunPtr (C'gpointer -> C'GTypeInterfaceCheckFunc -> IO ())

{-# LINE 152 "src/Bindings/GObject/TypeInformation.hsc" #-}
foreign import ccall "g_type_remove_interface_check" c'g_type_remove_interface_check
  :: C'gpointer -> C'GTypeInterfaceCheckFunc -> IO ()
foreign import ccall "&g_type_remove_interface_check" p'g_type_remove_interface_check
  :: FunPtr (C'gpointer -> C'GTypeInterfaceCheckFunc -> IO ())

{-# LINE 153 "src/Bindings/GObject/TypeInformation.hsc" #-}

type C'GTypeInterfaceCheckFunc = FunPtr (C'gpointer -> C'gpointer -> IO ())
foreign import ccall "wrapper" mk'GTypeInterfaceCheckFunc
  :: (C'gpointer -> C'gpointer -> IO ()) -> IO C'GTypeInterfaceCheckFunc
foreign import ccall "dynamic" mK'GTypeInterfaceCheckFunc
  :: C'GTypeInterfaceCheckFunc -> (C'gpointer -> C'gpointer -> IO ())

{-# LINE 155 "src/Bindings/GObject/TypeInformation.hsc" #-}

c'G_TYPE_INVALID = 0
c'G_TYPE_INVALID :: (Num a) => a

{-# LINE 157 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_NONE = 4
c'G_TYPE_NONE :: (Num a) => a

{-# LINE 158 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_INTERFACE = 8
c'G_TYPE_INTERFACE :: (Num a) => a

{-# LINE 159 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_CHAR = 12
c'G_TYPE_CHAR :: (Num a) => a

{-# LINE 160 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_UCHAR = 16
c'G_TYPE_UCHAR :: (Num a) => a

{-# LINE 161 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_BOOLEAN = 20
c'G_TYPE_BOOLEAN :: (Num a) => a

{-# LINE 162 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_INT = 24
c'G_TYPE_INT :: (Num a) => a

{-# LINE 163 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_UINT = 28
c'G_TYPE_UINT :: (Num a) => a

{-# LINE 164 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_LONG = 32
c'G_TYPE_LONG :: (Num a) => a

{-# LINE 165 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_ULONG = 36
c'G_TYPE_ULONG :: (Num a) => a

{-# LINE 166 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_INT64 = 40
c'G_TYPE_INT64 :: (Num a) => a

{-# LINE 167 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_UINT64 = 44
c'G_TYPE_UINT64 :: (Num a) => a

{-# LINE 168 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_ENUM = 48
c'G_TYPE_ENUM :: (Num a) => a

{-# LINE 169 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_FLAGS = 52
c'G_TYPE_FLAGS :: (Num a) => a

{-# LINE 170 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_FLOAT = 56
c'G_TYPE_FLOAT :: (Num a) => a

{-# LINE 171 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_DOUBLE = 60
c'G_TYPE_DOUBLE :: (Num a) => a

{-# LINE 172 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_STRING = 64
c'G_TYPE_STRING :: (Num a) => a

{-# LINE 173 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_POINTER = 68
c'G_TYPE_POINTER :: (Num a) => a

{-# LINE 174 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_BOXED = 72
c'G_TYPE_BOXED :: (Num a) => a

{-# LINE 175 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_PARAM = 76
c'G_TYPE_PARAM :: (Num a) => a

{-# LINE 176 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_OBJECT = 80
c'G_TYPE_OBJECT :: (Num a) => a

{-# LINE 177 "src/Bindings/GObject/TypeInformation.hsc" #-}
-- G_TYPE_GTYPE
c'G_TYPE_RESERVED_GLIB_FIRST = 21
c'G_TYPE_RESERVED_GLIB_FIRST :: (Num a) => a

{-# LINE 179 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_RESERVED_GLIB_LAST = 31
c'G_TYPE_RESERVED_GLIB_LAST :: (Num a) => a

{-# LINE 180 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_RESERVED_BSE_FIRST = 32
c'G_TYPE_RESERVED_BSE_FIRST :: (Num a) => a

{-# LINE 181 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_RESERVED_BSE_LAST = 48
c'G_TYPE_RESERVED_BSE_LAST :: (Num a) => a

{-# LINE 182 "src/Bindings/GObject/TypeInformation.hsc" #-}
c'G_TYPE_RESERVED_USER_FIRST = 49
c'G_TYPE_RESERVED_USER_FIRST :: (Num a) => a

{-# LINE 183 "src/Bindings/GObject/TypeInformation.hsc" #-}