'       FreeBasic header file, auto-generated by
'                  ### GirToBac ###
' LGPLv2.1 (C) by Thomas[ dot }Freiherr[ at ]gmx[ dot }net
' Auto-translated from file Gee-1.0.gir
#INCLUDE ONCE "_GirToBac-0.0.bi"

' Repository version 1.2
#INCLUDE ONCE "GObject-2.0.bi"
#INCLUDE ONCE "GLib-2.0.bi"
TYPE AS _GeeAbstractCollection GeeAbstractCollection
TYPE AS _GeeAbstractCollectionClass GeeAbstractCollectionClass
TYPE AS _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate
TYPE AS _GeeAbstractList GeeAbstractList
TYPE AS _GeeAbstractListClass GeeAbstractListClass
TYPE AS _GeeAbstractListPrivate GeeAbstractListPrivate
TYPE AS _GeeAbstractMap GeeAbstractMap
TYPE AS _GeeAbstractMapClass GeeAbstractMapClass
TYPE AS _GeeAbstractMapPrivate GeeAbstractMapPrivate
TYPE AS _GeeAbstractMultiMap GeeAbstractMultiMap
TYPE AS _GeeAbstractMultiMapClass GeeAbstractMultiMapClass
TYPE AS _GeeAbstractMultiMapPrivate GeeAbstractMultiMapPrivate
TYPE AS _GeeAbstractMultiSet GeeAbstractMultiSet
TYPE AS _GeeAbstractMultiSetClass GeeAbstractMultiSetClass
TYPE AS _GeeAbstractMultiSetPrivate GeeAbstractMultiSetPrivate
TYPE AS _GeeAbstractQueue GeeAbstractQueue
TYPE AS _GeeAbstractQueueClass GeeAbstractQueueClass
TYPE AS _GeeAbstractQueuePrivate GeeAbstractQueuePrivate
TYPE AS _GeeAbstractSet GeeAbstractSet
TYPE AS _GeeAbstractSetClass GeeAbstractSetClass
TYPE AS _GeeAbstractSetPrivate GeeAbstractSetPrivate
TYPE AS _GeeArrayList GeeArrayList
TYPE AS _GeeArrayListClass GeeArrayListClass
TYPE AS _GeeArrayListPrivate GeeArrayListPrivate
TYPE AS _GeeHashMap GeeHashMap
TYPE AS _GeeHashMapClass GeeHashMapClass
TYPE AS _GeeHashMapPrivate GeeHashMapPrivate
TYPE AS _GeeHashMultiMap GeeHashMultiMap
TYPE AS _GeeHashMultiMapClass GeeHashMultiMapClass
TYPE AS _GeeHashMultiMapPrivate GeeHashMultiMapPrivate
TYPE AS _GeeHashMultiSet GeeHashMultiSet
TYPE AS _GeeHashMultiSetClass GeeHashMultiSetClass
TYPE AS _GeeHashMultiSetPrivate GeeHashMultiSetPrivate
TYPE AS _GeeHashSet GeeHashSet
TYPE AS _GeeHashSetClass GeeHashSetClass
TYPE AS _GeeHashSetPrivate GeeHashSetPrivate
TYPE AS _GeeLinkedList GeeLinkedList
TYPE AS _GeeLinkedListClass GeeLinkedListClass
TYPE AS _GeeLinkedListPrivate GeeLinkedListPrivate
TYPE AS _GeePriorityQueue GeePriorityQueue
TYPE AS _GeePriorityQueueClass GeePriorityQueueClass
TYPE AS _GeePriorityQueuePrivate GeePriorityQueuePrivate
TYPE AS _GeeTreeMap GeeTreeMap
TYPE AS _GeeTreeMapClass GeeTreeMapClass
TYPE AS _GeeTreeMapPrivate GeeTreeMapPrivate
TYPE AS _GeeTreeMultiMap GeeTreeMultiMap
TYPE AS _GeeTreeMultiMapClass GeeTreeMultiMapClass
TYPE AS _GeeTreeMultiMapPrivate GeeTreeMultiMapPrivate
TYPE AS _GeeTreeMultiSet GeeTreeMultiSet
TYPE AS _GeeTreeMultiSetClass GeeTreeMultiSetClass
TYPE AS _GeeTreeMultiSetPrivate GeeTreeMultiSetPrivate
TYPE AS _GeeTreeSet GeeTreeSet
TYPE AS _GeeTreeSetClass GeeTreeSetClass
TYPE AS _GeeTreeSetPrivate GeeTreeSetPrivate
TYPE AS _GeeBidirIterator GeeBidirIterator
TYPE AS _GeeBidirIteratorIface GeeBidirIteratorIface
TYPE AS _GeeCollection GeeCollection
TYPE AS _GeeCollectionIface GeeCollectionIface
TYPE AS _GeeComparable GeeComparable
TYPE AS _GeeComparableIface GeeComparableIface
TYPE AS _GeeDeque GeeDeque
TYPE AS _GeeDequeIface GeeDequeIface
TYPE AS _GeeIterable GeeIterable
TYPE AS _GeeIterableIface GeeIterableIface
TYPE AS _GeeIterator GeeIterator
TYPE AS _GeeIteratorIface GeeIteratorIface
TYPE AS _GeeList GeeList
TYPE AS _GeeListIface GeeListIface
TYPE AS _GeeListIterator GeeListIterator
TYPE AS _GeeListIteratorIface GeeListIteratorIface
TYPE AS _GeeMap GeeMap
TYPE AS _GeeMapIface GeeMapIface
TYPE AS _GeeMapEntry GeeMapEntry
TYPE AS _GeeMapEntryClass GeeMapEntryClass
TYPE AS _GeeMapEntryPrivate GeeMapEntryPrivate
TYPE AS _GeeMapIterator GeeMapIterator
TYPE AS _GeeMapIteratorIface GeeMapIteratorIface
TYPE AS _GeeMultiMap GeeMultiMap
TYPE AS _GeeMultiMapIface GeeMultiMapIface
TYPE AS _GeeMultiSet GeeMultiSet
TYPE AS _GeeMultiSetIface GeeMultiSetIface
TYPE AS _GeeQueue GeeQueue
#DEFINE GEE_QUEUE_UNBOUNDED_CAPACITY -1
TYPE AS _GeeQueueIface GeeQueueIface
TYPE AS _GeeSet GeeSet
TYPE AS _GeeSetIface GeeSetIface
TYPE AS _GeeSortedSet GeeSortedSet
TYPE AS _GeeSortedSetIface GeeSortedSetIface
EXTERN "C"
' PASS X

' PASS3

TYPE _GeeAbstractCollection
  AS GObject parent_instance
  AS GeeAbstractCollectionPrivate PTR priv
END TYPE
DECLARE FUNCTION gee_abstract_collection_get_type() AS GType
#DEFINE GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type())
#DEFINE GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection))
#DEFINE GEE_ABSTRACT_COLLECTION_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass))
#DEFINE GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_ABSTRACT_COLLECTION))
#DEFINE GEE_IS_CLASS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_ABSTRACT_COLLECTION))
#DEFINE GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass))
DECLARE FUNCTION gee_abstract_collection_contains(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_abstract_collection_add(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_abstract_collection_remove(BYVAL AS gpointer) AS gboolean
DECLARE SUB gee_abstract_collection_clear()
DECLARE FUNCTION gee_abstract_collection_to_array(BYVAL AS gint) AS gpointer
DECLARE FUNCTION gee_abstract_collection_add_all(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_abstract_collection_contains_all(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_abstract_collection_remove_all(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_abstract_collection_retain_all(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_abstract_collection_iterator() AS gpointer
TYPE _GeeAbstractCollectionClass
  AS GObjectClass parent_class
  contains AS FUNCTION CDECL(BYVAL AS GeeAbstractCollection PTR, BYVAL AS gpointer) AS gboolean
  add AS FUNCTION CDECL(BYVAL AS GeeAbstractCollection PTR, BYVAL AS gpointer) AS gboolean
  remove AS FUNCTION CDECL(BYVAL AS GeeAbstractCollection PTR, BYVAL AS gpointer) AS gboolean
  clear AS SUB CDECL(BYVAL AS GeeAbstractCollection PTR)
  to_array AS FUNCTION CDECL(BYVAL AS GeeAbstractCollection PTR, BYVAL AS gint) AS gpointer
  add_all AS FUNCTION CDECL(BYVAL AS GeeAbstractCollection PTR, BYVAL AS gpointer) AS gboolean
  contains_all AS FUNCTION CDECL(BYVAL AS GeeAbstractCollection PTR, BYVAL AS gpointer) AS gboolean
  remove_all AS FUNCTION CDECL(BYVAL AS GeeAbstractCollection PTR, BYVAL AS gpointer) AS gboolean
  retain_all AS FUNCTION CDECL(BYVAL AS GeeAbstractCollection PTR, BYVAL AS gpointer) AS gboolean
  iterator AS FUNCTION CDECL(BYVAL AS GeeAbstractCollection PTR) AS gpointer
END TYPE
TYPE _GeeAbstractList
  AS GeeAbstractCollection parent_instance
  AS GeeAbstractListPrivate PTR priv
END TYPE
DECLARE FUNCTION gee_abstract_list_get_type() AS GType
#DEFINE GEE_TYPE_ABSTRACT_LIST (gee_abstract_list_get_type())
#DEFINE GEE_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractList))
#DEFINE GEE_ABSTRACT_LIST_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass))
#DEFINE GEE_IS_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_ABSTRACT_LIST))
#DEFINE GEE_IS_CLASS_ABSTRACT_LIST(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_ABSTRACT_LIST))
#DEFINE GEE_ABSTRACT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass))
DECLARE FUNCTION gee_abstract_list_list_iterator() AS gpointer
DECLARE FUNCTION gee_abstract_list_get(BYVAL AS gint) AS gpointer
DECLARE SUB gee_abstract_list_set(BYVAL AS gint, BYVAL AS gpointer)
DECLARE FUNCTION gee_abstract_list_index_of(BYVAL AS gpointer) AS gint
DECLARE SUB gee_abstract_list_insert(BYVAL AS gint, BYVAL AS gpointer)
DECLARE FUNCTION gee_abstract_list_remove_at(BYVAL AS gint) AS gpointer
DECLARE FUNCTION gee_abstract_list_slice(BYVAL AS gint, BYVAL AS gint) AS gpointer
DECLARE FUNCTION gee_abstract_list_first() AS gpointer
DECLARE FUNCTION gee_abstract_list_last() AS gpointer
DECLARE SUB gee_abstract_list_insert_all(BYVAL AS gint, BYVAL AS gpointer)
TYPE _GeeAbstractListClass
  AS GeeAbstractCollectionClass parent_class
  list_iterator AS FUNCTION CDECL(BYVAL AS GeeAbstractList PTR) AS gpointer
  get AS FUNCTION CDECL(BYVAL AS GeeAbstractList PTR, BYVAL AS gint) AS gpointer
  set AS SUB CDECL(BYVAL AS GeeAbstractList PTR, BYVAL AS gint, BYVAL AS gpointer)
  index_of AS FUNCTION CDECL(BYVAL AS GeeAbstractList PTR, BYVAL AS gpointer) AS gint
  insert AS SUB CDECL(BYVAL AS GeeAbstractList PTR, BYVAL AS gint, BYVAL AS gpointer)
  remove_at AS FUNCTION CDECL(BYVAL AS GeeAbstractList PTR, BYVAL AS gint) AS gpointer
  slice AS FUNCTION CDECL(BYVAL AS GeeAbstractList PTR, BYVAL AS gint, BYVAL AS gint) AS gpointer
  first AS FUNCTION CDECL(BYVAL AS GeeAbstractList PTR) AS gpointer
  last AS FUNCTION CDECL(BYVAL AS GeeAbstractList PTR) AS gpointer
  insert_all AS SUB CDECL(BYVAL AS GeeAbstractList PTR, BYVAL AS gint, BYVAL AS gpointer)
END TYPE
TYPE _GeeAbstractMap
  AS GObject parent_instance
  AS GeeAbstractMapPrivate PTR priv
END TYPE
DECLARE FUNCTION gee_abstract_map_get_type() AS GType
#DEFINE GEE_TYPE_ABSTRACT_MAP (gee_abstract_map_get_type())
#DEFINE GEE_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap))
#DEFINE GEE_ABSTRACT_MAP_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass))
#DEFINE GEE_IS_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_ABSTRACT_MAP))
#DEFINE GEE_IS_CLASS_ABSTRACT_MAP(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_ABSTRACT_MAP))
#DEFINE GEE_ABSTRACT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass))
DECLARE FUNCTION gee_abstract_map_has_key(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_abstract_map_has(BYVAL AS gpointer, BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_abstract_map_get(BYVAL AS gpointer) AS gpointer
DECLARE SUB gee_abstract_map_set(BYVAL AS gpointer, BYVAL AS gpointer)
DECLARE FUNCTION gee_abstract_map_unset(BYVAL AS gpointer, BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_abstract_map_map_iterator() AS gpointer
DECLARE SUB gee_abstract_map_clear()
DECLARE SUB gee_abstract_map_set_all(BYVAL AS gpointer)
DECLARE FUNCTION gee_abstract_map_unset_all(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_abstract_map_has_all(BYVAL AS gpointer) AS gboolean
TYPE _GeeAbstractMapClass
  AS GObjectClass parent_class
  has_key AS FUNCTION CDECL(BYVAL AS GeeAbstractMap PTR, BYVAL AS gpointer) AS gboolean
  has AS FUNCTION CDECL(BYVAL AS GeeAbstractMap PTR, BYVAL AS gpointer, BYVAL AS gpointer) AS gboolean
  get AS FUNCTION CDECL(BYVAL AS GeeAbstractMap PTR, BYVAL AS gpointer) AS gpointer
  set AS SUB CDECL(BYVAL AS GeeAbstractMap PTR, BYVAL AS gpointer, BYVAL AS gpointer)
  unset AS FUNCTION CDECL(BYVAL AS GeeAbstractMap PTR, BYVAL AS gpointer, BYVAL AS gpointer) AS gboolean
  map_iterator AS FUNCTION CDECL(BYVAL AS GeeAbstractMap PTR) AS gpointer
  clear AS SUB CDECL(BYVAL AS GeeAbstractMap PTR)
  set_all AS SUB CDECL(BYVAL AS GeeAbstractMap PTR, BYVAL AS gpointer)
  unset_all AS FUNCTION CDECL(BYVAL AS GeeAbstractMap PTR, BYVAL AS gpointer) AS gboolean
  has_all AS FUNCTION CDECL(BYVAL AS GeeAbstractMap PTR, BYVAL AS gpointer) AS gboolean
END TYPE
TYPE _GeeAbstractMultiMap
  AS GObject parent_instance
  AS GeeAbstractMultiMapPrivate PTR priv
  AS gpointer _storage_map
END TYPE
DECLARE FUNCTION gee_abstract_multi_map_get_type() AS GType
#DEFINE GEE_TYPE_ABSTRACT_MULTI_MAP (gee_abstract_multi_map_get_type())
#DEFINE GEE_ABSTRACT_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMap))
#DEFINE GEE_ABSTRACT_MULTI_MAP_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMapClass))
#DEFINE GEE_IS_ABSTRACT_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_ABSTRACT_MULTI_MAP))
#DEFINE GEE_IS_CLASS_ABSTRACT_MULTI_MAP(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_ABSTRACT_MULTI_MAP))
#DEFINE GEE_ABSTRACT_MULTI_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMapClass))
DECLARE FUNCTION gee_abstract_multi_map_create_value_storage() AS gpointer
DECLARE FUNCTION gee_abstract_multi_map_create_multi_key_set() AS gpointer
DECLARE FUNCTION gee_abstract_multi_map_get_value_equal_func(BYVAL AS any /'void'/ PTR, BYVAL AS GDestroyNotify) AS GEqualFunc
TYPE _GeeAbstractMultiMapClass
  AS GObjectClass parent_class
  create_value_storage AS FUNCTION CDECL(BYVAL AS GeeAbstractMultiMap PTR) AS gpointer
  create_multi_key_set AS FUNCTION CDECL(BYVAL AS GeeAbstractMultiMap PTR) AS gpointer
  get_value_equal_func AS FUNCTION CDECL(BYVAL AS GeeAbstractMultiMap PTR, BYVAL AS any /'void'/ PTR, BYVAL AS GDestroyNotify) AS GEqualFunc
END TYPE
TYPE _GeeAbstractMultiSet
  AS GeeAbstractCollection parent_instance
  AS GeeAbstractMultiSetPrivate PTR priv
  AS gint _storage_map
END TYPE
DECLARE FUNCTION gee_abstract_multi_set_get_type() AS GType
#DEFINE GEE_TYPE_ABSTRACT_MULTI_SET (gee_abstract_multi_set_get_type())
#DEFINE GEE_ABSTRACT_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSet))
#DEFINE GEE_ABSTRACT_MULTI_SET_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSetClass))
#DEFINE GEE_IS_ABSTRACT_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_ABSTRACT_MULTI_SET))
#DEFINE GEE_IS_CLASS_ABSTRACT_MULTI_SET(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_ABSTRACT_MULTI_SET))
#DEFINE GEE_ABSTRACT_MULTI_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSetClass))
TYPE _GeeAbstractMultiSetClass
  AS GeeAbstractCollectionClass parent_class
END TYPE
TYPE _GeeAbstractQueue
  AS GeeAbstractCollection parent_instance
  AS GeeAbstractQueuePrivate PTR priv
END TYPE
DECLARE FUNCTION gee_abstract_queue_get_type() AS GType
#DEFINE GEE_TYPE_ABSTRACT_QUEUE (gee_abstract_queue_get_type())
#DEFINE GEE_ABSTRACT_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_ABSTRACT_QUEUE, GeeAbstractQueue))
#DEFINE GEE_ABSTRACT_QUEUE_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_ABSTRACT_QUEUE, GeeAbstractQueueClass))
#DEFINE GEE_IS_ABSTRACT_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_ABSTRACT_QUEUE))
#DEFINE GEE_IS_CLASS_ABSTRACT_QUEUE(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_ABSTRACT_QUEUE))
#DEFINE GEE_ABSTRACT_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_ABSTRACT_QUEUE, GeeAbstractQueueClass))
DECLARE FUNCTION gee_abstract_queue_offer(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_abstract_queue_peek() AS gpointer
DECLARE FUNCTION gee_abstract_queue_poll() AS gpointer
DECLARE FUNCTION gee_abstract_queue_drain(BYVAL AS gpointer, BYVAL AS gint) AS gint
TYPE _GeeAbstractQueueClass
  AS GeeAbstractCollectionClass parent_class
  offer AS FUNCTION CDECL(BYVAL AS GeeAbstractQueue PTR, BYVAL AS gpointer) AS gboolean
  peek AS FUNCTION CDECL(BYVAL AS GeeAbstractQueue PTR) AS gpointer
  poll AS FUNCTION CDECL(BYVAL AS GeeAbstractQueue PTR) AS gpointer
  drain AS FUNCTION CDECL(BYVAL AS GeeAbstractQueue PTR, BYVAL AS gpointer, BYVAL AS gint) AS gint
END TYPE
TYPE _GeeAbstractSet
  AS GeeAbstractCollection parent_instance
  AS GeeAbstractSetPrivate PTR priv
END TYPE
DECLARE FUNCTION gee_abstract_set_get_type() AS GType
#DEFINE GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type())
#DEFINE GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet))
#DEFINE GEE_ABSTRACT_SET_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass))
#DEFINE GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_ABSTRACT_SET))
#DEFINE GEE_IS_CLASS_ABSTRACT_SET(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_ABSTRACT_SET))
#DEFINE GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass))
TYPE _GeeAbstractSetClass
  AS GeeAbstractCollectionClass parent_class
END TYPE
TYPE _GeeArrayList
  AS GeeAbstractList parent_instance
  AS GeeArrayListPrivate PTR priv
END TYPE
DECLARE FUNCTION gee_array_list_get_type() AS GType
#DEFINE GEE_TYPE_ARRAY_LIST (gee_array_list_get_type())
#DEFINE GEE_ARRAY_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_ARRAY_LIST, GeeArrayList))
#DEFINE GEE_ARRAY_LIST_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_ARRAY_LIST, GeeArrayListClass))
#DEFINE GEE_IS_ARRAY_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_ARRAY_LIST))
#DEFINE GEE_IS_CLASS_ARRAY_LIST(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_ARRAY_LIST))
#DEFINE GEE_ARRAY_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_ARRAY_LIST, GeeArrayListClass))
DECLARE FUNCTION gee_array_list_new(BYVAL AS GEqualFunc, BYVAL AS any /'void'/ PTR) AS GeeArrayList PTR
DECLARE SUB gee_array_list_sort_with_data(BYVAL AS GCompareDataFunc, BYVAL AS any /'void'/ PTR)
TYPE _GeeArrayListClass
  AS GeeAbstractListClass parent_class
END TYPE
TYPE _GeeHashMap
  AS GeeAbstractMap parent_instance
  AS GeeHashMapPrivate PTR priv
END TYPE
DECLARE FUNCTION gee_hash_map_get_type() AS GType
#DEFINE GEE_TYPE_HASH_MAP (gee_hash_map_get_type())
#DEFINE GEE_HASH_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_HASH_MAP, GeeHashMap))
#DEFINE GEE_HASH_MAP_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_HASH_MAP, GeeHashMapClass))
#DEFINE GEE_IS_HASH_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_HASH_MAP))
#DEFINE GEE_IS_CLASS_HASH_MAP(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_HASH_MAP))
#DEFINE GEE_HASH_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_HASH_MAP, GeeHashMapClass))
DECLARE FUNCTION gee_hash_map_new(BYVAL AS GHashFunc, BYVAL AS any /'void'/ PTR, BYVAL AS GEqualFunc, BYVAL AS any /'void'/ PTR, BYVAL AS GEqualFunc, BYVAL AS any /'void'/ PTR) AS GeeHashMap PTR
TYPE _GeeHashMapClass
  AS GeeAbstractMapClass parent_class
END TYPE
TYPE _GeeHashMultiMap
  AS GeeAbstractMultiMap parent_instance
  AS GeeHashMultiMapPrivate PTR priv
END TYPE
DECLARE FUNCTION gee_hash_multi_map_get_type() AS GType
#DEFINE GEE_TYPE_HASH_MULTI_MAP (gee_hash_multi_map_get_type())
#DEFINE GEE_HASH_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_HASH_MULTI_MAP, GeeHashMultiMap))
#DEFINE GEE_HASH_MULTI_MAP_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_HASH_MULTI_MAP, GeeHashMultiMapClass))
#DEFINE GEE_IS_HASH_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_HASH_MULTI_MAP))
#DEFINE GEE_IS_CLASS_HASH_MULTI_MAP(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_HASH_MULTI_MAP))
#DEFINE GEE_HASH_MULTI_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_HASH_MULTI_MAP, GeeHashMultiMapClass))
DECLARE FUNCTION gee_hash_multi_map_new(BYVAL AS GHashFunc, BYVAL AS any /'void'/ PTR, BYVAL AS GEqualFunc, BYVAL AS any /'void'/ PTR, BYVAL AS GHashFunc, BYVAL AS any /'void'/ PTR, BYVAL AS GEqualFunc, BYVAL AS any /'void'/ PTR) AS GeeHashMultiMap PTR
TYPE _GeeHashMultiMapClass
  AS GeeAbstractMultiMapClass parent_class
END TYPE
TYPE _GeeHashMultiSet
  AS GeeAbstractMultiSet parent_instance
  AS GeeHashMultiSetPrivate PTR priv
END TYPE
DECLARE FUNCTION gee_hash_multi_set_get_type() AS GType
#DEFINE GEE_TYPE_HASH_MULTI_SET (gee_hash_multi_set_get_type())
#DEFINE GEE_HASH_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_HASH_MULTI_SET, GeeHashMultiSet))
#DEFINE GEE_HASH_MULTI_SET_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_HASH_MULTI_SET, GeeHashMultiSetClass))
#DEFINE GEE_IS_HASH_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_HASH_MULTI_SET))
#DEFINE GEE_IS_CLASS_HASH_MULTI_SET(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_HASH_MULTI_SET))
#DEFINE GEE_HASH_MULTI_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_HASH_MULTI_SET, GeeHashMultiSetClass))
DECLARE FUNCTION gee_hash_multi_set_new(BYVAL AS GHashFunc, BYVAL AS any /'void'/ PTR, BYVAL AS GEqualFunc, BYVAL AS any /'void'/ PTR) AS GeeHashMultiSet PTR
TYPE _GeeHashMultiSetClass
  AS GeeAbstractMultiSetClass parent_class
END TYPE
TYPE _GeeHashSet
  AS GeeAbstractSet parent_instance
  AS GeeHashSetPrivate PTR priv
END TYPE
DECLARE FUNCTION gee_hash_set_get_type() AS GType
#DEFINE GEE_TYPE_HASH_SET (gee_hash_set_get_type())
#DEFINE GEE_HASH_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_HASH_SET, GeeHashSet))
#DEFINE GEE_HASH_SET_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_HASH_SET, GeeHashSetClass))
#DEFINE GEE_IS_HASH_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_HASH_SET))
#DEFINE GEE_IS_CLASS_HASH_SET(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_HASH_SET))
#DEFINE GEE_HASH_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_HASH_SET, GeeHashSetClass))
DECLARE FUNCTION gee_hash_set_new(BYVAL AS GHashFunc, BYVAL AS any /'void'/ PTR, BYVAL AS GEqualFunc, BYVAL AS any /'void'/ PTR) AS GeeHashSet PTR
TYPE _GeeHashSetClass
  AS GeeAbstractSetClass parent_class
END TYPE
TYPE _GeeLinkedList
  AS GeeAbstractList parent_instance
  AS GeeLinkedListPrivate PTR priv
END TYPE
DECLARE FUNCTION gee_linked_list_get_type() AS GType
#DEFINE GEE_TYPE_LINKED_LIST (gee_linked_list_get_type())
#DEFINE GEE_LINKED_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_LINKED_LIST, GeeLinkedList))
#DEFINE GEE_LINKED_LIST_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_LINKED_LIST, GeeLinkedListClass))
#DEFINE GEE_IS_LINKED_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_LINKED_LIST))
#DEFINE GEE_IS_CLASS_LINKED_LIST(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_LINKED_LIST))
#DEFINE GEE_LINKED_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_LINKED_LIST, GeeLinkedListClass))
DECLARE FUNCTION gee_linked_list_new(BYVAL AS GEqualFunc, BYVAL AS any /'void'/ PTR) AS GeeLinkedList PTR
TYPE _GeeLinkedListClass
  AS GeeAbstractListClass parent_class
END TYPE
TYPE _GeePriorityQueue
  AS GeeAbstractQueue parent_instance
  AS GeePriorityQueuePrivate PTR priv
END TYPE
DECLARE FUNCTION gee_priority_queue_get_type() AS GType
#DEFINE GEE_TYPE_PRIORITY_QUEUE (gee_priority_queue_get_type())
#DEFINE GEE_PRIORITY_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_PRIORITY_QUEUE, GeePriorityQueue))
#DEFINE GEE_PRIORITY_QUEUE_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_PRIORITY_QUEUE, GeePriorityQueueClass))
#DEFINE GEE_IS_PRIORITY_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_PRIORITY_QUEUE))
#DEFINE GEE_IS_CLASS_PRIORITY_QUEUE(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_PRIORITY_QUEUE))
#DEFINE GEE_PRIORITY_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_PRIORITY_QUEUE, GeePriorityQueueClass))
DECLARE FUNCTION gee_priority_queue_new(BYVAL AS GCompareFunc, BYVAL AS any /'void'/ PTR) AS GeePriorityQueue PTR
TYPE _GeePriorityQueueClass
  AS GeeAbstractQueueClass parent_class
END TYPE
TYPE _GeeTreeMap
  AS GeeAbstractMap parent_instance
  AS GeeTreeMapPrivate PTR priv
END TYPE
DECLARE FUNCTION gee_tree_map_get_type() AS GType
#DEFINE GEE_TYPE_TREE_MAP (gee_tree_map_get_type())
#DEFINE GEE_TREE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_TREE_MAP, GeeTreeMap))
#DEFINE GEE_TREE_MAP_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_TREE_MAP, GeeTreeMapClass))
#DEFINE GEE_IS_TREE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_TREE_MAP))
#DEFINE GEE_IS_CLASS_TREE_MAP(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_TREE_MAP))
#DEFINE GEE_TREE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_TREE_MAP, GeeTreeMapClass))
DECLARE FUNCTION gee_tree_map_new(BYVAL AS GCompareFunc, BYVAL AS any /'void'/ PTR, BYVAL AS GEqualFunc, BYVAL AS any /'void'/ PTR) AS GeeTreeMap PTR
TYPE _GeeTreeMapClass
  AS GeeAbstractMapClass parent_class
END TYPE
TYPE _GeeTreeMultiMap
  AS GeeAbstractMultiMap parent_instance
  AS GeeTreeMultiMapPrivate PTR priv
END TYPE
DECLARE FUNCTION gee_tree_multi_map_get_type() AS GType
#DEFINE GEE_TYPE_TREE_MULTI_MAP (gee_tree_multi_map_get_type())
#DEFINE GEE_TREE_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_TREE_MULTI_MAP, GeeTreeMultiMap))
#DEFINE GEE_TREE_MULTI_MAP_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_TREE_MULTI_MAP, GeeTreeMultiMapClass))
#DEFINE GEE_IS_TREE_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_TREE_MULTI_MAP))
#DEFINE GEE_IS_CLASS_TREE_MULTI_MAP(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_TREE_MULTI_MAP))
#DEFINE GEE_TREE_MULTI_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_TREE_MULTI_MAP, GeeTreeMultiMapClass))
DECLARE FUNCTION gee_tree_multi_map_new(BYVAL AS GCompareFunc, BYVAL AS any /'void'/ PTR, BYVAL AS GCompareFunc, BYVAL AS any /'void'/ PTR) AS GeeTreeMultiMap PTR
TYPE _GeeTreeMultiMapClass
  AS GeeAbstractMultiMapClass parent_class
END TYPE
TYPE _GeeTreeMultiSet
  AS GeeAbstractMultiSet parent_instance
  AS GeeTreeMultiSetPrivate PTR priv
END TYPE
DECLARE FUNCTION gee_tree_multi_set_get_type() AS GType
#DEFINE GEE_TYPE_TREE_MULTI_SET (gee_tree_multi_set_get_type())
#DEFINE GEE_TREE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_TREE_MULTI_SET, GeeTreeMultiSet))
#DEFINE GEE_TREE_MULTI_SET_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_TREE_MULTI_SET, GeeTreeMultiSetClass))
#DEFINE GEE_IS_TREE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_TREE_MULTI_SET))
#DEFINE GEE_IS_CLASS_TREE_MULTI_SET(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_TREE_MULTI_SET))
#DEFINE GEE_TREE_MULTI_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_TREE_MULTI_SET, GeeTreeMultiSetClass))
DECLARE FUNCTION gee_tree_multi_set_new(BYVAL AS GCompareFunc, BYVAL AS any /'void'/ PTR) AS GeeTreeMultiSet PTR
TYPE _GeeTreeMultiSetClass
  AS GeeAbstractMultiSetClass parent_class
END TYPE
TYPE _GeeTreeSet
  AS GeeAbstractSet parent_instance
  AS GeeTreeSetPrivate PTR priv
END TYPE
DECLARE FUNCTION gee_tree_set_get_type() AS GType
#DEFINE GEE_TYPE_TREE_SET (gee_tree_set_get_type())
#DEFINE GEE_TREE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_TREE_SET, GeeTreeSet))
#DEFINE GEE_TREE_SET_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_TREE_SET, GeeTreeSetClass))
#DEFINE GEE_IS_TREE_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_TREE_SET))
#DEFINE GEE_IS_CLASS_TREE_SET(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_TREE_SET))
#DEFINE GEE_TREE_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_TREE_SET, GeeTreeSetClass))
DECLARE FUNCTION gee_tree_set_new(BYVAL AS GCompareFunc, BYVAL AS any /'void'/ PTR) AS GeeTreeSet PTR
TYPE _GeeTreeSetClass
  AS GeeAbstractSetClass parent_class
END TYPE
DECLARE FUNCTION gee_bidir_iterator_get_type() AS GType
#DEFINE GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type())
#DEFINE GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator))
#DEFINE GEE_BIDIR_ITERATOR_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface))
#DEFINE GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_BIDIR_ITERATOR))
#DEFINE GEE_BIDIR_ITERATOR_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface))
DECLARE FUNCTION gee_bidir_iterator_previous() AS gboolean
DECLARE FUNCTION gee_bidir_iterator_has_previous() AS gboolean
DECLARE FUNCTION gee_bidir_iterator_last() AS gboolean
TYPE _GeeBidirIteratorIface
  AS GTypeInterface parent_iface
  previous AS FUNCTION CDECL(BYVAL AS GeeBidirIterator PTR) AS gboolean
  has_previous AS FUNCTION CDECL(BYVAL AS GeeBidirIterator PTR) AS gboolean
  last AS FUNCTION CDECL(BYVAL AS GeeBidirIterator PTR) AS gboolean
END TYPE
DECLARE FUNCTION gee_collection_get_type() AS GType
#DEFINE GEE_TYPE_COLLECTION (gee_collection_get_type())
#DEFINE GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_COLLECTION, GeeCollection))
#DEFINE GEE_COLLECTION_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_COLLECTION, GeeCollectionIface))
#DEFINE GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_COLLECTION))
#DEFINE GEE_COLLECTION_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GEE_TYPE_COLLECTION, GeeCollectionIface))
DECLARE FUNCTION gee_collection_contains(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_collection_add(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_collection_remove(BYVAL AS gpointer) AS gboolean
DECLARE SUB gee_collection_clear()
DECLARE FUNCTION gee_collection_add_all(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_collection_contains_all(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_collection_remove_all(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_collection_retain_all(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_collection_to_array(BYVAL AS gint) AS gpointer
DECLARE FUNCTION gee_collection_empty() AS gpointer
TYPE _GeeCollectionIface
  AS GTypeInterface parent_iface
  contains AS FUNCTION CDECL(BYVAL AS GeeCollection PTR, BYVAL AS gpointer) AS gboolean
  add AS FUNCTION CDECL(BYVAL AS GeeCollection PTR, BYVAL AS gpointer) AS gboolean
  remove AS FUNCTION CDECL(BYVAL AS GeeCollection PTR, BYVAL AS gpointer) AS gboolean
  clear AS SUB CDECL(BYVAL AS GeeCollection PTR)
  add_all AS FUNCTION CDECL(BYVAL AS GeeCollection PTR, BYVAL AS gpointer) AS gboolean
  contains_all AS FUNCTION CDECL(BYVAL AS GeeCollection PTR, BYVAL AS gpointer) AS gboolean
  remove_all AS FUNCTION CDECL(BYVAL AS GeeCollection PTR, BYVAL AS gpointer) AS gboolean
  retain_all AS FUNCTION CDECL(BYVAL AS GeeCollection PTR, BYVAL AS gpointer) AS gboolean
  to_array AS FUNCTION CDECL(BYVAL AS GeeCollection PTR, BYVAL AS gint) AS gpointer
END TYPE
DECLARE FUNCTION gee_comparable_get_type() AS GType
#DEFINE GEE_TYPE_COMPARABLE (gee_comparable_get_type())
#DEFINE GEE_COMPARABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_COMPARABLE, GeeComparable))
#DEFINE GEE_COMPARABLE_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_COMPARABLE, GeeComparableIface))
#DEFINE GEE_IS_COMPARABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_COMPARABLE))
#DEFINE GEE_COMPARABLE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GEE_TYPE_COMPARABLE, GeeComparableIface))
DECLARE FUNCTION gee_comparable_compare_to(BYVAL AS gpointer) AS gint
TYPE _GeeComparableIface
  AS GTypeInterface parent_iface
  compare_to AS FUNCTION CDECL(BYVAL AS GeeComparable PTR, BYVAL AS gpointer) AS gint
END TYPE
DECLARE FUNCTION gee_deque_get_type() AS GType
#DEFINE GEE_TYPE_DEQUE (gee_deque_get_type())
#DEFINE GEE_DEQUE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_DEQUE, GeeDeque))
#DEFINE GEE_DEQUE_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_DEQUE, GeeDequeIface))
#DEFINE GEE_IS_DEQUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_DEQUE))
#DEFINE GEE_DEQUE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GEE_TYPE_DEQUE, GeeDequeIface))
DECLARE FUNCTION gee_deque_offer_head(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_deque_peek_head() AS gpointer
DECLARE FUNCTION gee_deque_poll_head() AS gpointer
DECLARE FUNCTION gee_deque_drain_head(BYVAL AS gpointer, BYVAL AS gint) AS gint
DECLARE FUNCTION gee_deque_offer_tail(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_deque_peek_tail() AS gpointer
DECLARE FUNCTION gee_deque_poll_tail() AS gpointer
DECLARE FUNCTION gee_deque_drain_tail(BYVAL AS gpointer, BYVAL AS gint) AS gint
TYPE _GeeDequeIface
  AS GTypeInterface parent_iface
  offer_head AS FUNCTION CDECL(BYVAL AS GeeDeque PTR, BYVAL AS gpointer) AS gboolean
  peek_head AS FUNCTION CDECL(BYVAL AS GeeDeque PTR) AS gpointer
  poll_head AS FUNCTION CDECL(BYVAL AS GeeDeque PTR) AS gpointer
  drain_head AS FUNCTION CDECL(BYVAL AS GeeDeque PTR, BYVAL AS gpointer, BYVAL AS gint) AS gint
  offer_tail AS FUNCTION CDECL(BYVAL AS GeeDeque PTR, BYVAL AS gpointer) AS gboolean
  peek_tail AS FUNCTION CDECL(BYVAL AS GeeDeque PTR) AS gpointer
  poll_tail AS FUNCTION CDECL(BYVAL AS GeeDeque PTR) AS gpointer
  drain_tail AS FUNCTION CDECL(BYVAL AS GeeDeque PTR, BYVAL AS gpointer, BYVAL AS gint) AS gint
END TYPE
DECLARE FUNCTION gee_iterable_get_type() AS GType
#DEFINE GEE_TYPE_ITERABLE (gee_iterable_get_type())
#DEFINE GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_ITERABLE, GeeIterable))
#DEFINE GEE_ITERABLE_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_ITERABLE, GeeIterableIface))
#DEFINE GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_ITERABLE))
#DEFINE GEE_ITERABLE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GEE_TYPE_ITERABLE, GeeIterableIface))
DECLARE FUNCTION gee_iterable_iterator() AS gpointer
TYPE _GeeIterableIface
  AS GTypeInterface parent_iface
  iterator AS FUNCTION CDECL(BYVAL AS GeeIterable PTR) AS gpointer
END TYPE
DECLARE FUNCTION gee_iterator_get_type() AS GType
#DEFINE GEE_TYPE_ITERATOR (gee_iterator_get_type())
#DEFINE GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_ITERATOR, GeeIterator))
#DEFINE GEE_ITERATOR_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_ITERATOR, GeeIteratorIface))
#DEFINE GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_ITERATOR))
#DEFINE GEE_ITERATOR_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GEE_TYPE_ITERATOR, GeeIteratorIface))
DECLARE FUNCTION gee_iterator_next() AS gboolean
DECLARE FUNCTION gee_iterator_has_next() AS gboolean
DECLARE FUNCTION gee_iterator_first() AS gboolean
DECLARE FUNCTION gee_iterator_get() AS gpointer
DECLARE SUB gee_iterator_remove()
TYPE _GeeIteratorIface
  AS GTypeInterface parent_iface
  next AS FUNCTION CDECL(BYVAL AS GeeIterator PTR) AS gboolean
  has_next AS FUNCTION CDECL(BYVAL AS GeeIterator PTR) AS gboolean
  first AS FUNCTION CDECL(BYVAL AS GeeIterator PTR) AS gboolean
  get AS FUNCTION CDECL(BYVAL AS GeeIterator PTR) AS gpointer
  remove AS SUB CDECL(BYVAL AS GeeIterator PTR)
END TYPE
DECLARE FUNCTION gee_list_get_type() AS GType
#DEFINE GEE_TYPE_LIST (gee_list_get_type())
#DEFINE GEE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_LIST, GeeList))
#DEFINE GEE_LIST_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_LIST, GeeListIface))
#DEFINE GEE_IS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_LIST))
#DEFINE GEE_LIST_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GEE_TYPE_LIST, GeeListIface))
DECLARE FUNCTION gee_list_list_iterator() AS gpointer
DECLARE FUNCTION gee_list_get(BYVAL AS gint) AS gpointer
DECLARE SUB gee_list_set(BYVAL AS gint, BYVAL AS gpointer)
DECLARE FUNCTION gee_list_index_of(BYVAL AS gpointer) AS gint
DECLARE SUB gee_list_insert(BYVAL AS gint, BYVAL AS gpointer)
DECLARE FUNCTION gee_list_remove_at(BYVAL AS gint) AS gpointer
DECLARE FUNCTION gee_list_slice(BYVAL AS gint, BYVAL AS gint) AS gpointer
DECLARE FUNCTION gee_list_first() AS gpointer
DECLARE FUNCTION gee_list_last() AS gpointer
DECLARE SUB gee_list_insert_all(BYVAL AS gint, BYVAL AS gpointer)
DECLARE SUB gee_list_sort(BYVAL AS GCompareFunc, BYVAL AS any /'void'/ PTR)
DECLARE FUNCTION gee_list_empty() AS gpointer
TYPE _GeeListIface
  AS GTypeInterface parent_iface
  list_iterator AS FUNCTION CDECL(BYVAL AS GeeList PTR) AS gpointer
  get AS FUNCTION CDECL(BYVAL AS GeeList PTR, BYVAL AS gint) AS gpointer
  set AS SUB CDECL(BYVAL AS GeeList PTR, BYVAL AS gint, BYVAL AS gpointer)
  index_of AS FUNCTION CDECL(BYVAL AS GeeList PTR, BYVAL AS gpointer) AS gint
  insert AS SUB CDECL(BYVAL AS GeeList PTR, BYVAL AS gint, BYVAL AS gpointer)
  remove_at AS FUNCTION CDECL(BYVAL AS GeeList PTR, BYVAL AS gint) AS gpointer
  slice AS FUNCTION CDECL(BYVAL AS GeeList PTR, BYVAL AS gint, BYVAL AS gint) AS gpointer
  first AS FUNCTION CDECL(BYVAL AS GeeList PTR) AS gpointer
  last AS FUNCTION CDECL(BYVAL AS GeeList PTR) AS gpointer
  insert_all AS SUB CDECL(BYVAL AS GeeList PTR, BYVAL AS gint, BYVAL AS gpointer)
  sort AS SUB CDECL(BYVAL AS GeeList PTR, BYVAL AS GCompareFunc, BYVAL AS any /'void'/ PTR)
END TYPE
DECLARE FUNCTION gee_list_iterator_get_type() AS GType
#DEFINE GEE_TYPE_LIST_ITERATOR (gee_list_iterator_get_type())
#DEFINE GEE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_LIST_ITERATOR, GeeListIterator))
#DEFINE GEE_LIST_ITERATOR_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_LIST_ITERATOR, GeeListIteratorIface))
#DEFINE GEE_IS_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_LIST_ITERATOR))
#DEFINE GEE_LIST_ITERATOR_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GEE_TYPE_LIST_ITERATOR, GeeListIteratorIface))
DECLARE SUB gee_list_iterator_set(BYVAL AS gpointer)
DECLARE SUB gee_list_iterator_insert(BYVAL AS gpointer)
DECLARE SUB gee_list_iterator_add(BYVAL AS gpointer)
DECLARE FUNCTION gee_list_iterator_index() AS gint
TYPE _GeeListIteratorIface
  AS GTypeInterface parent_iface
  set AS SUB CDECL(BYVAL AS GeeListIterator PTR, BYVAL AS gpointer)
  insert AS SUB CDECL(BYVAL AS GeeListIterator PTR, BYVAL AS gpointer)
  add AS SUB CDECL(BYVAL AS GeeListIterator PTR, BYVAL AS gpointer)
  index AS FUNCTION CDECL(BYVAL AS GeeListIterator PTR) AS gint
END TYPE
DECLARE FUNCTION gee_map_get_type() AS GType
#DEFINE GEE_TYPE_MAP (gee_map_get_type())
#DEFINE GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_MAP, GeeMap))
#DEFINE GEE_MAP_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_MAP, GeeMapIface))
#DEFINE GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_MAP))
#DEFINE GEE_MAP_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GEE_TYPE_MAP, GeeMapIface))
DECLARE FUNCTION gee_map_has_key(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_map_contains(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_map_has(BYVAL AS gpointer, BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_map_get(BYVAL AS gpointer) AS gpointer
DECLARE SUB gee_map_set(BYVAL AS gpointer, BYVAL AS gpointer)
DECLARE FUNCTION gee_map_unset(BYVAL AS gpointer, BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_map_remove(BYVAL AS gpointer, BYVAL AS gpointer) AS gboolean
DECLARE SUB gee_map_clear()
DECLARE FUNCTION gee_map_map_iterator() AS gpointer
DECLARE SUB gee_map_set_all(BYVAL AS gpointer)
DECLARE FUNCTION gee_map_unset_all(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_map_remove_all(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_map_has_all(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_map_contains_all(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_map_empty() AS gpointer
TYPE _GeeMapIface
  AS GTypeInterface parent_iface
  has_key AS FUNCTION CDECL(BYVAL AS GeeMap PTR, BYVAL AS gpointer) AS gboolean
  contains AS FUNCTION CDECL(BYVAL AS GeeMap PTR, BYVAL AS gpointer) AS gboolean
  has AS FUNCTION CDECL(BYVAL AS GeeMap PTR, BYVAL AS gpointer, BYVAL AS gpointer) AS gboolean
  get AS FUNCTION CDECL(BYVAL AS GeeMap PTR, BYVAL AS gpointer) AS gpointer
  set AS SUB CDECL(BYVAL AS GeeMap PTR, BYVAL AS gpointer, BYVAL AS gpointer)
  unset AS FUNCTION CDECL(BYVAL AS GeeMap PTR, BYVAL AS gpointer, BYVAL AS gpointer) AS gboolean
  remove AS FUNCTION CDECL(BYVAL AS GeeMap PTR, BYVAL AS gpointer, BYVAL AS gpointer) AS gboolean
  clear AS SUB CDECL(BYVAL AS GeeMap PTR)
  map_iterator AS FUNCTION CDECL(BYVAL AS GeeMap PTR) AS gpointer
  set_all AS SUB CDECL(BYVAL AS GeeMap PTR, BYVAL AS gpointer)
  unset_all AS FUNCTION CDECL(BYVAL AS GeeMap PTR, BYVAL AS gpointer) AS gboolean
  remove_all AS FUNCTION CDECL(BYVAL AS GeeMap PTR, BYVAL AS gpointer) AS gboolean
  has_all AS FUNCTION CDECL(BYVAL AS GeeMap PTR, BYVAL AS gpointer) AS gboolean
  contains_all AS FUNCTION CDECL(BYVAL AS GeeMap PTR, BYVAL AS gpointer) AS gboolean
END TYPE
TYPE _GeeMapEntry
  AS GObject parent_instance
  AS GeeMapEntryPrivate PTR priv
END TYPE
DECLARE FUNCTION gee_map_entry_get_type() AS GType
#DEFINE GEE_TYPE_MAP_ENTRY (gee_map_entry_get_type())
#DEFINE GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_MAP_ENTRY, GeeMapEntry))
#DEFINE GEE_MAP_ENTRY_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_MAP_ENTRY, GeeEntryClass))
#DEFINE GEE_IS_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_MAP_ENTRY))
#DEFINE GEE_IS_CLASS_MAP_ENTRY(obj) (G_TYPE_CHECK_CLASS_TYPE((obj), GEE_TYPE_MAP_ENTRY))
#DEFINE GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEE_TYPE_MAP_ENTRY, GeeEntryClass))
TYPE _GeeMapEntryClass
  AS GObjectClass parent_class
END TYPE
DECLARE FUNCTION gee_map_iterator_get_type() AS GType
#DEFINE GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type())
#DEFINE GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator))
#DEFINE GEE_MAP_ITERATOR_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface))
#DEFINE GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_MAP_ITERATOR))
#DEFINE GEE_MAP_ITERATOR_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface))
DECLARE FUNCTION gee_map_iterator_next() AS gboolean
DECLARE FUNCTION gee_map_iterator_has_next() AS gboolean
DECLARE FUNCTION gee_map_iterator_first() AS gboolean
DECLARE FUNCTION gee_map_iterator_get_key() AS gpointer
DECLARE FUNCTION gee_map_iterator_get_value() AS gpointer
DECLARE SUB gee_map_iterator_set_value(BYVAL AS gpointer)
DECLARE SUB gee_map_iterator_unset()
TYPE _GeeMapIteratorIface
  AS GTypeInterface parent_iface
  next AS FUNCTION CDECL(BYVAL AS GeeMapIterator PTR) AS gboolean
  has_next AS FUNCTION CDECL(BYVAL AS GeeMapIterator PTR) AS gboolean
  first AS FUNCTION CDECL(BYVAL AS GeeMapIterator PTR) AS gboolean
  get_key AS FUNCTION CDECL(BYVAL AS GeeMapIterator PTR) AS gpointer
  get_value AS FUNCTION CDECL(BYVAL AS GeeMapIterator PTR) AS gpointer
  set_value AS SUB CDECL(BYVAL AS GeeMapIterator PTR, BYVAL AS gpointer)
  unset AS SUB CDECL(BYVAL AS GeeMapIterator PTR)
END TYPE
DECLARE FUNCTION gee_multi_map_get_type() AS GType
#DEFINE GEE_TYPE_MULTI_MAP (gee_multi_map_get_type())
#DEFINE GEE_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_MULTI_MAP, GeeMultiMap))
#DEFINE GEE_MULTI_MAP_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_MULTI_MAP, GeeMultiMapIface))
#DEFINE GEE_IS_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_MULTI_MAP))
#DEFINE GEE_MULTI_MAP_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GEE_TYPE_MULTI_MAP, GeeMultiMapIface))
DECLARE FUNCTION gee_multi_map_get_keys() AS gpointer
DECLARE FUNCTION gee_multi_map_get_all_keys() AS gpointer
DECLARE FUNCTION gee_multi_map_get_values() AS gpointer
DECLARE FUNCTION gee_multi_map_contains(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_multi_map_get(BYVAL AS gpointer) AS gpointer
DECLARE SUB gee_multi_map_set(BYVAL AS gpointer, BYVAL AS gpointer)
DECLARE FUNCTION gee_multi_map_remove(BYVAL AS gpointer, BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_multi_map_remove_all(BYVAL AS gpointer) AS gboolean
DECLARE SUB gee_multi_map_clear()
TYPE _GeeMultiMapIface
  AS GTypeInterface parent_iface
  get_keys AS FUNCTION CDECL(BYVAL AS GeeMultiMap PTR) AS gpointer
  get_all_keys AS FUNCTION CDECL(BYVAL AS GeeMultiMap PTR) AS gpointer
  get_values AS FUNCTION CDECL(BYVAL AS GeeMultiMap PTR) AS gpointer
  contains AS FUNCTION CDECL(BYVAL AS GeeMultiMap PTR, BYVAL AS gpointer) AS gboolean
  get AS FUNCTION CDECL(BYVAL AS GeeMultiMap PTR, BYVAL AS gpointer) AS gpointer
  set AS SUB CDECL(BYVAL AS GeeMultiMap PTR, BYVAL AS gpointer, BYVAL AS gpointer)
  remove AS FUNCTION CDECL(BYVAL AS GeeMultiMap PTR, BYVAL AS gpointer, BYVAL AS gpointer) AS gboolean
  remove_all AS FUNCTION CDECL(BYVAL AS GeeMultiMap PTR, BYVAL AS gpointer) AS gboolean
  clear AS SUB CDECL(BYVAL AS GeeMultiMap PTR)
END TYPE
DECLARE FUNCTION gee_multi_set_get_type() AS GType
#DEFINE GEE_TYPE_MULTI_SET (gee_multi_set_get_type())
#DEFINE GEE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_MULTI_SET, GeeMultiSet))
#DEFINE GEE_MULTI_SET_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_MULTI_SET, GeeMultiSetIface))
#DEFINE GEE_IS_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_MULTI_SET))
#DEFINE GEE_MULTI_SET_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GEE_TYPE_MULTI_SET, GeeMultiSetIface))
DECLARE FUNCTION gee_multi_set_count(BYVAL AS gpointer) AS gint
TYPE _GeeMultiSetIface
  AS GTypeInterface parent_iface
  count AS FUNCTION CDECL(BYVAL AS GeeMultiSet PTR, BYVAL AS gpointer) AS gint
END TYPE
DECLARE FUNCTION gee_queue_get_type() AS GType
#DEFINE GEE_TYPE_QUEUE (gee_queue_get_type())
#DEFINE GEE_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_QUEUE, GeeQueue))
#DEFINE GEE_QUEUE_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_QUEUE, GeeQueueIface))
#DEFINE GEE_IS_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_QUEUE))
#DEFINE GEE_QUEUE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GEE_TYPE_QUEUE, GeeQueueIface))
DECLARE FUNCTION gee_queue_offer(BYVAL AS gpointer) AS gboolean
DECLARE FUNCTION gee_queue_peek() AS gpointer
DECLARE FUNCTION gee_queue_poll() AS gpointer
DECLARE FUNCTION gee_queue_drain(BYVAL AS gpointer, BYVAL AS gint) AS gint
TYPE _GeeQueueIface
  AS GTypeInterface parent_iface
  offer AS FUNCTION CDECL(BYVAL AS GeeQueue PTR, BYVAL AS gpointer) AS gboolean
  peek AS FUNCTION CDECL(BYVAL AS GeeQueue PTR) AS gpointer
  poll AS FUNCTION CDECL(BYVAL AS GeeQueue PTR) AS gpointer
  drain AS FUNCTION CDECL(BYVAL AS GeeQueue PTR, BYVAL AS gpointer, BYVAL AS gint) AS gint
END TYPE
DECLARE FUNCTION gee_set_get_type() AS GType
#DEFINE GEE_TYPE_SET (gee_set_get_type())
#DEFINE GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_SET, GeeSet))
#DEFINE GEE_SET_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_SET, GeeSetIface))
#DEFINE GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_SET))
#DEFINE GEE_SET_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GEE_TYPE_SET, GeeSetIface))
DECLARE FUNCTION gee_set_empty() AS gpointer
TYPE _GeeSetIface
  AS GTypeInterface parent_iface
END TYPE
DECLARE FUNCTION gee_sorted_set_get_type() AS GType
#DEFINE GEE_TYPE_SORTED_SET (gee_sorted_set_get_type())
#DEFINE GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEE_TYPE_SORTED_SET, GeeSortedSet))
#DEFINE GEE_SORTED_SET_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface))
#DEFINE GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEE_TYPE_SORTED_SET))
#DEFINE GEE_SORTED_SET_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface))
DECLARE FUNCTION gee_sorted_set_first() AS gpointer
DECLARE FUNCTION gee_sorted_set_last() AS gpointer
DECLARE FUNCTION gee_sorted_set_bidir_iterator() AS gpointer
DECLARE FUNCTION gee_sorted_set_iterator_at(BYVAL AS gpointer) AS gpointer
DECLARE FUNCTION gee_sorted_set_lower(BYVAL AS gpointer) AS gpointer
DECLARE FUNCTION gee_sorted_set_higher(BYVAL AS gpointer) AS gpointer
DECLARE FUNCTION gee_sorted_set_floor(BYVAL AS gpointer) AS gpointer
DECLARE FUNCTION gee_sorted_set_ceil(BYVAL AS gpointer) AS gpointer
DECLARE FUNCTION gee_sorted_set_head_set(BYVAL AS gpointer) AS gpointer
DECLARE FUNCTION gee_sorted_set_tail_set(BYVAL AS gpointer) AS gpointer
DECLARE FUNCTION gee_sorted_set_sub_set(BYVAL AS gpointer, BYVAL AS gpointer) AS gpointer
TYPE _GeeSortedSetIface
  AS GTypeInterface parent_iface
  first AS FUNCTION CDECL(BYVAL AS GeeSortedSet PTR) AS gpointer
  last AS FUNCTION CDECL(BYVAL AS GeeSortedSet PTR) AS gpointer
  bidir_iterator AS FUNCTION CDECL(BYVAL AS GeeSortedSet PTR) AS gpointer
  iterator_at AS FUNCTION CDECL(BYVAL AS GeeSortedSet PTR, BYVAL AS gpointer) AS gpointer
  lower AS FUNCTION CDECL(BYVAL AS GeeSortedSet PTR, BYVAL AS gpointer) AS gpointer
  higher AS FUNCTION CDECL(BYVAL AS GeeSortedSet PTR, BYVAL AS gpointer) AS gpointer
  floor AS FUNCTION CDECL(BYVAL AS GeeSortedSet PTR, BYVAL AS gpointer) AS gpointer
  ceil AS FUNCTION CDECL(BYVAL AS GeeSortedSet PTR, BYVAL AS gpointer) AS gpointer
  head_set AS FUNCTION CDECL(BYVAL AS GeeSortedSet PTR, BYVAL AS gpointer) AS gpointer
  tail_set AS FUNCTION CDECL(BYVAL AS GeeSortedSet PTR, BYVAL AS gpointer) AS gpointer
  sub_set AS FUNCTION CDECL(BYVAL AS GeeSortedSet PTR, BYVAL AS gpointer, BYVAL AS gpointer) AS gpointer
END TYPE
' PASS4

DECLARE FUNCTION gee_functions_get_equal_func_for(BYVAL AS GType, BYVAL AS any /'void'/ PTR, BYVAL AS GDestroyNotify) AS GEqualFunc
DECLARE FUNCTION gee_functions_get_hash_func_for(BYVAL AS GType, BYVAL AS any /'void'/ PTR, BYVAL AS GDestroyNotify) AS GHashFunc
DECLARE FUNCTION gee_functions_get_compare_func_for(BYVAL AS GType, BYVAL AS any /'void'/ PTR, BYVAL AS GDestroyNotify) AS GCompareFunc
DECLARE FUNCTION gee_direct_compare(BYVAL AS any /'void'/ PTR, BYVAL AS any /'void'/ PTR) AS gint
END EXTERN

