{-# LINE 1 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}

{-# LINE 2 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}

{-# LINE 3 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}

-- | <http://library.gnome.org/devel/glib/stable/glib-Singly-Linked-Lists.html>

module Bindings.GLib.DataTypes.SinglyLinkedLists where
import Bindings.GLib.DataTypes.DoublyLinkedLists
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 9 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
import Bindings.GLib.Fundamentals

data C'GSList = C'GSList{
{-# LINE 12 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}

  c'GSList'data :: C'gpointer
{-# LINE 13 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
,
  c'GSList'next :: Ptr C'GSList
{-# LINE 14 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}

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

{-# LINE 15 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}

foreign import ccall "g_slist_alloc" c'g_slist_alloc
  :: IO (Ptr C'GSList)
foreign import ccall "&g_slist_alloc" p'g_slist_alloc
  :: FunPtr (IO (Ptr C'GSList))

{-# LINE 17 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_append" c'g_slist_append
  :: Ptr C'GSList -> C'gpointer -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_append" p'g_slist_append
  :: FunPtr (Ptr C'GSList -> C'gpointer -> IO (Ptr C'GSList))

{-# LINE 18 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_prepend" c'g_slist_prepend
  :: Ptr C'GSList -> C'gpointer -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_prepend" p'g_slist_prepend
  :: FunPtr (Ptr C'GSList -> C'gpointer -> IO (Ptr C'GSList))

{-# LINE 19 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_insert" c'g_slist_insert
  :: Ptr C'GSList -> C'gpointer -> C'gint -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_insert" p'g_slist_insert
  :: FunPtr (Ptr C'GSList -> C'gpointer -> C'gint -> IO (Ptr C'GSList))

{-# LINE 20 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_insert_before" c'g_slist_insert_before
  :: Ptr C'GSList -> Ptr C'GSList -> C'gpointer -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_insert_before" p'g_slist_insert_before
  :: FunPtr (Ptr C'GSList -> Ptr C'GSList -> C'gpointer -> IO (Ptr C'GSList))

{-# LINE 21 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_insert_sorted" c'g_slist_insert_sorted
  :: Ptr C'GSList -> C'gpointer -> C'GCompareFunc -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_insert_sorted" p'g_slist_insert_sorted
  :: FunPtr (Ptr C'GSList -> C'gpointer -> C'GCompareFunc -> IO (Ptr C'GSList))

{-# LINE 22 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_remove" c'g_slist_remove
  :: Ptr C'GSList -> C'gconstpointer -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_remove" p'g_slist_remove
  :: FunPtr (Ptr C'GSList -> C'gconstpointer -> IO (Ptr C'GSList))

{-# LINE 23 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_remove_link" c'g_slist_remove_link
  :: Ptr C'GSList -> Ptr C'GSList -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_remove_link" p'g_slist_remove_link
  :: FunPtr (Ptr C'GSList -> Ptr C'GSList -> IO (Ptr C'GSList))

{-# LINE 24 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_delete_link" c'g_slist_delete_link
  :: Ptr C'GSList -> Ptr C'GSList -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_delete_link" p'g_slist_delete_link
  :: FunPtr (Ptr C'GSList -> Ptr C'GSList -> IO (Ptr C'GSList))

{-# LINE 25 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_remove_all" c'g_slist_remove_all
  :: Ptr C'GSList -> C'gconstpointer -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_remove_all" p'g_slist_remove_all
  :: FunPtr (Ptr C'GSList -> C'gconstpointer -> IO (Ptr C'GSList))

{-# LINE 26 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_free" c'g_slist_free
  :: Ptr C'GSList -> IO ()
foreign import ccall "&g_slist_free" p'g_slist_free
  :: FunPtr (Ptr C'GSList -> IO ())

{-# LINE 27 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_free_1" c'g_slist_free_1
  :: Ptr C'GSList -> IO ()
foreign import ccall "&g_slist_free_1" p'g_slist_free_1
  :: FunPtr (Ptr C'GSList -> IO ())

{-# LINE 28 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}

foreign import ccall "inline_g_slist_free1" c'g_slist_free1
  :: Ptr C'GSList -> IO ()

{-# LINE 30 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}

foreign import ccall "g_slist_length" c'g_slist_length
  :: Ptr C'GSList -> IO C'guint
foreign import ccall "&g_slist_length" p'g_slist_length
  :: FunPtr (Ptr C'GSList -> IO C'guint)

{-# LINE 32 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_copy" c'g_slist_copy
  :: Ptr C'GSList -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_copy" p'g_slist_copy
  :: FunPtr (Ptr C'GSList -> IO (Ptr C'GSList))

{-# LINE 33 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_reverse" c'g_slist_reverse
  :: Ptr C'GSList -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_reverse" p'g_slist_reverse
  :: FunPtr (Ptr C'GSList -> IO (Ptr C'GSList))

{-# LINE 34 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_insert_sorted_with_data" c'g_slist_insert_sorted_with_data
  :: Ptr C'GSList -> C'gpointer -> C'GCompareDataFunc -> C'gpointer -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_insert_sorted_with_data" p'g_slist_insert_sorted_with_data
  :: FunPtr (Ptr C'GSList -> C'gpointer -> C'GCompareDataFunc -> C'gpointer -> IO (Ptr C'GSList))

{-# LINE 35 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_sort" c'g_slist_sort
  :: Ptr C'GSList -> C'GCompareFunc -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_sort" p'g_slist_sort
  :: FunPtr (Ptr C'GSList -> C'GCompareFunc -> IO (Ptr C'GSList))

{-# LINE 36 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_sort_with_data" c'g_slist_sort_with_data
  :: Ptr C'GSList -> C'GCompareDataFunc -> C'gpointer -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_sort_with_data" p'g_slist_sort_with_data
  :: FunPtr (Ptr C'GSList -> C'GCompareDataFunc -> C'gpointer -> IO (Ptr C'GSList))

{-# LINE 37 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_concat" c'g_slist_concat
  :: Ptr C'GSList -> Ptr C'GSList -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_concat" p'g_slist_concat
  :: FunPtr (Ptr C'GSList -> Ptr C'GSList -> IO (Ptr C'GSList))

{-# LINE 38 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_foreach" c'g_slist_foreach
  :: Ptr C'GSList -> C'GFunc -> C'gpointer -> IO ()
foreign import ccall "&g_slist_foreach" p'g_slist_foreach
  :: FunPtr (Ptr C'GSList -> C'GFunc -> C'gpointer -> IO ())

{-# LINE 39 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_last" c'g_slist_last
  :: Ptr C'GSList -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_last" p'g_slist_last
  :: FunPtr (Ptr C'GSList -> IO (Ptr C'GSList))

{-# LINE 40 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}

foreign import ccall "inline_g_slist_next" c'g_slist_next
  :: Ptr C'GSList -> IO (Ptr C'GSList)

{-# LINE 42 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}

foreign import ccall "g_slist_nth" c'g_slist_nth
  :: Ptr C'GSList -> C'guint -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_nth" p'g_slist_nth
  :: FunPtr (Ptr C'GSList -> C'guint -> IO (Ptr C'GSList))

{-# LINE 44 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_nth_data" c'g_slist_nth_data
  :: Ptr C'GSList -> C'guint -> IO C'gpointer
foreign import ccall "&g_slist_nth_data" p'g_slist_nth_data
  :: FunPtr (Ptr C'GSList -> C'guint -> IO C'gpointer)

{-# LINE 45 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_find" c'g_slist_find
  :: Ptr C'GSList -> C'gconstpointer -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_find" p'g_slist_find
  :: FunPtr (Ptr C'GSList -> C'gconstpointer -> IO (Ptr C'GSList))

{-# LINE 46 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_find_custom" c'g_slist_find_custom
  :: Ptr C'GSList -> C'gconstpointer -> C'GCompareFunc -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_find_custom" p'g_slist_find_custom
  :: FunPtr (Ptr C'GSList -> C'gconstpointer -> C'GCompareFunc -> IO (Ptr C'GSList))

{-# LINE 47 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_position" c'g_slist_position
  :: Ptr C'GSList -> Ptr C'GSList -> IO C'gint
foreign import ccall "&g_slist_position" p'g_slist_position
  :: FunPtr (Ptr C'GSList -> Ptr C'GSList -> IO C'gint)

{-# LINE 48 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_index" c'g_slist_index
  :: Ptr C'GSList -> C'gconstpointer -> IO C'gint
foreign import ccall "&g_slist_index" p'g_slist_index
  :: FunPtr (Ptr C'GSList -> C'gconstpointer -> IO C'gint)

{-# LINE 49 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_push_allocator" c'g_slist_push_allocator
  :: C'gpointer -> IO ()
foreign import ccall "&g_slist_push_allocator" p'g_slist_push_allocator
  :: FunPtr (C'gpointer -> IO ())

{-# LINE 50 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}
foreign import ccall "g_slist_pop_allocator" c'g_slist_pop_allocator
  :: IO ()
foreign import ccall "&g_slist_pop_allocator" p'g_slist_pop_allocator
  :: FunPtr (IO ())

{-# LINE 51 "src/Bindings/GLib/DataTypes/SinglyLinkedLists.hsc" #-}