summaryrefslogtreecommitdiff
path: root/gee/gee-internals.h
diff options
context:
space:
mode:
Diffstat (limited to 'gee/gee-internals.h')
-rw-r--r--gee/gee-internals.h2315
1 files changed, 2315 insertions, 0 deletions
diff --git a/gee/gee-internals.h b/gee/gee-internals.h
new file mode 100644
index 0000000..2731b80
--- /dev/null
+++ b/gee/gee-internals.h
@@ -0,0 +1,2315 @@
+/* gee-internals.h generated by valac 0.18.0, the Vala compiler, do not modify */
+
+
+#ifndef __GEE_INTERNALS_H__
+#define __GEE_INTERNALS_H__
+
+#include <glib.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+
+#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ())
+#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable))
+#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE))
+#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface))
+
+typedef struct _GeeTraversable GeeTraversable;
+typedef struct _GeeTraversableIface GeeTraversableIface;
+
+#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ())
+
+#define GEE_TYPE_LAZY (gee_lazy_get_type ())
+#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy))
+#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass))
+#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY))
+#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY))
+#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass))
+
+typedef struct _GeeLazy GeeLazy;
+typedef struct _GeeLazyClass GeeLazyClass;
+
+#define GEE_TYPE_ITERATOR (gee_iterator_get_type ())
+#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator))
+#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR))
+#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface))
+
+typedef struct _GeeIterator GeeIterator;
+typedef struct _GeeIteratorIface GeeIteratorIface;
+
+#define GEE_TYPE_ITERABLE (gee_iterable_get_type ())
+#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable))
+#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE))
+#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface))
+
+typedef struct _GeeIterable GeeIterable;
+typedef struct _GeeIterableIface GeeIterableIface;
+
+#define GEE_TYPE_COLLECTION (gee_collection_get_type ())
+#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection))
+#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION))
+#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface))
+
+typedef struct _GeeCollection GeeCollection;
+typedef struct _GeeCollectionIface GeeCollectionIface;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass))
+#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION))
+#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION))
+#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass))
+
+typedef struct _GeeAbstractCollection GeeAbstractCollection;
+typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass;
+typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate;
+
+#define GEE_TYPE_LIST (gee_list_get_type ())
+#define GEE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST, GeeList))
+#define GEE_IS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST))
+#define GEE_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST, GeeListIface))
+
+typedef struct _GeeList GeeList;
+typedef struct _GeeListIface GeeListIface;
+
+#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_IS_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST_ITERATOR))
+#define GEE_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIteratorIface))
+
+typedef struct _GeeListIterator GeeListIterator;
+typedef struct _GeeListIteratorIface GeeListIteratorIface;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass))
+#define GEE_IS_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_LIST))
+#define GEE_IS_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_LIST))
+#define GEE_ABSTRACT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass))
+
+typedef struct _GeeAbstractList GeeAbstractList;
+typedef struct _GeeAbstractListClass GeeAbstractListClass;
+typedef struct _GeeAbstractListPrivate GeeAbstractListPrivate;
+
+#define GEE_TYPE_BIDIR_LIST (gee_bidir_list_get_type ())
+#define GEE_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirList))
+#define GEE_IS_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST))
+#define GEE_BIDIR_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirListIface))
+
+typedef struct _GeeBidirList GeeBidirList;
+typedef struct _GeeBidirListIface GeeBidirListIface;
+
+#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_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR))
+#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface))
+
+typedef struct _GeeBidirIterator GeeBidirIterator;
+typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface;
+
+#define GEE_TYPE_BIDIR_LIST_ITERATOR (gee_bidir_list_iterator_get_type ())
+#define GEE_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIterator))
+#define GEE_IS_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR))
+#define GEE_BIDIR_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIteratorIface))
+
+typedef struct _GeeBidirListIterator GeeBidirListIterator;
+typedef struct _GeeBidirListIteratorIface GeeBidirListIteratorIface;
+
+#define GEE_TYPE_ABSTRACT_BIDIR_LIST (gee_abstract_bidir_list_get_type ())
+#define GEE_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirList))
+#define GEE_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass))
+#define GEE_IS_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST))
+#define GEE_IS_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST))
+#define GEE_ABSTRACT_BIDIR_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass))
+
+typedef struct _GeeAbstractBidirList GeeAbstractBidirList;
+typedef struct _GeeAbstractBidirListClass GeeAbstractBidirListClass;
+typedef struct _GeeAbstractBidirListPrivate GeeAbstractBidirListPrivate;
+
+#define GEE_TYPE_SET (gee_set_get_type ())
+#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet))
+#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET))
+#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface))
+
+typedef struct _GeeSet GeeSet;
+typedef struct _GeeSetIface GeeSetIface;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass))
+#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET))
+#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET))
+#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass))
+
+typedef struct _GeeAbstractSet GeeAbstractSet;
+typedef struct _GeeAbstractSetClass GeeAbstractSetClass;
+typedef struct _GeeAbstractSetPrivate GeeAbstractSetPrivate;
+
+#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_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET))
+#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface))
+
+typedef struct _GeeSortedSet GeeSortedSet;
+typedef struct _GeeSortedSetIface GeeSortedSetIface;
+
+#define GEE_TYPE_ABSTRACT_SORTED_SET (gee_abstract_sorted_set_get_type ())
+#define GEE_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSet))
+#define GEE_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass))
+#define GEE_IS_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_SET))
+#define GEE_IS_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_SET))
+#define GEE_ABSTRACT_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass))
+
+typedef struct _GeeAbstractSortedSet GeeAbstractSortedSet;
+typedef struct _GeeAbstractSortedSetClass GeeAbstractSortedSetClass;
+typedef struct _GeeAbstractSortedSetPrivate GeeAbstractSortedSetPrivate;
+
+#define GEE_TYPE_BIDIR_SORTED_SET (gee_bidir_sorted_set_get_type ())
+#define GEE_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSet))
+#define GEE_IS_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_SET))
+#define GEE_BIDIR_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSetIface))
+
+typedef struct _GeeBidirSortedSet GeeBidirSortedSet;
+typedef struct _GeeBidirSortedSetIface GeeBidirSortedSetIface;
+
+#define GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET (gee_abstract_bidir_sorted_set_get_type ())
+#define GEE_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSet))
+#define GEE_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass))
+#define GEE_IS_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET))
+#define GEE_IS_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET))
+#define GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass))
+
+typedef struct _GeeAbstractBidirSortedSet GeeAbstractBidirSortedSet;
+typedef struct _GeeAbstractBidirSortedSetClass GeeAbstractBidirSortedSetClass;
+typedef struct _GeeAbstractBidirSortedSetPrivate GeeAbstractBidirSortedSetPrivate;
+
+#define GEE_TYPE_MAP (gee_map_get_type ())
+#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap))
+#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP))
+#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface))
+
+typedef struct _GeeMap GeeMap;
+typedef struct _GeeMapIface GeeMapIface;
+
+#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_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR))
+#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface))
+
+typedef struct _GeeMapIterator GeeMapIterator;
+typedef struct _GeeMapIteratorIface GeeMapIteratorIface;
+
+#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ())
+#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry))
+#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass))
+#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY))
+#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY))
+#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass))
+
+typedef struct _GeeMapEntry GeeMapEntry;
+typedef struct _GeeMapEntryClass GeeMapEntryClass;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass))
+#define GEE_IS_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MAP))
+#define GEE_IS_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MAP))
+#define GEE_ABSTRACT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass))
+
+typedef struct _GeeAbstractMap GeeAbstractMap;
+typedef struct _GeeAbstractMapClass GeeAbstractMapClass;
+typedef struct _GeeAbstractMapPrivate GeeAbstractMapPrivate;
+
+#define GEE_TYPE_SORTED_MAP (gee_sorted_map_get_type ())
+#define GEE_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMap))
+#define GEE_IS_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_MAP))
+#define GEE_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMapIface))
+
+typedef struct _GeeSortedMap GeeSortedMap;
+typedef struct _GeeSortedMapIface GeeSortedMapIface;
+
+#define GEE_TYPE_ABSTRACT_SORTED_MAP (gee_abstract_sorted_map_get_type ())
+#define GEE_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMap))
+#define GEE_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass))
+#define GEE_IS_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP))
+#define GEE_IS_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP))
+#define GEE_ABSTRACT_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass))
+
+typedef struct _GeeAbstractSortedMap GeeAbstractSortedMap;
+typedef struct _GeeAbstractSortedMapClass GeeAbstractSortedMapClass;
+typedef struct _GeeAbstractSortedMapPrivate GeeAbstractSortedMapPrivate;
+
+#define GEE_TYPE_BIDIR_SORTED_MAP (gee_bidir_sorted_map_get_type ())
+#define GEE_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMap))
+#define GEE_IS_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_MAP))
+#define GEE_BIDIR_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMapIface))
+
+typedef struct _GeeBidirSortedMap GeeBidirSortedMap;
+typedef struct _GeeBidirSortedMapIface GeeBidirSortedMapIface;
+
+#define GEE_TYPE_BIDIR_MAP_ITERATOR (gee_bidir_map_iterator_get_type ())
+#define GEE_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIterator))
+#define GEE_IS_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR))
+#define GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIteratorIface))
+
+typedef struct _GeeBidirMapIterator GeeBidirMapIterator;
+typedef struct _GeeBidirMapIteratorIface GeeBidirMapIteratorIface;
+
+#define GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP (gee_abstract_bidir_sorted_map_get_type ())
+#define GEE_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMap))
+#define GEE_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass))
+#define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP))
+#define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP))
+#define GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass))
+
+typedef struct _GeeAbstractBidirSortedMap GeeAbstractBidirSortedMap;
+typedef struct _GeeAbstractBidirSortedMapClass GeeAbstractBidirSortedMapClass;
+typedef struct _GeeAbstractBidirSortedMapPrivate GeeAbstractBidirSortedMapPrivate;
+
+#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_IS_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_MAP))
+#define GEE_MULTI_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_MAP, GeeMultiMapIface))
+
+typedef struct _GeeMultiMap GeeMultiMap;
+typedef struct _GeeMultiMapIface GeeMultiMapIface;
+
+#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_IS_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_SET))
+#define GEE_MULTI_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_SET, GeeMultiSetIface))
+
+typedef struct _GeeMultiSet GeeMultiSet;
+typedef struct _GeeMultiSetIface GeeMultiSetIface;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), 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_ABSTRACT_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), 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))
+
+typedef struct _GeeAbstractMultiMap GeeAbstractMultiMap;
+typedef struct _GeeAbstractMultiMapClass GeeAbstractMultiMapClass;
+typedef struct _GeeAbstractMultiMapPrivate GeeAbstractMultiMapPrivate;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), 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_ABSTRACT_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), 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))
+
+typedef struct _GeeAbstractMultiSet GeeAbstractMultiSet;
+typedef struct _GeeAbstractMultiSetClass GeeAbstractMultiSetClass;
+typedef struct _GeeAbstractMultiSetPrivate GeeAbstractMultiSetPrivate;
+
+#define GEE_TYPE_QUEUE (gee_queue_get_type ())
+#define GEE_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_QUEUE, GeeQueue))
+#define GEE_IS_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_QUEUE))
+#define GEE_QUEUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_QUEUE, GeeQueueIface))
+
+typedef struct _GeeQueue GeeQueue;
+typedef struct _GeeQueueIface GeeQueueIface;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_QUEUE, GeeAbstractQueueClass))
+#define GEE_IS_ABSTRACT_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_QUEUE))
+#define GEE_IS_ABSTRACT_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_QUEUE))
+#define GEE_ABSTRACT_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_QUEUE, GeeAbstractQueueClass))
+
+typedef struct _GeeAbstractQueue GeeAbstractQueue;
+typedef struct _GeeAbstractQueueClass GeeAbstractQueueClass;
+typedef struct _GeeAbstractQueuePrivate GeeAbstractQueuePrivate;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ARRAY_LIST, GeeArrayListClass))
+#define GEE_IS_ARRAY_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ARRAY_LIST))
+#define GEE_IS_ARRAY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ARRAY_LIST))
+#define GEE_ARRAY_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ARRAY_LIST, GeeArrayListClass))
+
+typedef struct _GeeArrayList GeeArrayList;
+typedef struct _GeeArrayListClass GeeArrayListClass;
+typedef struct _GeeArrayListPrivate GeeArrayListPrivate;
+
+#define GEE_TYPE_DEQUE (gee_deque_get_type ())
+#define GEE_DEQUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_DEQUE, GeeDeque))
+#define GEE_IS_DEQUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_DEQUE))
+#define GEE_DEQUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_DEQUE, GeeDequeIface))
+
+typedef struct _GeeDeque GeeDeque;
+typedef struct _GeeDequeIface GeeDequeIface;
+
+#define GEE_TYPE_ARRAY_QUEUE (gee_array_queue_get_type ())
+#define GEE_ARRAY_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ARRAY_QUEUE, GeeArrayQueue))
+#define GEE_ARRAY_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ARRAY_QUEUE, GeeArrayQueueClass))
+#define GEE_IS_ARRAY_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ARRAY_QUEUE))
+#define GEE_IS_ARRAY_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ARRAY_QUEUE))
+#define GEE_ARRAY_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ARRAY_QUEUE, GeeArrayQueueClass))
+
+typedef struct _GeeArrayQueue GeeArrayQueue;
+typedef struct _GeeArrayQueueClass GeeArrayQueueClass;
+typedef struct _GeeArrayQueuePrivate GeeArrayQueuePrivate;
+
+#define GEE_TYPE_COMPARABLE (gee_comparable_get_type ())
+#define GEE_COMPARABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COMPARABLE, GeeComparable))
+#define GEE_IS_COMPARABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COMPARABLE))
+#define GEE_COMPARABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COMPARABLE, GeeComparableIface))
+
+typedef struct _GeeComparable GeeComparable;
+typedef struct _GeeComparableIface GeeComparableIface;
+
+#define GEE_TYPE_CONCURRENT_LIST (gee_concurrent_list_get_type ())
+#define GEE_CONCURRENT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_CONCURRENT_LIST, GeeConcurrentList))
+#define GEE_CONCURRENT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_CONCURRENT_LIST, GeeConcurrentListClass))
+#define GEE_IS_CONCURRENT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_CONCURRENT_LIST))
+#define GEE_IS_CONCURRENT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_CONCURRENT_LIST))
+#define GEE_CONCURRENT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_CONCURRENT_LIST, GeeConcurrentListClass))
+
+typedef struct _GeeConcurrentList GeeConcurrentList;
+typedef struct _GeeConcurrentListClass GeeConcurrentListClass;
+typedef struct _GeeConcurrentListPrivate GeeConcurrentListPrivate;
+
+#define GEE_TYPE_CONCURRENT_SET (gee_concurrent_set_get_type ())
+#define GEE_CONCURRENT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_CONCURRENT_SET, GeeConcurrentSet))
+#define GEE_CONCURRENT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_CONCURRENT_SET, GeeConcurrentSetClass))
+#define GEE_IS_CONCURRENT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_CONCURRENT_SET))
+#define GEE_IS_CONCURRENT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_CONCURRENT_SET))
+#define GEE_CONCURRENT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_CONCURRENT_SET, GeeConcurrentSetClass))
+
+typedef struct _GeeConcurrentSet GeeConcurrentSet;
+typedef struct _GeeConcurrentSetClass GeeConcurrentSetClass;
+typedef struct _GeeConcurrentSetPrivate GeeConcurrentSetPrivate;
+
+#define GEE_CONCURRENT_SET_TYPE_RANGE_TYPE (gee_concurrent_set_range_type_get_type ())
+
+#define GEE_TYPE_HASHABLE (gee_hashable_get_type ())
+#define GEE_HASHABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASHABLE, GeeHashable))
+#define GEE_IS_HASHABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASHABLE))
+#define GEE_HASHABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_HASHABLE, GeeHashableIface))
+
+typedef struct _GeeHashable GeeHashable;
+typedef struct _GeeHashableIface GeeHashableIface;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_HASH_MAP, GeeHashMapClass))
+#define GEE_IS_HASH_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASH_MAP))
+#define GEE_IS_HASH_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_HASH_MAP))
+#define GEE_HASH_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_HASH_MAP, GeeHashMapClass))
+
+typedef struct _GeeHashMap GeeHashMap;
+typedef struct _GeeHashMapClass GeeHashMapClass;
+typedef struct _GeeHashMapPrivate GeeHashMapPrivate;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), 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_HASH_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), 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))
+
+typedef struct _GeeHashMultiMap GeeHashMultiMap;
+typedef struct _GeeHashMultiMapClass GeeHashMultiMapClass;
+typedef struct _GeeHashMultiMapPrivate GeeHashMultiMapPrivate;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), 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_HASH_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), 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))
+
+typedef struct _GeeHashMultiSet GeeHashMultiSet;
+typedef struct _GeeHashMultiSetClass GeeHashMultiSetClass;
+typedef struct _GeeHashMultiSetPrivate GeeHashMultiSetPrivate;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_HASH_SET, GeeHashSetClass))
+#define GEE_IS_HASH_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASH_SET))
+#define GEE_IS_HASH_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_HASH_SET))
+#define GEE_HASH_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_HASH_SET, GeeHashSetClass))
+
+typedef struct _GeeHashSet GeeHashSet;
+typedef struct _GeeHashSetClass GeeHashSetClass;
+typedef struct _GeeHashSetPrivate GeeHashSetPrivate;
+typedef struct _GeeHazardPointer GeeHazardPointer;
+typedef struct _GeeHazardPointerNode GeeHazardPointerNode;
+
+#define GEE_HAZARD_POINTER_TYPE_POLICY (gee_hazard_pointer_policy_get_type ())
+typedef struct _GeeHazardPointerFreeNode GeeHazardPointerFreeNode;
+
+#define GEE_HAZARD_POINTER_TYPE_RELEASE_POLICY (gee_hazard_pointer_release_policy_get_type ())
+typedef struct _GeeHazardPointerContext GeeHazardPointerContext;
+typedef struct _GeeLazyPrivate GeeLazyPrivate;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LINKED_LIST, GeeLinkedListClass))
+#define GEE_IS_LINKED_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LINKED_LIST))
+#define GEE_IS_LINKED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LINKED_LIST))
+#define GEE_LINKED_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LINKED_LIST, GeeLinkedListClass))
+
+typedef struct _GeeLinkedList GeeLinkedList;
+typedef struct _GeeLinkedListClass GeeLinkedListClass;
+typedef struct _GeeLinkedListPrivate GeeLinkedListPrivate;
+typedef struct _GeeMapEntryPrivate GeeMapEntryPrivate;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_PRIORITY_QUEUE, GeePriorityQueueClass))
+#define GEE_IS_PRIORITY_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_PRIORITY_QUEUE))
+#define GEE_IS_PRIORITY_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_PRIORITY_QUEUE))
+#define GEE_PRIORITY_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_PRIORITY_QUEUE, GeePriorityQueueClass))
+
+typedef struct _GeePriorityQueue GeePriorityQueue;
+typedef struct _GeePriorityQueueClass GeePriorityQueueClass;
+typedef struct _GeePriorityQueuePrivate GeePriorityQueuePrivate;
+
+#define GEE_TYPE_READ_ONLY_COLLECTION (gee_read_only_collection_get_type ())
+#define GEE_READ_ONLY_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollection))
+#define GEE_READ_ONLY_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollectionClass))
+#define GEE_IS_READ_ONLY_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_COLLECTION))
+#define GEE_IS_READ_ONLY_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_COLLECTION))
+#define GEE_READ_ONLY_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollectionClass))
+
+typedef struct _GeeReadOnlyCollection GeeReadOnlyCollection;
+typedef struct _GeeReadOnlyCollectionClass GeeReadOnlyCollectionClass;
+typedef struct _GeeReadOnlyCollectionPrivate GeeReadOnlyCollectionPrivate;
+
+#define GEE_TYPE_READ_ONLY_LIST (gee_read_only_list_get_type ())
+#define GEE_READ_ONLY_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_LIST, GeeReadOnlyList))
+#define GEE_READ_ONLY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_LIST, GeeReadOnlyListClass))
+#define GEE_IS_READ_ONLY_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_LIST))
+#define GEE_IS_READ_ONLY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_LIST))
+#define GEE_READ_ONLY_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_LIST, GeeReadOnlyListClass))
+
+typedef struct _GeeReadOnlyList GeeReadOnlyList;
+typedef struct _GeeReadOnlyListClass GeeReadOnlyListClass;
+typedef struct _GeeReadOnlyListPrivate GeeReadOnlyListPrivate;
+
+#define GEE_TYPE_READ_ONLY_BIDIR_LIST (gee_read_only_bidir_list_get_type ())
+#define GEE_READ_ONLY_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_BIDIR_LIST, GeeReadOnlyBidirList))
+#define GEE_READ_ONLY_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_BIDIR_LIST, GeeReadOnlyBidirListClass))
+#define GEE_IS_READ_ONLY_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_BIDIR_LIST))
+#define GEE_IS_READ_ONLY_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_BIDIR_LIST))
+#define GEE_READ_ONLY_BIDIR_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_BIDIR_LIST, GeeReadOnlyBidirListClass))
+
+typedef struct _GeeReadOnlyBidirList GeeReadOnlyBidirList;
+typedef struct _GeeReadOnlyBidirListClass GeeReadOnlyBidirListClass;
+typedef struct _GeeReadOnlyBidirListPrivate GeeReadOnlyBidirListPrivate;
+
+#define GEE_TYPE_READ_ONLY_SET (gee_read_only_set_get_type ())
+#define GEE_READ_ONLY_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySet))
+#define GEE_READ_ONLY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySetClass))
+#define GEE_IS_READ_ONLY_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_SET))
+#define GEE_IS_READ_ONLY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_SET))
+#define GEE_READ_ONLY_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySetClass))
+
+typedef struct _GeeReadOnlySet GeeReadOnlySet;
+typedef struct _GeeReadOnlySetClass GeeReadOnlySetClass;
+typedef struct _GeeReadOnlySetPrivate GeeReadOnlySetPrivate;
+
+#define GEE_TYPE_READ_ONLY_SORTED_SET (gee_read_only_sorted_set_get_type ())
+#define GEE_READ_ONLY_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_SORTED_SET, GeeReadOnlySortedSet))
+#define GEE_READ_ONLY_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_SORTED_SET, GeeReadOnlySortedSetClass))
+#define GEE_IS_READ_ONLY_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_SORTED_SET))
+#define GEE_IS_READ_ONLY_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_SORTED_SET))
+#define GEE_READ_ONLY_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_SORTED_SET, GeeReadOnlySortedSetClass))
+
+typedef struct _GeeReadOnlySortedSet GeeReadOnlySortedSet;
+typedef struct _GeeReadOnlySortedSetClass GeeReadOnlySortedSetClass;
+typedef struct _GeeReadOnlySortedSetPrivate GeeReadOnlySortedSetPrivate;
+
+#define GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET (gee_read_only_bidir_sorted_set_get_type ())
+#define GEE_READ_ONLY_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, GeeReadOnlyBidirSortedSet))
+#define GEE_READ_ONLY_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, GeeReadOnlyBidirSortedSetClass))
+#define GEE_IS_READ_ONLY_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET))
+#define GEE_IS_READ_ONLY_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET))
+#define GEE_READ_ONLY_BIDIR_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, GeeReadOnlyBidirSortedSetClass))
+
+typedef struct _GeeReadOnlyBidirSortedSet GeeReadOnlyBidirSortedSet;
+typedef struct _GeeReadOnlyBidirSortedSetClass GeeReadOnlyBidirSortedSetClass;
+typedef struct _GeeReadOnlyBidirSortedSetPrivate GeeReadOnlyBidirSortedSetPrivate;
+
+#define GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR (gee_read_only_collection_iterator_get_type ())
+#define GEE_READ_ONLY_COLLECTION_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR, GeeReadOnlyCollectionIterator))
+#define GEE_READ_ONLY_COLLECTION_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR, GeeReadOnlyCollectionIteratorClass))
+#define GEE_READ_ONLY_COLLECTION_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR))
+#define GEE_READ_ONLY_COLLECTION_IS_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR))
+#define GEE_READ_ONLY_COLLECTION_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR, GeeReadOnlyCollectionIteratorClass))
+
+typedef struct _GeeReadOnlyCollectionIterator GeeReadOnlyCollectionIterator;
+typedef struct _GeeReadOnlyCollectionIteratorClass GeeReadOnlyCollectionIteratorClass;
+typedef struct _GeeReadOnlyCollectionIteratorPrivate GeeReadOnlyCollectionIteratorPrivate;
+
+#define GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR (gee_read_only_bidir_sorted_set_bidir_iterator_get_type ())
+#define GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR, GeeReadOnlyBidirSortedSetBidirIterator))
+#define GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR, GeeReadOnlyBidirSortedSetBidirIteratorClass))
+#define GEE_READ_ONLY_BIDIR_SORTED_SET_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR))
+#define GEE_READ_ONLY_BIDIR_SORTED_SET_IS_BIDIR_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR))
+#define GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_READ_ONLY_BIDIR_SORTED_SET_TYPE_BIDIR_ITERATOR, GeeReadOnlyBidirSortedSetBidirIteratorClass))
+
+typedef struct _GeeReadOnlyBidirSortedSetBidirIterator GeeReadOnlyBidirSortedSetBidirIterator;
+typedef struct _GeeReadOnlyBidirSortedSetBidirIteratorClass GeeReadOnlyBidirSortedSetBidirIteratorClass;
+typedef struct _GeeReadOnlyBidirSortedSetBidirIteratorPrivate GeeReadOnlyBidirSortedSetBidirIteratorPrivate;
+
+#define GEE_TYPE_READ_ONLY_MAP (gee_read_only_map_get_type ())
+#define GEE_READ_ONLY_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMap))
+#define GEE_READ_ONLY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMapClass))
+#define GEE_IS_READ_ONLY_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_MAP))
+#define GEE_IS_READ_ONLY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_MAP))
+#define GEE_READ_ONLY_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMapClass))
+
+typedef struct _GeeReadOnlyMap GeeReadOnlyMap;
+typedef struct _GeeReadOnlyMapClass GeeReadOnlyMapClass;
+typedef struct _GeeReadOnlyMapPrivate GeeReadOnlyMapPrivate;
+
+#define GEE_TYPE_READ_ONLY_SORTED_MAP (gee_read_only_sorted_map_get_type ())
+#define GEE_READ_ONLY_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_SORTED_MAP, GeeReadOnlySortedMap))
+#define GEE_READ_ONLY_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_SORTED_MAP, GeeReadOnlySortedMapClass))
+#define GEE_IS_READ_ONLY_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_SORTED_MAP))
+#define GEE_IS_READ_ONLY_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_SORTED_MAP))
+#define GEE_READ_ONLY_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_SORTED_MAP, GeeReadOnlySortedMapClass))
+
+typedef struct _GeeReadOnlySortedMap GeeReadOnlySortedMap;
+typedef struct _GeeReadOnlySortedMapClass GeeReadOnlySortedMapClass;
+typedef struct _GeeReadOnlySortedMapPrivate GeeReadOnlySortedMapPrivate;
+
+#define GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP (gee_read_only_bidir_sorted_map_get_type ())
+#define GEE_READ_ONLY_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP, GeeReadOnlyBidirSortedMap))
+#define GEE_READ_ONLY_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP, GeeReadOnlyBidirSortedMapClass))
+#define GEE_IS_READ_ONLY_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP))
+#define GEE_IS_READ_ONLY_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP))
+#define GEE_READ_ONLY_BIDIR_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP, GeeReadOnlyBidirSortedMapClass))
+
+typedef struct _GeeReadOnlyBidirSortedMap GeeReadOnlyBidirSortedMap;
+typedef struct _GeeReadOnlyBidirSortedMapClass GeeReadOnlyBidirSortedMapClass;
+typedef struct _GeeReadOnlyBidirSortedMapPrivate GeeReadOnlyBidirSortedMapPrivate;
+
+#define GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR (gee_read_only_map_map_iterator_get_type ())
+#define GEE_READ_ONLY_MAP_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR, GeeReadOnlyMapMapIterator))
+#define GEE_READ_ONLY_MAP_MAP_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR, GeeReadOnlyMapMapIteratorClass))
+#define GEE_READ_ONLY_MAP_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR))
+#define GEE_READ_ONLY_MAP_IS_MAP_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR))
+#define GEE_READ_ONLY_MAP_MAP_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR, GeeReadOnlyMapMapIteratorClass))
+
+typedef struct _GeeReadOnlyMapMapIterator GeeReadOnlyMapMapIterator;
+typedef struct _GeeReadOnlyMapMapIteratorClass GeeReadOnlyMapMapIteratorClass;
+typedef struct _GeeReadOnlyMapMapIteratorPrivate GeeReadOnlyMapMapIteratorPrivate;
+
+#define GEE_READ_ONLY_BIDIR_SORTED_MAP_TYPE_BIDIR_MAP_ITERATOR (gee_read_only_bidir_sorted_map_bidir_map_iterator_get_type ())
+#define GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_READ_ONLY_BIDIR_SORTED_MAP_TYPE_BIDIR_MAP_ITERATOR, GeeReadOnlyBidirSortedMapBidirMapIterator))
+#define GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_READ_ONLY_BIDIR_SORTED_MAP_TYPE_BIDIR_MAP_ITERATOR, GeeReadOnlyBidirSortedMapBidirMapIteratorClass))
+#define GEE_READ_ONLY_BIDIR_SORTED_MAP_IS_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_READ_ONLY_BIDIR_SORTED_MAP_TYPE_BIDIR_MAP_ITERATOR))
+#define GEE_READ_ONLY_BIDIR_SORTED_MAP_IS_BIDIR_MAP_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_READ_ONLY_BIDIR_SORTED_MAP_TYPE_BIDIR_MAP_ITERATOR))
+#define GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_READ_ONLY_BIDIR_SORTED_MAP_TYPE_BIDIR_MAP_ITERATOR, GeeReadOnlyBidirSortedMapBidirMapIteratorClass))
+
+typedef struct _GeeReadOnlyBidirSortedMapBidirMapIterator GeeReadOnlyBidirSortedMapBidirMapIterator;
+typedef struct _GeeReadOnlyBidirSortedMapBidirMapIteratorClass GeeReadOnlyBidirSortedMapBidirMapIteratorClass;
+typedef struct _GeeReadOnlyBidirSortedMapBidirMapIteratorPrivate GeeReadOnlyBidirSortedMapBidirMapIteratorPrivate;
+
+#define GEE_READ_ONLY_LIST_TYPE_ITERATOR (gee_read_only_list_iterator_get_type ())
+#define GEE_READ_ONLY_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_READ_ONLY_LIST_TYPE_ITERATOR, GeeReadOnlyListIterator))
+#define GEE_READ_ONLY_LIST_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_READ_ONLY_LIST_TYPE_ITERATOR, GeeReadOnlyListIteratorClass))
+#define GEE_READ_ONLY_LIST_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_READ_ONLY_LIST_TYPE_ITERATOR))
+#define GEE_READ_ONLY_LIST_IS_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_READ_ONLY_LIST_TYPE_ITERATOR))
+#define GEE_READ_ONLY_LIST_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_READ_ONLY_LIST_TYPE_ITERATOR, GeeReadOnlyListIteratorClass))
+
+typedef struct _GeeReadOnlyListIterator GeeReadOnlyListIterator;
+typedef struct _GeeReadOnlyListIteratorClass GeeReadOnlyListIteratorClass;
+typedef struct _GeeReadOnlyListIteratorPrivate GeeReadOnlyListIteratorPrivate;
+
+#define GEE_TYPE_READ_ONLY_MULTI_MAP (gee_read_only_multi_map_get_type ())
+#define GEE_READ_ONLY_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_MULTI_MAP, GeeReadOnlyMultiMap))
+#define GEE_READ_ONLY_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_MULTI_MAP, GeeReadOnlyMultiMapClass))
+#define GEE_IS_READ_ONLY_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_MULTI_MAP))
+#define GEE_IS_READ_ONLY_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_MULTI_MAP))
+#define GEE_READ_ONLY_MULTI_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_MULTI_MAP, GeeReadOnlyMultiMapClass))
+
+typedef struct _GeeReadOnlyMultiMap GeeReadOnlyMultiMap;
+typedef struct _GeeReadOnlyMultiMapClass GeeReadOnlyMultiMapClass;
+typedef struct _GeeReadOnlyMultiMapPrivate GeeReadOnlyMultiMapPrivate;
+
+#define GEE_TYPE_READ_ONLY_MULTI_SET (gee_read_only_multi_set_get_type ())
+#define GEE_READ_ONLY_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_MULTI_SET, GeeReadOnlyMultiSet))
+#define GEE_READ_ONLY_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_MULTI_SET, GeeReadOnlyMultiSetClass))
+#define GEE_IS_READ_ONLY_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_READ_ONLY_MULTI_SET))
+#define GEE_IS_READ_ONLY_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_READ_ONLY_MULTI_SET))
+#define GEE_READ_ONLY_MULTI_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_READ_ONLY_MULTI_SET, GeeReadOnlyMultiSetClass))
+
+typedef struct _GeeReadOnlyMultiSet GeeReadOnlyMultiSet;
+typedef struct _GeeReadOnlyMultiSetClass GeeReadOnlyMultiSetClass;
+typedef struct _GeeReadOnlyMultiSetPrivate GeeReadOnlyMultiSetPrivate;
+
+#define GEE_TYPE_TIM_SORT (gee_tim_sort_get_type ())
+#define GEE_TIM_SORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TIM_SORT, GeeTimSort))
+#define GEE_TIM_SORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TIM_SORT, GeeTimSortClass))
+#define GEE_IS_TIM_SORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TIM_SORT))
+#define GEE_IS_TIM_SORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_TIM_SORT))
+#define GEE_TIM_SORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_TIM_SORT, GeeTimSortClass))
+
+typedef struct _GeeTimSort GeeTimSort;
+typedef struct _GeeTimSortClass GeeTimSortClass;
+typedef struct _GeeTimSortPrivate GeeTimSortPrivate;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TREE_MAP, GeeTreeMapClass))
+#define GEE_IS_TREE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TREE_MAP))
+#define GEE_IS_TREE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_TREE_MAP))
+#define GEE_TREE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_TREE_MAP, GeeTreeMapClass))
+
+typedef struct _GeeTreeMap GeeTreeMap;
+typedef struct _GeeTreeMapClass GeeTreeMapClass;
+typedef struct _GeeTreeMapPrivate GeeTreeMapPrivate;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), 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_TREE_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), 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))
+
+typedef struct _GeeTreeMultiMap GeeTreeMultiMap;
+typedef struct _GeeTreeMultiMapClass GeeTreeMultiMapClass;
+typedef struct _GeeTreeMultiMapPrivate GeeTreeMultiMapPrivate;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), 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_TREE_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), 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))
+
+typedef struct _GeeTreeMultiSet GeeTreeMultiSet;
+typedef struct _GeeTreeMultiSetClass GeeTreeMultiSetClass;
+typedef struct _GeeTreeMultiSetPrivate GeeTreeMultiSetPrivate;
+
+#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(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TREE_SET, GeeTreeSetClass))
+#define GEE_IS_TREE_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TREE_SET))
+#define GEE_IS_TREE_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_TREE_SET))
+#define GEE_TREE_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_TREE_SET, GeeTreeSetClass))
+
+typedef struct _GeeTreeSet GeeTreeSet;
+typedef struct _GeeTreeSetClass GeeTreeSetClass;
+typedef struct _GeeTreeSetPrivate GeeTreeSetPrivate;
+
+#define GEE_TYPE_UNFOLD_ITERATOR (gee_unfold_iterator_get_type ())
+#define GEE_UNFOLD_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_UNFOLD_ITERATOR, GeeUnfoldIterator))
+#define GEE_UNFOLD_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_UNFOLD_ITERATOR, GeeUnfoldIteratorClass))
+#define GEE_IS_UNFOLD_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_UNFOLD_ITERATOR))
+#define GEE_IS_UNFOLD_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_UNFOLD_ITERATOR))
+#define GEE_UNFOLD_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_UNFOLD_ITERATOR, GeeUnfoldIteratorClass))
+
+typedef struct _GeeUnfoldIterator GeeUnfoldIterator;
+typedef struct _GeeUnfoldIteratorClass GeeUnfoldIteratorClass;
+typedef struct _GeeUnfoldIteratorPrivate GeeUnfoldIteratorPrivate;
+
+typedef gboolean (*GeeForallFunc) (gpointer g, void* user_data);
+typedef enum {
+ GEE_TRAVERSABLE_STREAM_YIELD,
+ GEE_TRAVERSABLE_STREAM_CONTINUE,
+ GEE_TRAVERSABLE_STREAM_END
+} GeeTraversableStream;
+
+typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy** lazy, void* user_data);
+struct _GeeIteratorIface {
+ GTypeInterface parent_iface;
+ gboolean (*next) (GeeIterator* self);
+ gboolean (*has_next) (GeeIterator* self);
+ gpointer (*get) (GeeIterator* self);
+ void (*remove) (GeeIterator* self);
+ gboolean (*get_valid) (GeeIterator* self);
+ gboolean (*get_read_only) (GeeIterator* self);
+};
+
+typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, void* user_data);
+typedef gpointer (*GeeMapFunc) (gpointer g, void* user_data);
+typedef gboolean (*GeePredicate) (gconstpointer g, void* user_data);
+struct _GeeTraversableIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeTraversable* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self);
+ gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, void* f_target);
+ GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, void* f_target, GDestroyNotify f_target_destroy_notify);
+ gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
+ GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, void* f_target);
+ GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
+ GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, void* pred_target, GDestroyNotify pred_target_destroy_notify);
+ GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length);
+ GType (*get_element_type) (GeeTraversable* self);
+};
+
+struct _GeeIterableIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeIterable* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeIterable* self);
+ GeeIterator* (*iterator) (GeeIterable* self);
+};
+
+struct _GeeCollectionIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeCollection* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeCollection* self);
+ gboolean (*contains) (GeeCollection* self, gconstpointer item);
+ gboolean (*add) (GeeCollection* self, gconstpointer item);
+ gboolean (*remove) (GeeCollection* self, gconstpointer item);
+ void (*clear) (GeeCollection* self);
+ gboolean (*add_all) (GeeCollection* self, GeeCollection* collection);
+ gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection);
+ gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection);
+ gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection);
+ gpointer* (*to_array) (GeeCollection* self, int* result_length1);
+ gint (*get_size) (GeeCollection* self);
+ gboolean (*get_is_empty) (GeeCollection* self);
+ gboolean (*get_read_only) (GeeCollection* self);
+ GeeCollection* (*get_read_only_view) (GeeCollection* self);
+};
+
+struct _GeeAbstractCollection {
+ GObject parent_instance;
+ GeeAbstractCollectionPrivate * priv;
+};
+
+struct _GeeAbstractCollectionClass {
+ GObjectClass parent_class;
+ gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item);
+ gboolean (*add) (GeeAbstractCollection* self, gconstpointer item);
+ gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item);
+ void (*clear) (GeeAbstractCollection* self);
+ GeeIterator* (*iterator) (GeeAbstractCollection* self);
+ gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, void* f_target);
+ void (*reserved0) (GeeAbstractCollection* self);
+ void (*reserved1) (GeeAbstractCollection* self);
+ void (*reserved2) (GeeAbstractCollection* self);
+ void (*reserved3) (GeeAbstractCollection* self);
+ void (*reserved4) (GeeAbstractCollection* self);
+ void (*reserved5) (GeeAbstractCollection* self);
+ void (*reserved6) (GeeAbstractCollection* self);
+ void (*reserved7) (GeeAbstractCollection* self);
+ void (*reserved8) (GeeAbstractCollection* self);
+ void (*reserved9) (GeeAbstractCollection* self);
+ gint (*get_size) (GeeAbstractCollection* self);
+ gboolean (*get_read_only) (GeeAbstractCollection* self);
+ GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self);
+};
+
+struct _GeeListIteratorIface {
+ GTypeInterface parent_iface;
+ void (*set) (GeeListIterator* self, gconstpointer item);
+ void (*add) (GeeListIterator* self, gconstpointer item);
+ gint (*index) (GeeListIterator* self);
+};
+
+struct _GeeListIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeList* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeList* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeList* self);
+ GeeListIterator* (*list_iterator) (GeeList* self);
+ gpointer (*get) (GeeList* self, gint index);
+ void (*set) (GeeList* self, gint index, gconstpointer item);
+ gint (*index_of) (GeeList* self, gconstpointer item);
+ void (*insert) (GeeList* self, gint index, gconstpointer item);
+ gpointer (*remove_at) (GeeList* self, gint index);
+ GeeList* (*slice) (GeeList* self, gint start, gint stop);
+ gpointer (*first) (GeeList* self);
+ gpointer (*last) (GeeList* self);
+ void (*insert_all) (GeeList* self, gint index, GeeCollection* collection);
+ void (*sort) (GeeList* self, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+ GeeList* (*get_read_only_view) (GeeList* self);
+};
+
+struct _GeeAbstractList {
+ GeeAbstractCollection parent_instance;
+ GeeAbstractListPrivate * priv;
+};
+
+struct _GeeAbstractListClass {
+ GeeAbstractCollectionClass parent_class;
+ GeeListIterator* (*list_iterator) (GeeAbstractList* self);
+ gpointer (*get) (GeeAbstractList* self, gint index);
+ void (*set) (GeeAbstractList* self, gint index, gconstpointer item);
+ gint (*index_of) (GeeAbstractList* self, gconstpointer item);
+ void (*insert) (GeeAbstractList* self, gint index, gconstpointer item);
+ gpointer (*remove_at) (GeeAbstractList* self, gint index);
+ GeeList* (*slice) (GeeAbstractList* self, gint start, gint stop);
+ void (*reserved0) (GeeAbstractList* self);
+ void (*reserved1) (GeeAbstractList* self);
+ void (*reserved2) (GeeAbstractList* self);
+ void (*reserved3) (GeeAbstractList* self);
+ void (*reserved4) (GeeAbstractList* self);
+ void (*reserved5) (GeeAbstractList* self);
+ void (*reserved6) (GeeAbstractList* self);
+ void (*reserved7) (GeeAbstractList* self);
+ void (*reserved8) (GeeAbstractList* self);
+ void (*reserved9) (GeeAbstractList* self);
+ GeeList* (*get_read_only_view) (GeeAbstractList* self);
+};
+
+struct _GeeBidirIteratorIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeBidirIterator* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self);
+ gboolean (*previous) (GeeBidirIterator* self);
+ gboolean (*has_previous) (GeeBidirIterator* self);
+ gboolean (*first) (GeeBidirIterator* self);
+ gboolean (*last) (GeeBidirIterator* self);
+};
+
+struct _GeeBidirListIteratorIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeBidirListIterator* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeBidirListIterator* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeBidirListIterator* self);
+ void (*insert) (GeeBidirListIterator* self, gconstpointer item);
+};
+
+struct _GeeBidirListIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeBidirList* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeBidirList* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeBidirList* self);
+ GeeBidirListIterator* (*bidir_list_iterator) (GeeBidirList* self);
+ GeeBidirList* (*get_read_only_view) (GeeBidirList* self);
+};
+
+struct _GeeAbstractBidirList {
+ GeeAbstractList parent_instance;
+ GeeAbstractBidirListPrivate * priv;
+};
+
+struct _GeeAbstractBidirListClass {
+ GeeAbstractListClass parent_class;
+ GeeBidirListIterator* (*bidir_list_iterator) (GeeAbstractBidirList* self);
+ void (*reserved0) (GeeAbstractBidirList* self);
+ void (*reserved1) (GeeAbstractBidirList* self);
+ void (*reserved2) (GeeAbstractBidirList* self);
+ void (*reserved3) (GeeAbstractBidirList* self);
+ void (*reserved4) (GeeAbstractBidirList* self);
+ void (*reserved5) (GeeAbstractBidirList* self);
+ void (*reserved6) (GeeAbstractBidirList* self);
+ void (*reserved7) (GeeAbstractBidirList* self);
+ void (*reserved8) (GeeAbstractBidirList* self);
+ void (*reserved9) (GeeAbstractBidirList* self);
+ GeeBidirList* (*get_read_only_view) (GeeAbstractBidirList* self);
+};
+
+struct _GeeSetIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeSet* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeSet* self);
+ GeeSet* (*get_read_only_view) (GeeSet* self);
+};
+
+struct _GeeAbstractSet {
+ GeeAbstractCollection parent_instance;
+ GeeAbstractSetPrivate * priv;
+};
+
+struct _GeeAbstractSetClass {
+ GeeAbstractCollectionClass parent_class;
+ void (*reserved0) (GeeAbstractSet* self);
+ void (*reserved1) (GeeAbstractSet* self);
+ void (*reserved2) (GeeAbstractSet* self);
+ void (*reserved3) (GeeAbstractSet* self);
+ void (*reserved4) (GeeAbstractSet* self);
+ void (*reserved5) (GeeAbstractSet* self);
+ void (*reserved6) (GeeAbstractSet* self);
+ void (*reserved7) (GeeAbstractSet* self);
+ void (*reserved8) (GeeAbstractSet* self);
+ void (*reserved9) (GeeAbstractSet* self);
+ GeeSet* (*get_read_only_view) (GeeAbstractSet* self);
+};
+
+struct _GeeSortedSetIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeSortedSet* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self);
+ gpointer (*first) (GeeSortedSet* self);
+ gpointer (*last) (GeeSortedSet* self);
+ GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element);
+ gpointer (*lower) (GeeSortedSet* self, gconstpointer element);
+ gpointer (*higher) (GeeSortedSet* self, gconstpointer element);
+ gpointer (*floor) (GeeSortedSet* self, gconstpointer element);
+ gpointer (*ceil) (GeeSortedSet* self, gconstpointer element);
+ GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before);
+ GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after);
+ GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to);
+ GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self);
+};
+
+struct _GeeAbstractSortedSet {
+ GeeAbstractSet parent_instance;
+ GeeAbstractSortedSetPrivate * priv;
+};
+
+struct _GeeAbstractSortedSetClass {
+ GeeAbstractSetClass parent_class;
+ gpointer (*first) (GeeAbstractSortedSet* self);
+ gpointer (*last) (GeeAbstractSortedSet* self);
+ GeeIterator* (*iterator_at) (GeeAbstractSortedSet* self, gconstpointer element);
+ gpointer (*lower) (GeeAbstractSortedSet* self, gconstpointer element);
+ gpointer (*higher) (GeeAbstractSortedSet* self, gconstpointer element);
+ gpointer (*floor) (GeeAbstractSortedSet* self, gconstpointer element);
+ gpointer (*ceil) (GeeAbstractSortedSet* self, gconstpointer element);
+ GeeSortedSet* (*head_set) (GeeAbstractSortedSet* self, gconstpointer before);
+ GeeSortedSet* (*tail_set) (GeeAbstractSortedSet* self, gconstpointer after);
+ GeeSortedSet* (*sub_set) (GeeAbstractSortedSet* self, gconstpointer from, gconstpointer to);
+ void (*reserved0) (GeeAbstractSortedSet* self);
+ void (*reserved1) (GeeAbstractSortedSet* self);
+ void (*reserved2) (GeeAbstractSortedSet* self);
+ void (*reserved3) (GeeAbstractSortedSet* self);
+ void (*reserved4) (GeeAbstractSortedSet* self);
+ void (*reserved5) (GeeAbstractSortedSet* self);
+ void (*reserved6) (GeeAbstractSortedSet* self);
+ void (*reserved7) (GeeAbstractSortedSet* self);
+ void (*reserved8) (GeeAbstractSortedSet* self);
+ void (*reserved9) (GeeAbstractSortedSet* self);
+ GeeSortedSet* (*get_read_only_view) (GeeAbstractSortedSet* self);
+};
+
+struct _GeeBidirSortedSetIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeBidirSortedSet* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeBidirSortedSet* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeBidirSortedSet* self);
+ GeeBidirIterator* (*bidir_iterator) (GeeBidirSortedSet* self);
+ GeeBidirSortedSet* (*get_read_only_view) (GeeBidirSortedSet* self);
+};
+
+struct _GeeAbstractBidirSortedSet {
+ GeeAbstractSortedSet parent_instance;
+ GeeAbstractBidirSortedSetPrivate * priv;
+};
+
+struct _GeeAbstractBidirSortedSetClass {
+ GeeAbstractSortedSetClass parent_class;
+ GeeBidirIterator* (*bidir_iterator) (GeeAbstractBidirSortedSet* self);
+ void (*reserved0) (GeeAbstractBidirSortedSet* self);
+ void (*reserved1) (GeeAbstractBidirSortedSet* self);
+ void (*reserved2) (GeeAbstractBidirSortedSet* self);
+ void (*reserved3) (GeeAbstractBidirSortedSet* self);
+ void (*reserved4) (GeeAbstractBidirSortedSet* self);
+ void (*reserved5) (GeeAbstractBidirSortedSet* self);
+ void (*reserved6) (GeeAbstractBidirSortedSet* self);
+ void (*reserved7) (GeeAbstractBidirSortedSet* self);
+ void (*reserved8) (GeeAbstractBidirSortedSet* self);
+ void (*reserved9) (GeeAbstractBidirSortedSet* self);
+ GeeBidirSortedSet* (*get_read_only_view) (GeeAbstractBidirSortedSet* self);
+};
+
+typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, void* user_data);
+typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, void* user_data);
+struct _GeeMapIteratorIface {
+ GTypeInterface parent_iface;
+ GType (*get_k_type) (GeeMapIterator* self);
+ GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self);
+ GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self);
+ GType (*get_v_type) (GeeMapIterator* self);
+ GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self);
+ GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self);
+ gboolean (*next) (GeeMapIterator* self);
+ gboolean (*has_next) (GeeMapIterator* self);
+ gpointer (*get_key) (GeeMapIterator* self);
+ gpointer (*get_value) (GeeMapIterator* self);
+ void (*set_value) (GeeMapIterator* self, gconstpointer value);
+ void (*unset) (GeeMapIterator* self);
+ gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, void* f_target, gpointer seed);
+ gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, void* f_target);
+ gboolean (*get_valid) (GeeMapIterator* self);
+ gboolean (*get_mutable) (GeeMapIterator* self);
+ gboolean (*get_read_only) (GeeMapIterator* self);
+};
+
+struct _GeeMapIface {
+ GTypeInterface parent_iface;
+ GType (*get_k_type) (GeeMap* self);
+ GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self);
+ GDestroyNotify (*get_k_destroy_func) (GeeMap* self);
+ GType (*get_v_type) (GeeMap* self);
+ GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self);
+ GDestroyNotify (*get_v_destroy_func) (GeeMap* self);
+ gboolean (*has_key) (GeeMap* self, gconstpointer key);
+ gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value);
+ gpointer (*get) (GeeMap* self, gconstpointer key);
+ void (*set) (GeeMap* self, gconstpointer key, gconstpointer value);
+ gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value);
+ void (*clear) (GeeMap* self);
+ GeeMapIterator* (*map_iterator) (GeeMap* self);
+ void (*set_all) (GeeMap* self, GeeMap* map);
+ gboolean (*unset_all) (GeeMap* self, GeeMap* map);
+ gboolean (*has_all) (GeeMap* self, GeeMap* map);
+ gint (*get_size) (GeeMap* self);
+ gboolean (*get_is_empty) (GeeMap* self);
+ gboolean (*get_read_only) (GeeMap* self);
+ GeeSet* (*get_keys) (GeeMap* self);
+ GeeCollection* (*get_values) (GeeMap* self);
+ GeeSet* (*get_entries) (GeeMap* self);
+ GeeMap* (*get_read_only_view) (GeeMap* self);
+};
+
+struct _GeeAbstractMap {
+ GObject parent_instance;
+ GeeAbstractMapPrivate * priv;
+};
+
+struct _GeeAbstractMapClass {
+ GObjectClass parent_class;
+ gboolean (*has_key) (GeeAbstractMap* self, gconstpointer key);
+ gboolean (*has) (GeeAbstractMap* self, gconstpointer key, gconstpointer value);
+ gpointer (*get) (GeeAbstractMap* self, gconstpointer key);
+ void (*set) (GeeAbstractMap* self, gconstpointer key, gconstpointer value);
+ gboolean (*unset) (GeeAbstractMap* self, gconstpointer key, gpointer* value);
+ GeeMapIterator* (*map_iterator) (GeeAbstractMap* self);
+ void (*clear) (GeeAbstractMap* self);
+ gboolean (*foreach) (GeeAbstractMap* self, GeeForallFunc f, void* f_target);
+ GeeIterator* (*stream) (GeeAbstractMap* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, void* f_target, GDestroyNotify f_target_destroy_notify);
+ void (*reserved0) (GeeAbstractMap* self);
+ void (*reserved1) (GeeAbstractMap* self);
+ void (*reserved2) (GeeAbstractMap* self);
+ void (*reserved3) (GeeAbstractMap* self);
+ void (*reserved4) (GeeAbstractMap* self);
+ void (*reserved5) (GeeAbstractMap* self);
+ void (*reserved6) (GeeAbstractMap* self);
+ void (*reserved7) (GeeAbstractMap* self);
+ void (*reserved8) (GeeAbstractMap* self);
+ void (*reserved9) (GeeAbstractMap* self);
+ gint (*get_size) (GeeAbstractMap* self);
+ gboolean (*get_read_only) (GeeAbstractMap* self);
+ GeeSet* (*get_keys) (GeeAbstractMap* self);
+ GeeCollection* (*get_values) (GeeAbstractMap* self);
+ GeeSet* (*get_entries) (GeeAbstractMap* self);
+ GeeMap* (*get_read_only_view) (GeeAbstractMap* self);
+};
+
+struct _GeeSortedMapIface {
+ GTypeInterface parent_iface;
+ GeeSortedMap* (*head_map) (GeeSortedMap* self, gconstpointer before);
+ GeeSortedMap* (*tail_map) (GeeSortedMap* self, gconstpointer after);
+ GeeSortedMap* (*sub_map) (GeeSortedMap* self, gconstpointer before, gconstpointer after);
+ GeeSortedSet* (*get_ascending_keys) (GeeSortedMap* self);
+ GeeSortedSet* (*get_ascending_entries) (GeeSortedMap* self);
+ GeeSortedMap* (*get_read_only_view) (GeeSortedMap* self);
+};
+
+struct _GeeAbstractSortedMap {
+ GeeAbstractMap parent_instance;
+ GeeAbstractSortedMapPrivate * priv;
+};
+
+struct _GeeAbstractSortedMapClass {
+ GeeAbstractMapClass parent_class;
+ GeeSortedMap* (*head_map) (GeeAbstractSortedMap* self, gconstpointer before);
+ GeeSortedMap* (*tail_map) (GeeAbstractSortedMap* self, gconstpointer after);
+ GeeSortedMap* (*sub_map) (GeeAbstractSortedMap* self, gconstpointer before, gconstpointer after);
+ void (*reserved0) (GeeAbstractSortedMap* self);
+ void (*reserved1) (GeeAbstractSortedMap* self);
+ void (*reserved2) (GeeAbstractSortedMap* self);
+ void (*reserved3) (GeeAbstractSortedMap* self);
+ void (*reserved4) (GeeAbstractSortedMap* self);
+ void (*reserved5) (GeeAbstractSortedMap* self);
+ void (*reserved6) (GeeAbstractSortedMap* self);
+ void (*reserved7) (GeeAbstractSortedMap* self);
+ void (*reserved8) (GeeAbstractSortedMap* self);
+ void (*reserved9) (GeeAbstractSortedMap* self);
+ GeeSortedSet* (*get_ascending_keys) (GeeAbstractSortedMap* self);
+ GeeSortedSet* (*get_ascending_entries) (GeeAbstractSortedMap* self);
+};
+
+struct _GeeBidirMapIteratorIface {
+ GTypeInterface parent_iface;
+ GType (*get_k_type) (GeeBidirMapIterator* self);
+ GBoxedCopyFunc (*get_k_dup_func) (GeeBidirMapIterator* self);
+ GDestroyNotify (*get_k_destroy_func) (GeeBidirMapIterator* self);
+ GType (*get_v_type) (GeeBidirMapIterator* self);
+ GBoxedCopyFunc (*get_v_dup_func) (GeeBidirMapIterator* self);
+ GDestroyNotify (*get_v_destroy_func) (GeeBidirMapIterator* self);
+ gboolean (*previous) (GeeBidirMapIterator* self);
+ gboolean (*has_previous) (GeeBidirMapIterator* self);
+ gboolean (*first) (GeeBidirMapIterator* self);
+ gboolean (*last) (GeeBidirMapIterator* self);
+};
+
+struct _GeeBidirSortedMapIface {
+ GTypeInterface parent_iface;
+ GType (*get_k_type) (GeeBidirSortedMap* self);
+ GBoxedCopyFunc (*get_k_dup_func) (GeeBidirSortedMap* self);
+ GDestroyNotify (*get_k_destroy_func) (GeeBidirSortedMap* self);
+ GType (*get_v_type) (GeeBidirSortedMap* self);
+ GBoxedCopyFunc (*get_v_dup_func) (GeeBidirSortedMap* self);
+ GDestroyNotify (*get_v_destroy_func) (GeeBidirSortedMap* self);
+ GeeBidirMapIterator* (*bidir_map_iterator) (GeeBidirSortedMap* self);
+ GeeBidirSortedMap* (*get_read_only_view) (GeeBidirSortedMap* self);
+};
+
+struct _GeeAbstractBidirSortedMap {
+ GeeAbstractSortedMap parent_instance;
+ GeeAbstractBidirSortedMapPrivate * priv;
+};
+
+struct _GeeAbstractBidirSortedMapClass {
+ GeeAbstractSortedMapClass parent_class;
+ GeeBidirMapIterator* (*bidir_map_iterator) (GeeAbstractBidirSortedMap* self);
+ void (*reserved0) (GeeAbstractBidirSortedMap* self);
+ void (*reserved1) (GeeAbstractBidirSortedMap* self);
+ void (*reserved2) (GeeAbstractBidirSortedMap* self);
+ void (*reserved3) (GeeAbstractBidirSortedMap* self);
+ void (*reserved4) (GeeAbstractBidirSortedMap* self);
+ void (*reserved5) (GeeAbstractBidirSortedMap* self);
+ void (*reserved6) (GeeAbstractBidirSortedMap* self);
+ void (*reserved7) (GeeAbstractBidirSortedMap* self);
+ void (*reserved8) (GeeAbstractBidirSortedMap* self);
+ void (*reserved9) (GeeAbstractBidirSortedMap* self);
+ GeeBidirSortedMap* (*get_read_only_view) (GeeAbstractBidirSortedMap* self);
+};
+
+struct _GeeMultiSetIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeMultiSet* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeMultiSet* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeMultiSet* self);
+ gint (*count) (GeeMultiSet* self, gconstpointer item);
+ GeeMultiSet* (*get_read_only_view) (GeeMultiSet* self);
+};
+
+struct _GeeMultiMapIface {
+ GTypeInterface parent_iface;
+ GType (*get_k_type) (GeeMultiMap* self);
+ GBoxedCopyFunc (*get_k_dup_func) (GeeMultiMap* self);
+ GDestroyNotify (*get_k_destroy_func) (GeeMultiMap* self);
+ GType (*get_v_type) (GeeMultiMap* self);
+ GBoxedCopyFunc (*get_v_dup_func) (GeeMultiMap* self);
+ GDestroyNotify (*get_v_destroy_func) (GeeMultiMap* self);
+ GeeSet* (*get_keys) (GeeMultiMap* self);
+ GeeMultiSet* (*get_all_keys) (GeeMultiMap* self);
+ GeeCollection* (*get_values) (GeeMultiMap* self);
+ gboolean (*contains) (GeeMultiMap* self, gconstpointer key);
+ GeeCollection* (*get) (GeeMultiMap* self, gconstpointer key);
+ void (*set) (GeeMultiMap* self, gconstpointer key, gconstpointer value);
+ gboolean (*remove) (GeeMultiMap* self, gconstpointer key, gconstpointer value);
+ gboolean (*remove_all) (GeeMultiMap* self, gconstpointer key);
+ void (*clear) (GeeMultiMap* self);
+ GeeMapIterator* (*map_iterator) (GeeMultiMap* self);
+ gint (*get_size) (GeeMultiMap* self);
+ gboolean (*get_read_only) (GeeMultiMap* self);
+ GeeMultiMap* (*get_read_only_view) (GeeMultiMap* self);
+};
+
+typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, void* user_data);
+struct _GeeAbstractMultiMap {
+ GObject parent_instance;
+ GeeAbstractMultiMapPrivate * priv;
+ GeeMap* _storage_map;
+};
+
+struct _GeeAbstractMultiMapClass {
+ GObjectClass parent_class;
+ GeeCollection* (*create_value_storage) (GeeAbstractMultiMap* self);
+ GeeMultiSet* (*create_multi_key_set) (GeeAbstractMultiMap* self);
+ GeeEqualDataFunc (*get_value_equal_func) (GeeAbstractMultiMap* self, void** result_target, GDestroyNotify* result_target_destroy_notify);
+ void (*reserved0) (GeeAbstractMultiMap* self);
+ void (*reserved1) (GeeAbstractMultiMap* self);
+ void (*reserved2) (GeeAbstractMultiMap* self);
+ void (*reserved3) (GeeAbstractMultiMap* self);
+ void (*reserved4) (GeeAbstractMultiMap* self);
+ void (*reserved5) (GeeAbstractMultiMap* self);
+ void (*reserved6) (GeeAbstractMultiMap* self);
+ void (*reserved7) (GeeAbstractMultiMap* self);
+ void (*reserved8) (GeeAbstractMultiMap* self);
+ GeeMultiMap* (*get_read_only_view) (GeeAbstractMultiMap* self);
+};
+
+struct _GeeAbstractMultiSet {
+ GeeAbstractCollection parent_instance;
+ GeeAbstractMultiSetPrivate * priv;
+ GeeMap* _storage_map;
+};
+
+struct _GeeAbstractMultiSetClass {
+ GeeAbstractCollectionClass parent_class;
+ void (*reserved0) (GeeAbstractMultiSet* self);
+ void (*reserved1) (GeeAbstractMultiSet* self);
+ void (*reserved2) (GeeAbstractMultiSet* self);
+ void (*reserved3) (GeeAbstractMultiSet* self);
+ void (*reserved4) (GeeAbstractMultiSet* self);
+ void (*reserved5) (GeeAbstractMultiSet* self);
+ void (*reserved6) (GeeAbstractMultiSet* self);
+ void (*reserved7) (GeeAbstractMultiSet* self);
+ void (*reserved8) (GeeAbstractMultiSet* self);
+ GeeMultiSet* (*get_read_only_view) (GeeAbstractMultiSet* self);
+};
+
+struct _GeeQueueIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeQueue* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeQueue* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeQueue* self);
+ gboolean (*offer) (GeeQueue* self, gconstpointer element);
+ gpointer (*peek) (GeeQueue* self);
+ gpointer (*poll) (GeeQueue* self);
+ gint (*drain) (GeeQueue* self, GeeCollection* recipient, gint amount);
+ gint (*get_capacity) (GeeQueue* self);
+ gint (*get_remaining_capacity) (GeeQueue* self);
+ gboolean (*get_is_full) (GeeQueue* self);
+};
+
+struct _GeeAbstractQueue {
+ GeeAbstractCollection parent_instance;
+ GeeAbstractQueuePrivate * priv;
+};
+
+struct _GeeAbstractQueueClass {
+ GeeAbstractCollectionClass parent_class;
+ gpointer (*peek) (GeeAbstractQueue* self);
+ gpointer (*poll) (GeeAbstractQueue* self);
+ void (*reserved0) (GeeAbstractQueue* self);
+ void (*reserved1) (GeeAbstractQueue* self);
+ void (*reserved2) (GeeAbstractQueue* self);
+ void (*reserved3) (GeeAbstractQueue* self);
+ void (*reserved4) (GeeAbstractQueue* self);
+ void (*reserved5) (GeeAbstractQueue* self);
+ void (*reserved6) (GeeAbstractQueue* self);
+ void (*reserved7) (GeeAbstractQueue* self);
+ void (*reserved8) (GeeAbstractQueue* self);
+ void (*reserved9) (GeeAbstractQueue* self);
+ gint (*get_capacity) (GeeAbstractQueue* self);
+ gint (*get_remaining_capacity) (GeeAbstractQueue* self);
+ gboolean (*get_is_full) (GeeAbstractQueue* self);
+};
+
+struct _GeeArrayList {
+ GeeAbstractBidirList parent_instance;
+ GeeArrayListPrivate * priv;
+ gpointer* _items;
+ gint _items_length1;
+ gint __items_size_;
+ gint _size;
+};
+
+struct _GeeArrayListClass {
+ GeeAbstractBidirListClass parent_class;
+};
+
+struct _GeeDequeIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeDeque* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeDeque* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeDeque* self);
+ gboolean (*offer_head) (GeeDeque* self, gconstpointer element);
+ gpointer (*peek_head) (GeeDeque* self);
+ gpointer (*poll_head) (GeeDeque* self);
+ gint (*drain_head) (GeeDeque* self, GeeCollection* recipient, gint amount);
+ gboolean (*offer_tail) (GeeDeque* self, gconstpointer element);
+ gpointer (*peek_tail) (GeeDeque* self);
+ gpointer (*poll_tail) (GeeDeque* self);
+ gint (*drain_tail) (GeeDeque* self, GeeCollection* recipient, gint amount);
+};
+
+struct _GeeArrayQueue {
+ GeeAbstractQueue parent_instance;
+ GeeArrayQueuePrivate * priv;
+};
+
+struct _GeeArrayQueueClass {
+ GeeAbstractQueueClass parent_class;
+};
+
+struct _GeeComparableIface {
+ GTypeInterface parent_iface;
+ gint (*compare_to) (GeeComparable* self, gconstpointer object);
+};
+
+struct _GeeConcurrentList {
+ GeeAbstractList parent_instance;
+ GeeConcurrentListPrivate * priv;
+};
+
+struct _GeeConcurrentListClass {
+ GeeAbstractListClass parent_class;
+};
+
+struct _GeeConcurrentSet {
+ GeeAbstractSortedSet parent_instance;
+ GeeConcurrentSetPrivate * priv;
+};
+
+struct _GeeConcurrentSetClass {
+ GeeAbstractSortedSetClass parent_class;
+};
+
+typedef enum {
+ GEE_CONCURRENT_SET_RANGE_TYPE_HEAD,
+ GEE_CONCURRENT_SET_RANGE_TYPE_TAIL,
+ GEE_CONCURRENT_SET_RANGE_TYPE_BOUNDED,
+ GEE_CONCURRENT_SET_RANGE_TYPE_EMPTY
+} GeeConcurrentSetRangeType;
+
+typedef guint (*GeeHashDataFunc) (gconstpointer v, void* user_data);
+struct _GeeHashableIface {
+ GTypeInterface parent_iface;
+ guint (*hash) (GeeHashable* self);
+ gboolean (*equal_to) (GeeHashable* self, gconstpointer object);
+};
+
+struct _GeeHashMap {
+ GeeAbstractMap parent_instance;
+ GeeHashMapPrivate * priv;
+};
+
+struct _GeeHashMapClass {
+ GeeAbstractMapClass parent_class;
+};
+
+struct _GeeHashMultiMap {
+ GeeAbstractMultiMap parent_instance;
+ GeeHashMultiMapPrivate * priv;
+};
+
+struct _GeeHashMultiMapClass {
+ GeeAbstractMultiMapClass parent_class;
+};
+
+struct _GeeHashMultiSet {
+ GeeAbstractMultiSet parent_instance;
+ GeeHashMultiSetPrivate * priv;
+};
+
+struct _GeeHashMultiSetClass {
+ GeeAbstractMultiSetClass parent_class;
+};
+
+struct _GeeHashSet {
+ GeeAbstractSet parent_instance;
+ GeeHashSetPrivate * priv;
+};
+
+struct _GeeHashSetClass {
+ GeeAbstractSetClass parent_class;
+};
+
+struct _GeeHazardPointer {
+ GeeHazardPointerNode* _node;
+};
+
+typedef enum {
+ GEE_HAZARD_POINTER_POLICY_DEFAULT,
+ GEE_HAZARD_POINTER_POLICY_THREAD_EXIT,
+ GEE_HAZARD_POINTER_POLICY_TRY_FREE,
+ GEE_HAZARD_POINTER_POLICY_FREE,
+ GEE_HAZARD_POINTER_POLICY_TRY_RELEASE,
+ GEE_HAZARD_POINTER_POLICY_RELEASE
+} GeeHazardPointerPolicy;
+
+typedef enum {
+ GEE_HAZARD_POINTER_RELEASE_POLICY_HELPER_THREAD,
+ GEE_HAZARD_POINTER_RELEASE_POLICY_MAIN_LOOP
+} GeeHazardPointerReleasePolicy;
+
+typedef void (*GeeHazardPointerDestroyNotify) (void* ptr, void* user_data);
+struct _GeeHazardPointerContext {
+ GeeHazardPointerContext* _parent;
+ GeeArrayList* _to_free;
+ GeeHazardPointerPolicy* _policy;
+};
+
+struct _GeeHazardPointerFreeNode {
+ void* pointer;
+ GeeHazardPointerDestroyNotify destroy_notify;
+ gpointer destroy_notify_target;
+ GDestroyNotify destroy_notify_target_destroy_notify;
+};
+
+struct _GeeHazardPointerNode {
+ GeeHazardPointerNode* _next;
+ gint _active;
+ void* _hazard;
+};
+
+typedef GeeLazy* (*GeeUnfoldFunc) (void* user_data);
+typedef gpointer (*GeeLazyFunc) (void* user_data);
+struct _GeeLazy {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ GeeLazyPrivate * priv;
+};
+
+struct _GeeLazyClass {
+ GTypeClass parent_class;
+ void (*finalize) (GeeLazy *self);
+};
+
+struct _GeeLinkedList {
+ GeeAbstractBidirList parent_instance;
+ GeeLinkedListPrivate * priv;
+};
+
+struct _GeeLinkedListClass {
+ GeeAbstractBidirListClass parent_class;
+};
+
+struct _GeeMapEntry {
+ GObject parent_instance;
+ GeeMapEntryPrivate * priv;
+};
+
+struct _GeeMapEntryClass {
+ GObjectClass parent_class;
+ gconstpointer (*get_key) (GeeMapEntry* self);
+ gconstpointer (*get_value) (GeeMapEntry* self);
+ void (*set_value) (GeeMapEntry* self, gconstpointer value);
+ gboolean (*get_read_only) (GeeMapEntry* self);
+};
+
+struct _GeePriorityQueue {
+ GeeAbstractQueue parent_instance;
+ GeePriorityQueuePrivate * priv;
+};
+
+struct _GeePriorityQueueClass {
+ GeeAbstractQueueClass parent_class;
+};
+
+struct _GeeReadOnlyCollection {
+ GObject parent_instance;
+ GeeReadOnlyCollectionPrivate * priv;
+ GeeCollection* _collection;
+};
+
+struct _GeeReadOnlyCollectionClass {
+ GObjectClass parent_class;
+ GeeCollection* (*get_read_only_view) (GeeReadOnlyCollection* self);
+};
+
+struct _GeeReadOnlyList {
+ GeeReadOnlyCollection parent_instance;
+ GeeReadOnlyListPrivate * priv;
+};
+
+struct _GeeReadOnlyListClass {
+ GeeReadOnlyCollectionClass parent_class;
+ GeeList* (*get_read_only_view) (GeeReadOnlyList* self);
+};
+
+struct _GeeReadOnlyBidirList {
+ GeeReadOnlyList parent_instance;
+ GeeReadOnlyBidirListPrivate * priv;
+};
+
+struct _GeeReadOnlyBidirListClass {
+ GeeReadOnlyListClass parent_class;
+ GeeBidirList* (*get_read_only_view) (GeeReadOnlyBidirList* self);
+};
+
+struct _GeeReadOnlySet {
+ GeeReadOnlyCollection parent_instance;
+ GeeReadOnlySetPrivate * priv;
+};
+
+struct _GeeReadOnlySetClass {
+ GeeReadOnlyCollectionClass parent_class;
+ GeeSet* (*get_read_only_view) (GeeReadOnlySet* self);
+};
+
+struct _GeeReadOnlySortedSet {
+ GeeReadOnlySet parent_instance;
+ GeeReadOnlySortedSetPrivate * priv;
+};
+
+struct _GeeReadOnlySortedSetClass {
+ GeeReadOnlySetClass parent_class;
+};
+
+struct _GeeReadOnlyBidirSortedSet {
+ GeeReadOnlySortedSet parent_instance;
+ GeeReadOnlyBidirSortedSetPrivate * priv;
+};
+
+struct _GeeReadOnlyBidirSortedSetClass {
+ GeeReadOnlySortedSetClass parent_class;
+};
+
+struct _GeeReadOnlyCollectionIterator {
+ GObject parent_instance;
+ GeeReadOnlyCollectionIteratorPrivate * priv;
+ GeeIterator* _iter;
+};
+
+struct _GeeReadOnlyCollectionIteratorClass {
+ GObjectClass parent_class;
+};
+
+struct _GeeReadOnlyBidirSortedSetBidirIterator {
+ GeeReadOnlyCollectionIterator parent_instance;
+ GeeReadOnlyBidirSortedSetBidirIteratorPrivate * priv;
+};
+
+struct _GeeReadOnlyBidirSortedSetBidirIteratorClass {
+ GeeReadOnlyCollectionIteratorClass parent_class;
+};
+
+struct _GeeReadOnlyMap {
+ GObject parent_instance;
+ GeeReadOnlyMapPrivate * priv;
+ GeeMap* _map;
+};
+
+struct _GeeReadOnlyMapClass {
+ GObjectClass parent_class;
+ GeeMap* (*get_read_only_view) (GeeReadOnlyMap* self);
+};
+
+struct _GeeReadOnlySortedMap {
+ GeeReadOnlyMap parent_instance;
+ GeeReadOnlySortedMapPrivate * priv;
+};
+
+struct _GeeReadOnlySortedMapClass {
+ GeeReadOnlyMapClass parent_class;
+};
+
+struct _GeeReadOnlyBidirSortedMap {
+ GeeReadOnlySortedMap parent_instance;
+ GeeReadOnlyBidirSortedMapPrivate * priv;
+};
+
+struct _GeeReadOnlyBidirSortedMapClass {
+ GeeReadOnlySortedMapClass parent_class;
+};
+
+struct _GeeReadOnlyMapMapIterator {
+ GObject parent_instance;
+ GeeReadOnlyMapMapIteratorPrivate * priv;
+ GeeMapIterator* _iter;
+};
+
+struct _GeeReadOnlyMapMapIteratorClass {
+ GObjectClass parent_class;
+};
+
+struct _GeeReadOnlyBidirSortedMapBidirMapIterator {
+ GeeReadOnlyMapMapIterator parent_instance;
+ GeeReadOnlyBidirSortedMapBidirMapIteratorPrivate * priv;
+};
+
+struct _GeeReadOnlyBidirSortedMapBidirMapIteratorClass {
+ GeeReadOnlyMapMapIteratorClass parent_class;
+};
+
+struct _GeeReadOnlyListIterator {
+ GeeReadOnlyCollectionIterator parent_instance;
+ GeeReadOnlyListIteratorPrivate * priv;
+};
+
+struct _GeeReadOnlyListIteratorClass {
+ GeeReadOnlyCollectionIteratorClass parent_class;
+};
+
+struct _GeeReadOnlyMultiMap {
+ GObject parent_instance;
+ GeeReadOnlyMultiMapPrivate * priv;
+};
+
+struct _GeeReadOnlyMultiMapClass {
+ GObjectClass parent_class;
+ GeeMultiMap* (*get_read_only_view) (GeeReadOnlyMultiMap* self);
+};
+
+struct _GeeReadOnlyMultiSet {
+ GeeReadOnlyCollection parent_instance;
+ GeeReadOnlyMultiSetPrivate * priv;
+};
+
+struct _GeeReadOnlyMultiSetClass {
+ GeeReadOnlyCollectionClass parent_class;
+ GeeMultiSet* (*get_read_only_view) (GeeReadOnlyMultiSet* self);
+};
+
+struct _GeeTimSort {
+ GObject parent_instance;
+ GeeTimSortPrivate * priv;
+};
+
+struct _GeeTimSortClass {
+ GObjectClass parent_class;
+};
+
+struct _GeeTreeMap {
+ GeeAbstractBidirSortedMap parent_instance;
+ GeeTreeMapPrivate * priv;
+};
+
+struct _GeeTreeMapClass {
+ GeeAbstractBidirSortedMapClass parent_class;
+};
+
+struct _GeeTreeMultiMap {
+ GeeAbstractMultiMap parent_instance;
+ GeeTreeMultiMapPrivate * priv;
+};
+
+struct _GeeTreeMultiMapClass {
+ GeeAbstractMultiMapClass parent_class;
+};
+
+struct _GeeTreeMultiSet {
+ GeeAbstractMultiSet parent_instance;
+ GeeTreeMultiSetPrivate * priv;
+};
+
+struct _GeeTreeMultiSetClass {
+ GeeAbstractMultiSetClass parent_class;
+};
+
+struct _GeeTreeSet {
+ GeeAbstractBidirSortedSet parent_instance;
+ GeeTreeSetPrivate * priv;
+};
+
+struct _GeeTreeSetClass {
+ GeeAbstractBidirSortedSetClass parent_class;
+};
+
+struct _GeeUnfoldIterator {
+ GObject parent_instance;
+ GeeUnfoldIteratorPrivate * priv;
+};
+
+struct _GeeUnfoldIteratorClass {
+ GObjectClass parent_class;
+};
+
+
+GType gee_traversable_stream_get_type (void) G_GNUC_CONST;
+gpointer gee_lazy_ref (gpointer instance);
+void gee_lazy_unref (gpointer instance);
+GParamSpec* gee_param_spec_lazy (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void gee_value_set_lazy (GValue* value, gpointer v_object);
+void gee_value_take_lazy (GValue* value, gpointer v_object);
+gpointer gee_value_get_lazy (const GValue* value);
+GType gee_lazy_get_type (void) G_GNUC_CONST;
+GType gee_iterator_get_type (void) G_GNUC_CONST;
+GType gee_traversable_get_type (void) G_GNUC_CONST;
+GType gee_iterable_get_type (void) G_GNUC_CONST;
+GType gee_collection_get_type (void) G_GNUC_CONST;
+GType gee_abstract_collection_get_type (void) G_GNUC_CONST;
+GType gee_list_iterator_get_type (void) G_GNUC_CONST;
+GType gee_list_get_type (void) G_GNUC_CONST;
+GType gee_abstract_list_get_type (void) G_GNUC_CONST;
+GType gee_bidir_iterator_get_type (void) G_GNUC_CONST;
+GType gee_bidir_list_iterator_get_type (void) G_GNUC_CONST;
+GType gee_bidir_list_get_type (void) G_GNUC_CONST;
+GType gee_abstract_bidir_list_get_type (void) G_GNUC_CONST;
+GeeBidirListIterator* gee_abstract_bidir_list_bidir_list_iterator (GeeAbstractBidirList* self);
+void gee_abstract_bidir_list_reserved0 (GeeAbstractBidirList* self);
+void gee_abstract_bidir_list_reserved1 (GeeAbstractBidirList* self);
+void gee_abstract_bidir_list_reserved2 (GeeAbstractBidirList* self);
+void gee_abstract_bidir_list_reserved3 (GeeAbstractBidirList* self);
+void gee_abstract_bidir_list_reserved4 (GeeAbstractBidirList* self);
+void gee_abstract_bidir_list_reserved5 (GeeAbstractBidirList* self);
+void gee_abstract_bidir_list_reserved6 (GeeAbstractBidirList* self);
+void gee_abstract_bidir_list_reserved7 (GeeAbstractBidirList* self);
+void gee_abstract_bidir_list_reserved8 (GeeAbstractBidirList* self);
+void gee_abstract_bidir_list_reserved9 (GeeAbstractBidirList* self);
+GeeAbstractBidirList* gee_abstract_bidir_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+GeeBidirList* gee_abstract_bidir_list_get_read_only_view (GeeAbstractBidirList* self);
+GType gee_set_get_type (void) G_GNUC_CONST;
+GType gee_abstract_set_get_type (void) G_GNUC_CONST;
+GType gee_sorted_set_get_type (void) G_GNUC_CONST;
+GType gee_abstract_sorted_set_get_type (void) G_GNUC_CONST;
+GType gee_bidir_sorted_set_get_type (void) G_GNUC_CONST;
+GType gee_abstract_bidir_sorted_set_get_type (void) G_GNUC_CONST;
+GeeBidirIterator* gee_abstract_bidir_sorted_set_bidir_iterator (GeeAbstractBidirSortedSet* self);
+void gee_abstract_bidir_sorted_set_reserved0 (GeeAbstractBidirSortedSet* self);
+void gee_abstract_bidir_sorted_set_reserved1 (GeeAbstractBidirSortedSet* self);
+void gee_abstract_bidir_sorted_set_reserved2 (GeeAbstractBidirSortedSet* self);
+void gee_abstract_bidir_sorted_set_reserved3 (GeeAbstractBidirSortedSet* self);
+void gee_abstract_bidir_sorted_set_reserved4 (GeeAbstractBidirSortedSet* self);
+void gee_abstract_bidir_sorted_set_reserved5 (GeeAbstractBidirSortedSet* self);
+void gee_abstract_bidir_sorted_set_reserved6 (GeeAbstractBidirSortedSet* self);
+void gee_abstract_bidir_sorted_set_reserved7 (GeeAbstractBidirSortedSet* self);
+void gee_abstract_bidir_sorted_set_reserved8 (GeeAbstractBidirSortedSet* self);
+void gee_abstract_bidir_sorted_set_reserved9 (GeeAbstractBidirSortedSet* self);
+GeeAbstractBidirSortedSet* gee_abstract_bidir_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+GeeBidirSortedSet* gee_abstract_bidir_sorted_set_get_read_only_view (GeeAbstractBidirSortedSet* self);
+GType gee_map_iterator_get_type (void) G_GNUC_CONST;
+GType gee_map_entry_get_type (void) G_GNUC_CONST;
+GType gee_map_get_type (void) G_GNUC_CONST;
+GType gee_abstract_map_get_type (void) G_GNUC_CONST;
+GType gee_sorted_map_get_type (void) G_GNUC_CONST;
+GType gee_abstract_sorted_map_get_type (void) G_GNUC_CONST;
+GType gee_bidir_map_iterator_get_type (void) G_GNUC_CONST;
+GType gee_bidir_sorted_map_get_type (void) G_GNUC_CONST;
+GType gee_abstract_bidir_sorted_map_get_type (void) G_GNUC_CONST;
+GeeBidirMapIterator* gee_abstract_bidir_sorted_map_bidir_map_iterator (GeeAbstractBidirSortedMap* self);
+void gee_abstract_bidir_sorted_map_reserved0 (GeeAbstractBidirSortedMap* self);
+void gee_abstract_bidir_sorted_map_reserved1 (GeeAbstractBidirSortedMap* self);
+void gee_abstract_bidir_sorted_map_reserved2 (GeeAbstractBidirSortedMap* self);
+void gee_abstract_bidir_sorted_map_reserved3 (GeeAbstractBidirSortedMap* self);
+void gee_abstract_bidir_sorted_map_reserved4 (GeeAbstractBidirSortedMap* self);
+void gee_abstract_bidir_sorted_map_reserved5 (GeeAbstractBidirSortedMap* self);
+void gee_abstract_bidir_sorted_map_reserved6 (GeeAbstractBidirSortedMap* self);
+void gee_abstract_bidir_sorted_map_reserved7 (GeeAbstractBidirSortedMap* self);
+void gee_abstract_bidir_sorted_map_reserved8 (GeeAbstractBidirSortedMap* self);
+void gee_abstract_bidir_sorted_map_reserved9 (GeeAbstractBidirSortedMap* self);
+GeeAbstractBidirSortedMap* gee_abstract_bidir_sorted_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func);
+GeeBidirSortedMap* gee_abstract_bidir_sorted_map_get_read_only_view (GeeAbstractBidirSortedMap* self);
+gboolean gee_abstract_collection_contains (GeeAbstractCollection* self, gconstpointer item);
+gboolean gee_abstract_collection_add (GeeAbstractCollection* self, gconstpointer item);
+gboolean gee_abstract_collection_remove (GeeAbstractCollection* self, gconstpointer item);
+void gee_abstract_collection_clear (GeeAbstractCollection* self);
+GeeIterator* gee_abstract_collection_iterator (GeeAbstractCollection* self);
+gboolean gee_abstract_collection_foreach (GeeAbstractCollection* self, GeeForallFunc f, void* f_target);
+void gee_abstract_collection_reserved0 (GeeAbstractCollection* self);
+void gee_abstract_collection_reserved1 (GeeAbstractCollection* self);
+void gee_abstract_collection_reserved2 (GeeAbstractCollection* self);
+void gee_abstract_collection_reserved3 (GeeAbstractCollection* self);
+void gee_abstract_collection_reserved4 (GeeAbstractCollection* self);
+void gee_abstract_collection_reserved5 (GeeAbstractCollection* self);
+void gee_abstract_collection_reserved6 (GeeAbstractCollection* self);
+void gee_abstract_collection_reserved7 (GeeAbstractCollection* self);
+void gee_abstract_collection_reserved8 (GeeAbstractCollection* self);
+void gee_abstract_collection_reserved9 (GeeAbstractCollection* self);
+GeeAbstractCollection* gee_abstract_collection_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+gint gee_abstract_collection_get_size (GeeAbstractCollection* self);
+gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self);
+GeeCollection* gee_abstract_collection_get_read_only_view (GeeAbstractCollection* self);
+GeeListIterator* gee_abstract_list_list_iterator (GeeAbstractList* self);
+gpointer gee_abstract_list_get (GeeAbstractList* self, gint index);
+void gee_abstract_list_set (GeeAbstractList* self, gint index, gconstpointer item);
+gint gee_abstract_list_index_of (GeeAbstractList* self, gconstpointer item);
+void gee_abstract_list_insert (GeeAbstractList* self, gint index, gconstpointer item);
+gpointer gee_abstract_list_remove_at (GeeAbstractList* self, gint index);
+GeeList* gee_abstract_list_slice (GeeAbstractList* self, gint start, gint stop);
+void gee_abstract_list_reserved0 (GeeAbstractList* self);
+void gee_abstract_list_reserved1 (GeeAbstractList* self);
+void gee_abstract_list_reserved2 (GeeAbstractList* self);
+void gee_abstract_list_reserved3 (GeeAbstractList* self);
+void gee_abstract_list_reserved4 (GeeAbstractList* self);
+void gee_abstract_list_reserved5 (GeeAbstractList* self);
+void gee_abstract_list_reserved6 (GeeAbstractList* self);
+void gee_abstract_list_reserved7 (GeeAbstractList* self);
+void gee_abstract_list_reserved8 (GeeAbstractList* self);
+void gee_abstract_list_reserved9 (GeeAbstractList* self);
+GeeAbstractList* gee_abstract_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+GeeList* gee_abstract_list_get_read_only_view (GeeAbstractList* self);
+gboolean gee_abstract_map_has_key (GeeAbstractMap* self, gconstpointer key);
+gboolean gee_abstract_map_has (GeeAbstractMap* self, gconstpointer key, gconstpointer value);
+gpointer gee_abstract_map_get (GeeAbstractMap* self, gconstpointer key);
+void gee_abstract_map_set (GeeAbstractMap* self, gconstpointer key, gconstpointer value);
+gboolean gee_abstract_map_unset (GeeAbstractMap* self, gconstpointer key, gpointer* value);
+GeeMapIterator* gee_abstract_map_map_iterator (GeeAbstractMap* self);
+void gee_abstract_map_clear (GeeAbstractMap* self);
+gboolean gee_abstract_map_foreach (GeeAbstractMap* self, GeeForallFunc f, void* f_target);
+GeeIterator* gee_abstract_map_stream (GeeAbstractMap* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, void* f_target, GDestroyNotify f_target_destroy_notify);
+void gee_abstract_map_reserved0 (GeeAbstractMap* self);
+void gee_abstract_map_reserved1 (GeeAbstractMap* self);
+void gee_abstract_map_reserved2 (GeeAbstractMap* self);
+void gee_abstract_map_reserved3 (GeeAbstractMap* self);
+void gee_abstract_map_reserved4 (GeeAbstractMap* self);
+void gee_abstract_map_reserved5 (GeeAbstractMap* self);
+void gee_abstract_map_reserved6 (GeeAbstractMap* self);
+void gee_abstract_map_reserved7 (GeeAbstractMap* self);
+void gee_abstract_map_reserved8 (GeeAbstractMap* self);
+void gee_abstract_map_reserved9 (GeeAbstractMap* self);
+GeeAbstractMap* gee_abstract_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func);
+gint gee_abstract_map_get_size (GeeAbstractMap* self);
+gboolean gee_abstract_map_get_read_only (GeeAbstractMap* self);
+GeeSet* gee_abstract_map_get_keys (GeeAbstractMap* self);
+GeeCollection* gee_abstract_map_get_values (GeeAbstractMap* self);
+GeeSet* gee_abstract_map_get_entries (GeeAbstractMap* self);
+GeeMap* gee_abstract_map_get_read_only_view (GeeAbstractMap* self);
+GType gee_multi_set_get_type (void) G_GNUC_CONST;
+GType gee_multi_map_get_type (void) G_GNUC_CONST;
+GType gee_abstract_multi_map_get_type (void) G_GNUC_CONST;
+GeeAbstractMultiMap* gee_abstract_multi_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* storage_map);
+GeeCollection* gee_abstract_multi_map_create_value_storage (GeeAbstractMultiMap* self);
+GeeMultiSet* gee_abstract_multi_map_create_multi_key_set (GeeAbstractMultiMap* self);
+GeeEqualDataFunc gee_abstract_multi_map_get_value_equal_func (GeeAbstractMultiMap* self, void** result_target, GDestroyNotify* result_target_destroy_notify);
+void gee_abstract_multi_map_reserved0 (GeeAbstractMultiMap* self);
+void gee_abstract_multi_map_reserved1 (GeeAbstractMultiMap* self);
+void gee_abstract_multi_map_reserved2 (GeeAbstractMultiMap* self);
+void gee_abstract_multi_map_reserved3 (GeeAbstractMultiMap* self);
+void gee_abstract_multi_map_reserved4 (GeeAbstractMultiMap* self);
+void gee_abstract_multi_map_reserved5 (GeeAbstractMultiMap* self);
+void gee_abstract_multi_map_reserved6 (GeeAbstractMultiMap* self);
+void gee_abstract_multi_map_reserved7 (GeeAbstractMultiMap* self);
+void gee_abstract_multi_map_reserved8 (GeeAbstractMultiMap* self);
+GeeMultiMap* gee_abstract_multi_map_get_read_only_view (GeeAbstractMultiMap* self);
+GType gee_abstract_multi_set_get_type (void) G_GNUC_CONST;
+GeeAbstractMultiSet* gee_abstract_multi_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeMap* storage_map);
+void gee_abstract_multi_set_reserved0 (GeeAbstractMultiSet* self);
+void gee_abstract_multi_set_reserved1 (GeeAbstractMultiSet* self);
+void gee_abstract_multi_set_reserved2 (GeeAbstractMultiSet* self);
+void gee_abstract_multi_set_reserved3 (GeeAbstractMultiSet* self);
+void gee_abstract_multi_set_reserved4 (GeeAbstractMultiSet* self);
+void gee_abstract_multi_set_reserved5 (GeeAbstractMultiSet* self);
+void gee_abstract_multi_set_reserved6 (GeeAbstractMultiSet* self);
+void gee_abstract_multi_set_reserved7 (GeeAbstractMultiSet* self);
+void gee_abstract_multi_set_reserved8 (GeeAbstractMultiSet* self);
+GeeMultiSet* gee_abstract_multi_set_get_read_only_view (GeeAbstractMultiSet* self);
+GType gee_queue_get_type (void) G_GNUC_CONST;
+GType gee_abstract_queue_get_type (void) G_GNUC_CONST;
+gpointer gee_abstract_queue_peek (GeeAbstractQueue* self);
+gpointer gee_abstract_queue_poll (GeeAbstractQueue* self);
+void gee_abstract_queue_reserved0 (GeeAbstractQueue* self);
+void gee_abstract_queue_reserved1 (GeeAbstractQueue* self);
+void gee_abstract_queue_reserved2 (GeeAbstractQueue* self);
+void gee_abstract_queue_reserved3 (GeeAbstractQueue* self);
+void gee_abstract_queue_reserved4 (GeeAbstractQueue* self);
+void gee_abstract_queue_reserved5 (GeeAbstractQueue* self);
+void gee_abstract_queue_reserved6 (GeeAbstractQueue* self);
+void gee_abstract_queue_reserved7 (GeeAbstractQueue* self);
+void gee_abstract_queue_reserved8 (GeeAbstractQueue* self);
+void gee_abstract_queue_reserved9 (GeeAbstractQueue* self);
+GeeAbstractQueue* gee_abstract_queue_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+gint gee_abstract_queue_get_capacity (GeeAbstractQueue* self);
+gint gee_abstract_queue_get_remaining_capacity (GeeAbstractQueue* self);
+gboolean gee_abstract_queue_get_is_full (GeeAbstractQueue* self);
+void gee_abstract_set_reserved0 (GeeAbstractSet* self);
+void gee_abstract_set_reserved1 (GeeAbstractSet* self);
+void gee_abstract_set_reserved2 (GeeAbstractSet* self);
+void gee_abstract_set_reserved3 (GeeAbstractSet* self);
+void gee_abstract_set_reserved4 (GeeAbstractSet* self);
+void gee_abstract_set_reserved5 (GeeAbstractSet* self);
+void gee_abstract_set_reserved6 (GeeAbstractSet* self);
+void gee_abstract_set_reserved7 (GeeAbstractSet* self);
+void gee_abstract_set_reserved8 (GeeAbstractSet* self);
+void gee_abstract_set_reserved9 (GeeAbstractSet* self);
+GeeAbstractSet* gee_abstract_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+GeeSet* gee_abstract_set_get_read_only_view (GeeAbstractSet* self);
+GeeSortedMap* gee_abstract_sorted_map_head_map (GeeAbstractSortedMap* self, gconstpointer before);
+GeeSortedMap* gee_abstract_sorted_map_tail_map (GeeAbstractSortedMap* self, gconstpointer after);
+GeeSortedMap* gee_abstract_sorted_map_sub_map (GeeAbstractSortedMap* self, gconstpointer before, gconstpointer after);
+void gee_abstract_sorted_map_reserved0 (GeeAbstractSortedMap* self);
+void gee_abstract_sorted_map_reserved1 (GeeAbstractSortedMap* self);
+void gee_abstract_sorted_map_reserved2 (GeeAbstractSortedMap* self);
+void gee_abstract_sorted_map_reserved3 (GeeAbstractSortedMap* self);
+void gee_abstract_sorted_map_reserved4 (GeeAbstractSortedMap* self);
+void gee_abstract_sorted_map_reserved5 (GeeAbstractSortedMap* self);
+void gee_abstract_sorted_map_reserved6 (GeeAbstractSortedMap* self);
+void gee_abstract_sorted_map_reserved7 (GeeAbstractSortedMap* self);
+void gee_abstract_sorted_map_reserved8 (GeeAbstractSortedMap* self);
+void gee_abstract_sorted_map_reserved9 (GeeAbstractSortedMap* self);
+GeeAbstractSortedMap* gee_abstract_sorted_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func);
+GeeSortedSet* gee_abstract_sorted_map_get_ascending_keys (GeeAbstractSortedMap* self);
+GeeSortedSet* gee_abstract_sorted_map_get_ascending_entries (GeeAbstractSortedMap* self);
+gpointer gee_abstract_sorted_set_first (GeeAbstractSortedSet* self);
+gpointer gee_abstract_sorted_set_last (GeeAbstractSortedSet* self);
+GeeIterator* gee_abstract_sorted_set_iterator_at (GeeAbstractSortedSet* self, gconstpointer element);
+gpointer gee_abstract_sorted_set_lower (GeeAbstractSortedSet* self, gconstpointer element);
+gpointer gee_abstract_sorted_set_higher (GeeAbstractSortedSet* self, gconstpointer element);
+gpointer gee_abstract_sorted_set_floor (GeeAbstractSortedSet* self, gconstpointer element);
+gpointer gee_abstract_sorted_set_ceil (GeeAbstractSortedSet* self, gconstpointer element);
+GeeSortedSet* gee_abstract_sorted_set_head_set (GeeAbstractSortedSet* self, gconstpointer before);
+GeeSortedSet* gee_abstract_sorted_set_tail_set (GeeAbstractSortedSet* self, gconstpointer after);
+GeeSortedSet* gee_abstract_sorted_set_sub_set (GeeAbstractSortedSet* self, gconstpointer from, gconstpointer to);
+void gee_abstract_sorted_set_reserved0 (GeeAbstractSortedSet* self);
+void gee_abstract_sorted_set_reserved1 (GeeAbstractSortedSet* self);
+void gee_abstract_sorted_set_reserved2 (GeeAbstractSortedSet* self);
+void gee_abstract_sorted_set_reserved3 (GeeAbstractSortedSet* self);
+void gee_abstract_sorted_set_reserved4 (GeeAbstractSortedSet* self);
+void gee_abstract_sorted_set_reserved5 (GeeAbstractSortedSet* self);
+void gee_abstract_sorted_set_reserved6 (GeeAbstractSortedSet* self);
+void gee_abstract_sorted_set_reserved7 (GeeAbstractSortedSet* self);
+void gee_abstract_sorted_set_reserved8 (GeeAbstractSortedSet* self);
+void gee_abstract_sorted_set_reserved9 (GeeAbstractSortedSet* self);
+GeeAbstractSortedSet* gee_abstract_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+GeeSortedSet* gee_abstract_sorted_set_get_read_only_view (GeeAbstractSortedSet* self);
+GType gee_array_list_get_type (void) G_GNUC_CONST;
+GeeArrayList* gee_array_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeArrayList* gee_array_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeArrayList* gee_array_list_new_wrap (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gpointer* items, int items_length1, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeArrayList* gee_array_list_construct_wrap (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gpointer* items, int items_length1, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+gboolean gee_array_list_add_all (GeeArrayList* self, GeeCollection* collection);
+GeeEqualDataFunc gee_array_list_get_equal_func (GeeArrayList* self, gpointer* result_target);
+GType gee_deque_get_type (void) G_GNUC_CONST;
+GType gee_array_queue_get_type (void) G_GNUC_CONST;
+GeeArrayQueue* gee_array_queue_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeArrayQueue* gee_array_queue_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeEqualDataFunc gee_array_queue_get_equal_func (GeeArrayQueue* self, gpointer* result_target);
+gboolean gee_array_queue_get_is_empty (GeeArrayQueue* self);
+gboolean gee_bidir_iterator_previous (GeeBidirIterator* self);
+gboolean gee_bidir_iterator_has_previous (GeeBidirIterator* self);
+gboolean gee_bidir_iterator_first (GeeBidirIterator* self);
+gboolean gee_bidir_iterator_last (GeeBidirIterator* self);
+GeeBidirListIterator* gee_bidir_list_bidir_list_iterator (GeeBidirList* self);
+GeeBidirList* gee_bidir_list_get_read_only_view (GeeBidirList* self);
+void gee_bidir_list_iterator_insert (GeeBidirListIterator* self, gconstpointer item);
+gboolean gee_bidir_map_iterator_previous (GeeBidirMapIterator* self);
+gboolean gee_bidir_map_iterator_has_previous (GeeBidirMapIterator* self);
+gboolean gee_bidir_map_iterator_first (GeeBidirMapIterator* self);
+gboolean gee_bidir_map_iterator_last (GeeBidirMapIterator* self);
+GeeBidirIterator* gee_bidir_sorted_set_bidir_iterator (GeeBidirSortedSet* self);
+GeeBidirSortedSet* gee_bidir_sorted_set_empty (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+GeeBidirSortedSet* gee_bidir_sorted_set_get_read_only_view (GeeBidirSortedSet* self);
+GeeBidirMapIterator* gee_bidir_sorted_map_bidir_map_iterator (GeeBidirSortedMap* self);
+GeeBidirSortedMap* gee_bidir_sorted_map_empty (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func);
+GeeBidirSortedMap* gee_bidir_sorted_map_get_read_only_view (GeeBidirSortedMap* self);
+gboolean gee_collection_contains (GeeCollection* self, gconstpointer item);
+gboolean gee_collection_add (GeeCollection* self, gconstpointer item);
+gboolean gee_collection_remove (GeeCollection* self, gconstpointer item);
+void gee_collection_clear (GeeCollection* self);
+gboolean gee_collection_add_all (GeeCollection* self, GeeCollection* collection);
+gboolean gee_collection_contains_all (GeeCollection* self, GeeCollection* collection);
+gboolean gee_collection_remove_all (GeeCollection* self, GeeCollection* collection);
+gboolean gee_collection_retain_all (GeeCollection* self, GeeCollection* collection);
+gpointer* gee_collection_to_array (GeeCollection* self, int* result_length1);
+gboolean gee_collection_add_all_array (GeeCollection* self, gpointer* array, int array_length1);
+gboolean gee_collection_contains_all_array (GeeCollection* self, gpointer* array, int array_length1);
+gboolean gee_collection_remove_all_array (GeeCollection* self, gpointer* array, int array_length1);
+GeeCollection* gee_collection_empty (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+gint gee_collection_get_size (GeeCollection* self);
+gboolean gee_collection_get_is_empty (GeeCollection* self);
+gboolean gee_collection_get_read_only (GeeCollection* self);
+GeeCollection* gee_collection_get_read_only_view (GeeCollection* self);
+GType gee_comparable_get_type (void) G_GNUC_CONST;
+gint gee_comparable_compare_to (GeeComparable* self, gconstpointer object);
+GType gee_concurrent_list_get_type (void) G_GNUC_CONST;
+GeeConcurrentList* gee_concurrent_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeConcurrentList* gee_concurrent_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeEqualDataFunc gee_concurrent_list_get_equal_func (GeeConcurrentList* self, gpointer* result_target);
+gboolean gee_concurrent_list_get_is_empty (GeeConcurrentList* self);
+GType gee_concurrent_set_get_type (void) G_GNUC_CONST;
+GType gee_concurrent_set_range_type_get_type (void) G_GNUC_CONST;
+GeeConcurrentSet* gee_concurrent_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+GeeConcurrentSet* gee_concurrent_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+gboolean gee_deque_offer_head (GeeDeque* self, gconstpointer element);
+gpointer gee_deque_peek_head (GeeDeque* self);
+gpointer gee_deque_poll_head (GeeDeque* self);
+gint gee_deque_drain_head (GeeDeque* self, GeeCollection* recipient, gint amount);
+gboolean gee_deque_offer_tail (GeeDeque* self, gconstpointer element);
+gpointer gee_deque_peek_tail (GeeDeque* self);
+gpointer gee_deque_poll_tail (GeeDeque* self);
+gint gee_deque_drain_tail (GeeDeque* self, GeeCollection* recipient, gint amount);
+GeeEqualDataFunc gee_functions_get_equal_func_for (GType t, void** result_target, GDestroyNotify* result_target_destroy_notify);
+GeeHashDataFunc gee_functions_get_hash_func_for (GType t, void** result_target, GDestroyNotify* result_target_destroy_notify);
+GCompareDataFunc gee_functions_get_compare_func_for (GType t, void** result_target, GDestroyNotify* result_target_destroy_notify);
+GType gee_hashable_get_type (void) G_GNUC_CONST;
+guint gee_hashable_hash (GeeHashable* self);
+gboolean gee_hashable_equal_to (GeeHashable* self, gconstpointer object);
+GType gee_hash_map_get_type (void) G_GNUC_CONST;
+GeeHashMap* gee_hash_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeHashDataFunc key_hash_func, void* key_hash_func_target, GDestroyNotify key_hash_func_target_destroy_notify, GeeEqualDataFunc key_equal_func, void* key_equal_func_target, GDestroyNotify key_equal_func_target_destroy_notify, GeeEqualDataFunc value_equal_func, void* value_equal_func_target, GDestroyNotify value_equal_func_target_destroy_notify);
+GeeHashMap* gee_hash_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeHashDataFunc key_hash_func, void* key_hash_func_target, GDestroyNotify key_hash_func_target_destroy_notify, GeeEqualDataFunc key_equal_func, void* key_equal_func_target, GDestroyNotify key_equal_func_target_destroy_notify, GeeEqualDataFunc value_equal_func, void* value_equal_func_target, GDestroyNotify value_equal_func_target_destroy_notify);
+GeeHashDataFunc gee_hash_map_get_key_hash_func (GeeHashMap* self, gpointer* result_target);
+GeeEqualDataFunc gee_hash_map_get_key_equal_func (GeeHashMap* self, gpointer* result_target);
+GeeEqualDataFunc gee_hash_map_get_value_equal_func (GeeHashMap* self, gpointer* result_target);
+GType gee_hash_multi_map_get_type (void) G_GNUC_CONST;
+GeeHashMultiMap* gee_hash_multi_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeHashDataFunc key_hash_func, void* key_hash_func_target, GDestroyNotify key_hash_func_target_destroy_notify, GeeEqualDataFunc key_equal_func, void* key_equal_func_target, GDestroyNotify key_equal_func_target_destroy_notify, GeeHashDataFunc value_hash_func, void* value_hash_func_target, GDestroyNotify value_hash_func_target_destroy_notify, GeeEqualDataFunc value_equal_func, void* value_equal_func_target, GDestroyNotify value_equal_func_target_destroy_notify);
+GeeHashMultiMap* gee_hash_multi_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeHashDataFunc key_hash_func, void* key_hash_func_target, GDestroyNotify key_hash_func_target_destroy_notify, GeeEqualDataFunc key_equal_func, void* key_equal_func_target, GDestroyNotify key_equal_func_target_destroy_notify, GeeHashDataFunc value_hash_func, void* value_hash_func_target, GDestroyNotify value_hash_func_target_destroy_notify, GeeEqualDataFunc value_equal_func, void* value_equal_func_target, GDestroyNotify value_equal_func_target_destroy_notify);
+GeeHashDataFunc gee_hash_multi_map_get_key_hash_func (GeeHashMultiMap* self, gpointer* result_target);
+GeeEqualDataFunc gee_hash_multi_map_get_key_equal_func (GeeHashMultiMap* self, gpointer* result_target);
+GeeHashDataFunc gee_hash_multi_map_get_value_hash_func (GeeHashMultiMap* self, gpointer* result_target);
+GeeEqualDataFunc gee_hash_multi_map_get_value_equal_func (GeeHashMultiMap* self, gpointer* result_target);
+GType gee_hash_multi_set_get_type (void) G_GNUC_CONST;
+GeeHashMultiSet* gee_hash_multi_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeHashDataFunc hash_func, void* hash_func_target, GeeEqualDataFunc equal_func, void* equal_func_target);
+GeeHashMultiSet* gee_hash_multi_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeHashDataFunc hash_func, void* hash_func_target, GeeEqualDataFunc equal_func, void* equal_func_target);
+GeeHashDataFunc gee_hash_multi_set_get_hash_func (GeeHashMultiSet* self, gpointer* result_target);
+GeeEqualDataFunc gee_hash_multi_set_get_equal_func (GeeHashMultiSet* self, gpointer* result_target);
+GType gee_hash_set_get_type (void) G_GNUC_CONST;
+GeeHashSet* gee_hash_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeHashDataFunc hash_func, void* hash_func_target, GDestroyNotify hash_func_target_destroy_notify, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeHashSet* gee_hash_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeHashDataFunc hash_func, void* hash_func_target, GDestroyNotify hash_func_target_destroy_notify, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeHashDataFunc gee_hash_set_get_hash_func (GeeHashSet* self, gpointer* result_target);
+GeeEqualDataFunc gee_hash_set_get_equal_func (GeeHashSet* self, gpointer* result_target);
+void gee_hazard_pointer_free (GeeHazardPointer* self);
+void gee_hazard_pointer_node_free (GeeHazardPointerNode* self);
+GType gee_hazard_pointer_policy_get_type (void) G_GNUC_CONST;
+gboolean gee_hazard_pointer_policy_is_concrete (GeeHazardPointerPolicy self);
+gboolean gee_hazard_pointer_policy_is_blocking (GeeHazardPointerPolicy self);
+gboolean gee_hazard_pointer_policy_is_safe (GeeHazardPointerPolicy self);
+GeeHazardPointerPolicy gee_hazard_pointer_policy_to_concrete (GeeHazardPointerPolicy self);
+void gee_hazard_pointer_free_node_free (GeeHazardPointerFreeNode* self);
+GeeArrayList* gee_hazard_pointer_policy_perform (GeeHazardPointerPolicy self, GeeArrayList* to_free);
+void gee_hazard_pointer_release_policy_ensure_start (void);
+GType gee_hazard_pointer_release_policy_get_type (void) G_GNUC_CONST;
+extern GeeHazardPointerNode* gee_hazard_pointer__head;
+extern gint gee_hazard_pointer__default_policy;
+extern gint gee_hazard_pointer__thread_exit_policy;
+extern gint gee_hazard_pointer_release_policy;
+extern GeeQueue* gee_hazard_pointer__queue;
+extern GStaticMutex gee_hazard_pointer__queue_mutex;
+extern GeeArrayList* gee_hazard_pointer__global_to_free;
+GeeHazardPointer* gee_hazard_pointer_new (gconstpointer* ptr);
+GeeHazardPointer* gee_hazard_pointer_new (gconstpointer* ptr);
+GeeHazardPointer* gee_hazard_pointer_new_from_node (GeeHazardPointerNode* node);
+GeeHazardPointer* gee_hazard_pointer_new_from_node (GeeHazardPointerNode* node);
+GeeHazardPointer* gee_hazard_pointer_get_hazard_pointer (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer** aptr, gsize mask, gsize* mask_out);
+gpointer gee_hazard_pointer_get_pointer (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer** aptr, gsize mask, gsize* mask_out);
+GeeHazardPointer* gee_hazard_pointer_exchange_hazard_pointer (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer** aptr, gpointer new_ptr, gsize mask, gsize new_mask, gsize* old_mask);
+void gee_hazard_pointer_set_pointer (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer** aptr, gpointer new_ptr, gsize mask, gsize new_mask);
+gpointer gee_hazard_pointer_exchange_pointer (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer** aptr, gpointer new_ptr, gsize mask, gsize new_mask, gsize* old_mask);
+gboolean gee_hazard_pointer_compare_and_exchange_pointer (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer** aptr, gconstpointer old_ptr, gpointer _new_ptr, gsize mask, gsize old_mask, gsize new_mask);
+gconstpointer gee_hazard_pointer_get (GeeHazardPointer* self, gboolean other_thread);
+void gee_hazard_pointer_release (GeeHazardPointer* self, GeeHazardPointerDestroyNotify notify, void* notify_target, GDestroyNotify notify_target_destroy_notify);
+void gee_hazard_pointer_set_default_policy (GeeHazardPointerPolicy policy);
+void gee_hazard_pointer_set_thread_exit_policy (GeeHazardPointerPolicy policy);
+gboolean gee_hazard_pointer_set_release_policy (GeeHazardPointerReleasePolicy policy);
+GeeHazardPointerNode* gee_hazard_pointer_acquire (void);
+gboolean gee_hazard_pointer_try_free (GeeArrayList* to_free);
+GeeHazardPointerNode* gee_hazard_pointer_get_head (void);
+GeeHazardPointerDestroyNotify gee_hazard_pointer_get_destroy_notify (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, void** result_target, GDestroyNotify* result_target_destroy_notify);
+void gee_hazard_pointer_context_free (GeeHazardPointerContext* self);
+extern GStaticPrivate gee_hazard_pointer_context__current_context;
+extern GStaticPrivate gee_hazard_pointer_context__root_context;
+GeeHazardPointerContext* gee_hazard_pointer_context_new (GeeHazardPointerPolicy* policy);
+GeeHazardPointerContext* gee_hazard_pointer_context_new (GeeHazardPointerPolicy* policy);
+void gee_hazard_pointer_context_try_free (GeeHazardPointerContext* self);
+void gee_hazard_pointer_context_free_all (GeeHazardPointerContext* self);
+void gee_hazard_pointer_context_try_release (GeeHazardPointerContext* self);
+void gee_hazard_pointer_context_release (GeeHazardPointerContext* self);
+void gee_hazard_pointer_context_release_ptr (GeeHazardPointerContext* self, void* ptr, GeeHazardPointerDestroyNotify notify, void* notify_target, GDestroyNotify notify_target_destroy_notify);
+GeeHazardPointerContext* gee_hazard_pointer_context_get_current_context (void);
+GeeHazardPointerFreeNode* gee_hazard_pointer_free_node_new (void);
+GeeHazardPointerFreeNode* gee_hazard_pointer_free_node_new (void);
+GeeHazardPointerNode* gee_hazard_pointer_node_new (void);
+GeeHazardPointerNode* gee_hazard_pointer_node_new (void);
+void gee_hazard_pointer_node_release (GeeHazardPointerNode* self);
+gboolean gee_hazard_pointer_node_is_active (GeeHazardPointerNode* self);
+gboolean gee_hazard_pointer_node_activate (GeeHazardPointerNode* self);
+void gee_hazard_pointer_node_set (GeeHazardPointerNode* self, void* ptr);
+void* gee_hazard_pointer_node_get (GeeHazardPointerNode* self, gboolean safe);
+GeeHazardPointerNode* gee_hazard_pointer_node_get_next (GeeHazardPointerNode* self);
+void gee_hazard_pointer_node_set_next (GeeHazardPointerNode* self, GeeHazardPointerNode* next);
+GeeIterator* gee_iterable_iterator (GeeIterable* self);
+gboolean gee_iterator_next (GeeIterator* self);
+gboolean gee_iterator_has_next (GeeIterator* self);
+gpointer gee_iterator_get (GeeIterator* self);
+void gee_iterator_remove (GeeIterator* self);
+GeeIterator* gee_iterator_unfold (GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeUnfoldFunc f, void* f_target, GDestroyNotify f_target_destroy_notify, GeeLazy* current);
+GeeIterator* gee_iterator_concat (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeIterator* iters);
+gboolean gee_iterator_get_valid (GeeIterator* self);
+gboolean gee_iterator_get_read_only (GeeIterator* self);
+GeeLazy* gee_lazy_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeLazyFunc func, void* func_target, GDestroyNotify func_target_destroy_notify);
+GeeLazy* gee_lazy_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeLazyFunc func, void* func_target, GDestroyNotify func_target_destroy_notify);
+GeeLazy* gee_lazy_new_from_value (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer item);
+GeeLazy* gee_lazy_construct_from_value (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer item);
+void gee_lazy_eval (GeeLazy* self);
+gpointer gee_lazy_get (GeeLazy* self);
+gconstpointer gee_lazy_get_value (GeeLazy* self);
+GType gee_linked_list_get_type (void) G_GNUC_CONST;
+GeeLinkedList* gee_linked_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeLinkedList* gee_linked_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+gpointer gee_linked_list_first (GeeLinkedList* self);
+gpointer gee_linked_list_last (GeeLinkedList* self);
+GeeEqualDataFunc gee_linked_list_get_equal_func (GeeLinkedList* self, gpointer* result_target);
+GeeListIterator* gee_list_list_iterator (GeeList* self);
+gpointer gee_list_get (GeeList* self, gint index);
+void gee_list_set (GeeList* self, gint index, gconstpointer item);
+gint gee_list_index_of (GeeList* self, gconstpointer item);
+void gee_list_insert (GeeList* self, gint index, gconstpointer item);
+gpointer gee_list_remove_at (GeeList* self, gint index);
+GeeList* gee_list_slice (GeeList* self, gint start, gint stop);
+gpointer gee_list_first (GeeList* self);
+gpointer gee_list_last (GeeList* self);
+void gee_list_insert_all (GeeList* self, gint index, GeeCollection* collection);
+void gee_list_sort (GeeList* self, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+GeeList* gee_list_empty (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+GeeList* gee_list_get_read_only_view (GeeList* self);
+void gee_list_iterator_set (GeeListIterator* self, gconstpointer item);
+void gee_list_iterator_add (GeeListIterator* self, gconstpointer item);
+gint gee_list_iterator_index (GeeListIterator* self);
+gboolean gee_map_has_key (GeeMap* self, gconstpointer key);
+gboolean gee_map_contains (GeeMap* self, gconstpointer key) G_GNUC_DEPRECATED;
+gboolean gee_map_has (GeeMap* self, gconstpointer key, gconstpointer value);
+gpointer gee_map_get (GeeMap* self, gconstpointer key);
+void gee_map_set (GeeMap* self, gconstpointer key, gconstpointer value);
+gboolean gee_map_unset (GeeMap* self, gconstpointer key, gpointer* value);
+gboolean gee_map_remove (GeeMap* self, gconstpointer key, gpointer* value) G_GNUC_DEPRECATED;
+void gee_map_clear (GeeMap* self);
+GeeMapIterator* gee_map_map_iterator (GeeMap* self);
+void gee_map_set_all (GeeMap* self, GeeMap* map);
+gboolean gee_map_unset_all (GeeMap* self, GeeMap* map);
+gboolean gee_map_remove_all (GeeMap* self, GeeMap* map) G_GNUC_DEPRECATED;
+gboolean gee_map_has_all (GeeMap* self, GeeMap* map);
+gboolean gee_map_contains_all (GeeMap* self, GeeMap* map) G_GNUC_DEPRECATED;
+GeeMap* gee_map_empty (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func);
+gint gee_map_get_size (GeeMap* self);
+gboolean gee_map_get_is_empty (GeeMap* self);
+gboolean gee_map_get_read_only (GeeMap* self);
+GeeSet* gee_map_get_keys (GeeMap* self);
+GeeCollection* gee_map_get_values (GeeMap* self);
+GeeSet* gee_map_get_entries (GeeMap* self);
+GeeMap* gee_map_get_read_only_view (GeeMap* self);
+GType gee_map_get_key_type (GeeMap* self);
+GType gee_map_get_value_type (GeeMap* self);
+GeeMapEntry* gee_map_entry_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func);
+gconstpointer gee_map_entry_get_key (GeeMapEntry* self);
+gconstpointer gee_map_entry_get_value (GeeMapEntry* self);
+void gee_map_entry_set_value (GeeMapEntry* self, gconstpointer value);
+gboolean gee_map_entry_get_read_only (GeeMapEntry* self);
+gboolean gee_map_iterator_next (GeeMapIterator* self);
+gboolean gee_map_iterator_has_next (GeeMapIterator* self);
+gpointer gee_map_iterator_get_key (GeeMapIterator* self);
+gpointer gee_map_iterator_get_value (GeeMapIterator* self);
+void gee_map_iterator_set_value (GeeMapIterator* self, gconstpointer value);
+void gee_map_iterator_unset (GeeMapIterator* self);
+gpointer gee_map_iterator_fold (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, void* f_target, gpointer seed);
+gboolean gee_map_iterator_foreach (GeeMapIterator* self, GeeForallMapFunc f, void* f_target);
+gboolean gee_map_iterator_get_valid (GeeMapIterator* self);
+gboolean gee_map_iterator_get_mutable (GeeMapIterator* self);
+gboolean gee_map_iterator_get_read_only (GeeMapIterator* self);
+GeeSet* gee_multi_map_get_keys (GeeMultiMap* self);
+GeeMultiSet* gee_multi_map_get_all_keys (GeeMultiMap* self);
+GeeCollection* gee_multi_map_get_values (GeeMultiMap* self);
+gboolean gee_multi_map_contains (GeeMultiMap* self, gconstpointer key);
+GeeCollection* gee_multi_map_get (GeeMultiMap* self, gconstpointer key);
+void gee_multi_map_set (GeeMultiMap* self, gconstpointer key, gconstpointer value);
+gboolean gee_multi_map_remove (GeeMultiMap* self, gconstpointer key, gconstpointer value);
+gboolean gee_multi_map_remove_all (GeeMultiMap* self, gconstpointer key);
+void gee_multi_map_clear (GeeMultiMap* self);
+GeeMapIterator* gee_multi_map_map_iterator (GeeMultiMap* self);
+gint gee_multi_map_get_size (GeeMultiMap* self);
+gboolean gee_multi_map_get_read_only (GeeMultiMap* self);
+GType gee_multi_map_get_key_type (GeeMultiMap* self);
+GType gee_multi_map_get_value_type (GeeMultiMap* self);
+GeeMultiMap* gee_multi_map_get_read_only_view (GeeMultiMap* self);
+gint gee_multi_set_count (GeeMultiSet* self, gconstpointer item);
+GeeSet* gee_multi_set_empty (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+GeeMultiSet* gee_multi_set_get_read_only_view (GeeMultiSet* self);
+GType gee_priority_queue_get_type (void) G_GNUC_CONST;
+GeePriorityQueue* gee_priority_queue_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+GeePriorityQueue* gee_priority_queue_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+gboolean gee_priority_queue_offer (GeePriorityQueue* self, gconstpointer element);
+gint gee_priority_queue_drain (GeePriorityQueue* self, GeeCollection* recipient, gint amount);
+GCompareDataFunc gee_priority_queue_get_compare_func (GeePriorityQueue* self, gpointer* result_target);
+gboolean gee_queue_offer (GeeQueue* self, gconstpointer element);
+gpointer gee_queue_peek (GeeQueue* self);
+gpointer gee_queue_poll (GeeQueue* self);
+gint gee_queue_drain (GeeQueue* self, GeeCollection* recipient, gint amount);
+#define GEE_QUEUE_UNBOUNDED_CAPACITY (-1)
+gint gee_queue_get_capacity (GeeQueue* self);
+gint gee_queue_get_remaining_capacity (GeeQueue* self);
+gboolean gee_queue_get_is_full (GeeQueue* self);
+GType gee_read_only_collection_get_type (void) G_GNUC_CONST;
+GType gee_read_only_list_get_type (void) G_GNUC_CONST;
+GType gee_read_only_bidir_list_get_type (void) G_GNUC_CONST;
+GeeReadOnlyBidirList* gee_read_only_bidir_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirList* list);
+GeeReadOnlyBidirList* gee_read_only_bidir_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirList* list);
+GeeBidirList* gee_read_only_bidir_list_get_read_only_view (GeeReadOnlyBidirList* self);
+GType gee_read_only_set_get_type (void) G_GNUC_CONST;
+GType gee_read_only_sorted_set_get_type (void) G_GNUC_CONST;
+GType gee_read_only_bidir_sorted_set_get_type (void) G_GNUC_CONST;
+GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirSortedSet* set);
+GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirSortedSet* set);
+GType gee_read_only_collection_iterator_get_type (void) G_GNUC_CONST;
+GType gee_read_only_bidir_sorted_set_bidir_iterator_get_type (void) G_GNUC_CONST;
+GeeReadOnlyBidirSortedSetBidirIterator* gee_read_only_bidir_sorted_set_bidir_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirIterator* iterator);
+GeeReadOnlyBidirSortedSetBidirIterator* gee_read_only_bidir_sorted_set_bidir_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirIterator* iterator);
+GType gee_read_only_map_get_type (void) G_GNUC_CONST;
+GType gee_read_only_sorted_map_get_type (void) G_GNUC_CONST;
+GType gee_read_only_bidir_sorted_map_get_type (void) G_GNUC_CONST;
+GeeReadOnlyBidirSortedMap* gee_read_only_bidir_sorted_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeBidirSortedMap* map);
+GeeReadOnlyBidirSortedMap* gee_read_only_bidir_sorted_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeBidirSortedMap* map);
+GType gee_read_only_map_map_iterator_get_type (void) G_GNUC_CONST;
+GType gee_read_only_bidir_sorted_map_bidir_map_iterator_get_type (void) G_GNUC_CONST;
+GeeReadOnlyBidirSortedMapBidirMapIterator* gee_read_only_bidir_sorted_map_bidir_map_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeBidirMapIterator* iterator);
+GeeReadOnlyBidirSortedMapBidirMapIterator* gee_read_only_bidir_sorted_map_bidir_map_iterator_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeBidirMapIterator* iterator);
+GeeReadOnlyCollection* gee_read_only_collection_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeCollection* collection);
+GeeReadOnlyCollection* gee_read_only_collection_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeCollection* collection);
+GeeCollection* gee_read_only_collection_get_read_only_view (GeeReadOnlyCollection* self);
+GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeIterator* iterator);
+GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeIterator* iterator);
+GeeReadOnlyList* gee_read_only_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeList* list);
+GeeReadOnlyList* gee_read_only_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeList* list);
+GeeList* gee_read_only_list_get_read_only_view (GeeReadOnlyList* self);
+GType gee_read_only_list_iterator_get_type (void) G_GNUC_CONST;
+GeeReadOnlyListIterator* gee_read_only_list_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeListIterator* iterator);
+GeeReadOnlyListIterator* gee_read_only_list_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeListIterator* iterator);
+GeeReadOnlyMap* gee_read_only_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map);
+GeeReadOnlyMap* gee_read_only_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map);
+gboolean gee_read_only_map_contains (GeeReadOnlyMap* self, gconstpointer key);
+gboolean gee_read_only_map_remove (GeeReadOnlyMap* self, gconstpointer key, gpointer* value);
+gboolean gee_read_only_map_remove_all (GeeReadOnlyMap* self, GeeMap* map);
+gboolean gee_read_only_map_contains_all (GeeReadOnlyMap* self, GeeMap* map);
+GeeMap* gee_read_only_map_get_read_only_view (GeeReadOnlyMap* self);
+GType gee_read_only_map_get_key_type (GeeReadOnlyMap* self);
+GType gee_read_only_map_get_value_type (GeeReadOnlyMap* self);
+GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMapIterator* iterator);
+GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMapIterator* iterator);
+GType gee_read_only_multi_map_get_type (void) G_GNUC_CONST;
+GeeReadOnlyMultiMap* gee_read_only_multi_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMultiMap* multimap);
+GeeReadOnlyMultiMap* gee_read_only_multi_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMultiMap* multimap);
+GeeMultiMap* gee_read_only_multi_map_get_read_only_view (GeeReadOnlyMultiMap* self);
+GType gee_read_only_multi_set_get_type (void) G_GNUC_CONST;
+GeeReadOnlyMultiSet* gee_read_only_multi_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeMultiSet* multiset);
+GeeReadOnlyMultiSet* gee_read_only_multi_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeMultiSet* multiset);
+GeeMultiSet* gee_read_only_multi_set_get_read_only_view (GeeReadOnlyMultiSet* self);
+GeeReadOnlySet* gee_read_only_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSet* set);
+GeeReadOnlySet* gee_read_only_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSet* set);
+GeeSet* gee_read_only_set_get_read_only_view (GeeReadOnlySet* self);
+GeeReadOnlySortedMap* gee_read_only_sorted_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map);
+GeeReadOnlySortedMap* gee_read_only_sorted_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map);
+GeeReadOnlySortedSet* gee_read_only_sorted_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSortedSet* set);
+GeeReadOnlySortedSet* gee_read_only_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSortedSet* set);
+GeeSet* gee_set_empty (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+GeeSet* gee_set_get_read_only_view (GeeSet* self);
+GeeSortedMap* gee_sorted_map_head_map (GeeSortedMap* self, gconstpointer before);
+GeeSortedMap* gee_sorted_map_tail_map (GeeSortedMap* self, gconstpointer after);
+GeeSortedMap* gee_sorted_map_sub_map (GeeSortedMap* self, gconstpointer before, gconstpointer after);
+GeeMap* gee_sorted_map_empty (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func);
+GeeSortedSet* gee_sorted_map_get_ascending_keys (GeeSortedMap* self);
+GeeSortedSet* gee_sorted_map_get_ascending_entries (GeeSortedMap* self);
+GeeSortedMap* gee_sorted_map_get_read_only_view (GeeSortedMap* self);
+gpointer gee_sorted_set_first (GeeSortedSet* self);
+gpointer gee_sorted_set_last (GeeSortedSet* self);
+GeeIterator* gee_sorted_set_iterator_at (GeeSortedSet* self, gconstpointer element);
+gpointer gee_sorted_set_lower (GeeSortedSet* self, gconstpointer element);
+gpointer gee_sorted_set_higher (GeeSortedSet* self, gconstpointer element);
+gpointer gee_sorted_set_floor (GeeSortedSet* self, gconstpointer element);
+gpointer gee_sorted_set_ceil (GeeSortedSet* self, gconstpointer element);
+GeeSortedSet* gee_sorted_set_head_set (GeeSortedSet* self, gconstpointer before);
+GeeSortedSet* gee_sorted_set_tail_set (GeeSortedSet* self, gconstpointer after);
+GeeSortedSet* gee_sorted_set_sub_set (GeeSortedSet* self, gconstpointer from, gconstpointer to);
+GeeSortedSet* gee_sorted_set_empty (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+GeeSortedSet* gee_sorted_set_get_read_only_view (GeeSortedSet* self);
+GType gee_tim_sort_get_type (void) G_GNUC_CONST;
+void gee_tim_sort_sort (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeList* list, GCompareDataFunc compare, void* compare_target);
+GeeTimSort* gee_tim_sort_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+GeeTimSort* gee_tim_sort_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+gboolean gee_traversable_foreach (GeeTraversable* self, GeeForallFunc f, void* f_target);
+GeeIterator* gee_traversable_stream (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, void* f_target, GDestroyNotify f_target_destroy_notify);
+gpointer gee_traversable_fold (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
+GeeIterator* gee_traversable_map (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, void* f_target);
+GeeIterator* gee_traversable_scan (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
+GeeIterator* gee_traversable_filter (GeeTraversable* self, GeePredicate pred, void* pred_target, GDestroyNotify pred_target_destroy_notify);
+GeeIterator* gee_traversable_chop (GeeTraversable* self, gint offset, gint length);
+GType gee_traversable_get_element_type (GeeTraversable* self);
+GType gee_tree_map_get_type (void) G_GNUC_CONST;
+GeeTreeMap* gee_tree_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GCompareDataFunc key_compare_func, void* key_compare_func_target, GDestroyNotify key_compare_func_target_destroy_notify, GeeEqualDataFunc value_equal_func, void* value_equal_func_target, GDestroyNotify value_equal_func_target_destroy_notify);
+GeeTreeMap* gee_tree_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GCompareDataFunc key_compare_func, void* key_compare_func_target, GDestroyNotify key_compare_func_target_destroy_notify, GeeEqualDataFunc value_equal_func, void* value_equal_func_target, GDestroyNotify value_equal_func_target_destroy_notify);
+GCompareDataFunc gee_tree_map_get_key_compare_func (GeeTreeMap* self, gpointer* result_target);
+GeeEqualDataFunc gee_tree_map_get_value_equal_func (GeeTreeMap* self, gpointer* result_target);
+GType gee_tree_multi_map_get_type (void) G_GNUC_CONST;
+GeeTreeMultiMap* gee_tree_multi_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GCompareDataFunc key_compare_func, void* key_compare_func_target, GDestroyNotify key_compare_func_target_destroy_notify, GCompareDataFunc value_compare_func, void* value_compare_func_target, GDestroyNotify value_compare_func_target_destroy_notify);
+GeeTreeMultiMap* gee_tree_multi_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GCompareDataFunc key_compare_func, void* key_compare_func_target, GDestroyNotify key_compare_func_target_destroy_notify, GCompareDataFunc value_compare_func, void* value_compare_func_target, GDestroyNotify value_compare_func_target_destroy_notify);
+GCompareDataFunc gee_tree_multi_map_get_key_compare_func (GeeTreeMultiMap* self, gpointer* result_target);
+GCompareDataFunc gee_tree_multi_map_get_value_compare_func (GeeTreeMultiMap* self, gpointer* result_target);
+GType gee_tree_multi_set_get_type (void) G_GNUC_CONST;
+GeeTreeMultiSet* gee_tree_multi_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+GeeTreeMultiSet* gee_tree_multi_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+GCompareDataFunc gee_tree_multi_set_get_compare_func (GeeTreeMultiSet* self, gpointer* result_target);
+GType gee_tree_set_get_type (void) G_GNUC_CONST;
+GeeTreeSet* gee_tree_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+GeeTreeSet* gee_tree_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+GCompareDataFunc gee_tree_set_get_compare_func (GeeTreeSet* self, gpointer* result_target);
+GType gee_unfold_iterator_get_type (void) G_GNUC_CONST;
+GeeUnfoldIterator* gee_unfold_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeUnfoldFunc func, void* func_target, GDestroyNotify func_target_destroy_notify, GeeLazy* current);
+GeeUnfoldIterator* gee_unfold_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeUnfoldFunc func, void* func_target, GDestroyNotify func_target_destroy_notify, GeeLazy* current);
+
+
+G_END_DECLS
+
+#endif