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

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

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

-- | <http://library.gnome.org/devel/gobject/stable/gobject-Boxed-Types.html>

module Bindings.GObject.BoxedTypes 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/BoxedTypes.hsc" #-}
import Bindings.GLib.Fundamentals
import Bindings.GObject.TypeInformation

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

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

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

foreign import ccall "g_boxed_copy" c'g_boxed_copy
  :: C'GType -> C'gconstpointer -> IO C'gpointer
foreign import ccall "&g_boxed_copy" p'g_boxed_copy
  :: FunPtr (C'GType -> C'gconstpointer -> IO C'gpointer)

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

{-# LINE 16 "src/Bindings/GObject/BoxedTypes.hsc" #-}
foreign import ccall "g_boxed_type_register_static" c'g_boxed_type_register_static
  :: Ptr C'gchar -> C'GBoxedCopyFunc -> C'GBoxedFreeFunc -> IO C'GType
foreign import ccall "&g_boxed_type_register_static" p'g_boxed_type_register_static
  :: FunPtr (Ptr C'gchar -> C'GBoxedCopyFunc -> C'GBoxedFreeFunc -> IO C'GType)

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

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

foreign import ccall "inline_G_TYPE_HASH_TABLE" c'G_TYPE_HASH_TABLE
  :: IO C'GType

{-# LINE 20 "src/Bindings/GObject/BoxedTypes.hsc" #-}
foreign import ccall "inline_G_TYPE_DATE" c'G_TYPE_DATE
  :: IO C'GType

{-# LINE 21 "src/Bindings/GObject/BoxedTypes.hsc" #-}
foreign import ccall "inline_G_TYPE_GSTRING" c'G_TYPE_GSTRING
  :: IO C'GType

{-# LINE 22 "src/Bindings/GObject/BoxedTypes.hsc" #-}
foreign import ccall "inline_G_TYPE_STRV" c'G_TYPE_STRV
  :: IO C'GType

{-# LINE 23 "src/Bindings/GObject/BoxedTypes.hsc" #-}
foreign import ccall "inline_G_TYPE_REGEX" c'G_TYPE_REGEX
  :: IO C'GType

{-# LINE 24 "src/Bindings/GObject/BoxedTypes.hsc" #-}
foreign import ccall "inline_G_TYPE_ARRAY" c'G_TYPE_ARRAY
  :: IO C'GType

{-# LINE 25 "src/Bindings/GObject/BoxedTypes.hsc" #-}
foreign import ccall "inline_G_TYPE_BYTE_ARRAY" c'G_TYPE_BYTE_ARRAY
  :: IO C'GType

{-# LINE 26 "src/Bindings/GObject/BoxedTypes.hsc" #-}
foreign import ccall "inline_G_TYPE_PTR_ARRAY" c'G_TYPE_PTR_ARRAY
  :: IO C'GType

{-# LINE 27 "src/Bindings/GObject/BoxedTypes.hsc" #-}

type C'GStrv = Ptr (Ptr C'gchar)

{-# LINE 29 "src/Bindings/GObject/BoxedTypes.hsc" #-}