<?xml version="1.0"?>
<repository version="1.2" xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
<include name="GObject" version="2.0"/>
<include name="GLib" version="2.0"/>
<include name="Gio" version="2.0"/>
<package name="gee-0.8"/>
<c:include name="gee.h"/>
<namespace name="Gee" version="0.8" c:prefix="Gee">
	<annotation key="ccode.gir-version" value="0.8"/>
	<annotation key="ccode.gir-namespace" value="Gee"/>
	<function name="functions_get_equal_func_for" c:identifier="gee_functions_get_equal_func_for">
		<return-value transfer-ownership="none" closure="1" scope="notified" destroy="2">
			<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
		</return-value>
		<parameters>
			<parameter name="t" transfer-ownership="none">
				<type name="GObject.Type" c:type="GType"/>
			</parameter>
			<parameter name="result_target" direction="out" transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="void*"/>
			</parameter>
			<parameter name="result_target_destroy_notify" direction="out" transfer-ownership="none">
				<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
			</parameter>
		</parameters>
	</function>
	<function name="functions_get_hash_func_for" c:identifier="gee_functions_get_hash_func_for">
		<return-value transfer-ownership="none" closure="1" scope="notified" destroy="2">
			<type name="Gee.HashDataFunc" c:type="GeeHashDataFunc"/>
		</return-value>
		<parameters>
			<parameter name="t" transfer-ownership="none">
				<type name="GObject.Type" c:type="GType"/>
			</parameter>
			<parameter name="result_target" direction="out" transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="void*"/>
			</parameter>
			<parameter name="result_target_destroy_notify" direction="out" transfer-ownership="none">
				<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
			</parameter>
		</parameters>
	</function>
	<function name="functions_get_compare_func_for" c:identifier="gee_functions_get_compare_func_for">
		<return-value transfer-ownership="none" closure="1" scope="notified" destroy="2">
			<type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
		</return-value>
		<parameters>
			<parameter name="t" transfer-ownership="none">
				<type name="GObject.Type" c:type="GType"/>
			</parameter>
			<parameter name="result_target" direction="out" transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="void*"/>
			</parameter>
			<parameter name="result_target_destroy_notify" direction="out" transfer-ownership="none">
				<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
			</parameter>
		</parameters>
	</function>
	<errordomain name="FutureError" get-quark="gee_future_error_quark" codes="FutureError">
</errordomain>
	<enumeration name="FutureError" c:type="GeeFutureError">
		<member name="abandon_promise" c:identifier="GEE_FUTURE_ERROR_ABANDON_PROMISE" value="0"/>
		<member name="exception" c:identifier="GEE_FUTURE_ERROR_EXCEPTION" value="1"/>
	</enumeration>
	<class name="AbstractBidirList" c:type="GeeAbstractBidirList" glib:type-name="GeeAbstractBidirList" glib:get-type="gee_abstract_bidir_list_get_type" glib:type-struct="AbstractBidirListClass" parent="Gee.AbstractList" abstract="1">
		<implements name="Gee.BidirList"/>
		<field name="parent_instance">
			<type name="Gee.AbstractList" c:type="GeeAbstractList"/>
		</field>
		<field name="priv">
			<type name="AbstractBidirListPrivate" c:type="GeeAbstractBidirListPrivate*"/>
		</field>
		<method name="bidir_list_iterator" c:identifier="gee_abstract_bidir_list_bidir_list_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.BidirListIterator" c:type="GeeBidirListIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="bidir_list_iterator" invoker="bidir_list_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.BidirListIterator" c:type="GeeBidirListIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
		<property name="read-only-view">
			<type name="Gee.BidirList" c:type="GeeBidirList*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</class>
	<record name="AbstractBidirListClass" c:type="GeeAbstractBidirListClass" glib:is-gtype-struct-for="AbstractBidirList">
		<field name="parent_class">
			<type name="Gee.AbstractListClass" c:type="GeeAbstractListClass"/>
		</field>
				<field name="bidir_list_iterator">
			<callback name="bidir_list_iterator" c:type="bidir_list_iterator">
				<return-value transfer-ownership="full">
					<type name="Gee.BidirListIterator" c:type="GeeBidirListIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirList" c:type="GeeAbstractBidirList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved0">
			<callback name="reserved0" c:type="reserved0">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirList" c:type="GeeAbstractBidirList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved1">
			<callback name="reserved1" c:type="reserved1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirList" c:type="GeeAbstractBidirList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved2">
			<callback name="reserved2" c:type="reserved2">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirList" c:type="GeeAbstractBidirList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved3">
			<callback name="reserved3" c:type="reserved3">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirList" c:type="GeeAbstractBidirList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved4">
			<callback name="reserved4" c:type="reserved4">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirList" c:type="GeeAbstractBidirList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved5">
			<callback name="reserved5" c:type="reserved5">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirList" c:type="GeeAbstractBidirList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved6">
			<callback name="reserved6" c:type="reserved6">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirList" c:type="GeeAbstractBidirList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved7">
			<callback name="reserved7" c:type="reserved7">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirList" c:type="GeeAbstractBidirList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved8">
			<callback name="reserved8" c:type="reserved8">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirList" c:type="GeeAbstractBidirList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved9">
			<callback name="reserved9" c:type="reserved9">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirList" c:type="GeeAbstractBidirList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="AbstractBidirListPrivate" c:type="GeeAbstractBidirListPrivate" disguised="1"/>
	<class name="AbstractBidirSortedSet" c:type="GeeAbstractBidirSortedSet" glib:type-name="GeeAbstractBidirSortedSet" glib:get-type="gee_abstract_bidir_sorted_set_get_type" glib:type-struct="AbstractBidirSortedSetClass" parent="Gee.AbstractSortedSet" abstract="1">
		<implements name="Gee.BidirSortedSet"/>
		<field name="parent_instance">
			<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet"/>
		</field>
		<field name="priv">
			<type name="AbstractBidirSortedSetPrivate" c:type="GeeAbstractBidirSortedSetPrivate*"/>
		</field>
		<method name="bidir_iterator" c:identifier="gee_abstract_bidir_sorted_set_bidir_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.BidirIterator" c:type="GeeBidirIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="bidir_iterator" invoker="bidir_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.BidirIterator" c:type="GeeBidirIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
		<property name="read-only-view">
			<type name="Gee.BidirSortedSet" c:type="GeeBidirSortedSet*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</class>
	<record name="AbstractBidirSortedSetClass" c:type="GeeAbstractBidirSortedSetClass" glib:is-gtype-struct-for="AbstractBidirSortedSet">
		<field name="parent_class">
			<type name="Gee.AbstractSortedSetClass" c:type="GeeAbstractSortedSetClass"/>
		</field>
				<field name="bidir_iterator">
			<callback name="bidir_iterator" c:type="bidir_iterator">
				<return-value transfer-ownership="full">
					<type name="Gee.BidirIterator" c:type="GeeBidirIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedSet" c:type="GeeAbstractBidirSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved0">
			<callback name="reserved0" c:type="reserved0">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedSet" c:type="GeeAbstractBidirSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved1">
			<callback name="reserved1" c:type="reserved1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedSet" c:type="GeeAbstractBidirSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved2">
			<callback name="reserved2" c:type="reserved2">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedSet" c:type="GeeAbstractBidirSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved3">
			<callback name="reserved3" c:type="reserved3">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedSet" c:type="GeeAbstractBidirSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved4">
			<callback name="reserved4" c:type="reserved4">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedSet" c:type="GeeAbstractBidirSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved5">
			<callback name="reserved5" c:type="reserved5">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedSet" c:type="GeeAbstractBidirSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved6">
			<callback name="reserved6" c:type="reserved6">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedSet" c:type="GeeAbstractBidirSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved7">
			<callback name="reserved7" c:type="reserved7">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedSet" c:type="GeeAbstractBidirSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved8">
			<callback name="reserved8" c:type="reserved8">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedSet" c:type="GeeAbstractBidirSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved9">
			<callback name="reserved9" c:type="reserved9">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedSet" c:type="GeeAbstractBidirSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="AbstractBidirSortedSetPrivate" c:type="GeeAbstractBidirSortedSetPrivate" disguised="1"/>
	<class name="AbstractBidirSortedMap" c:type="GeeAbstractBidirSortedMap" glib:type-name="GeeAbstractBidirSortedMap" glib:get-type="gee_abstract_bidir_sorted_map_get_type" glib:type-struct="AbstractBidirSortedMapClass" parent="Gee.AbstractSortedMap" abstract="1">
		<implements name="Gee.BidirSortedMap"/>
		<field name="parent_instance">
			<type name="Gee.AbstractSortedMap" c:type="GeeAbstractSortedMap"/>
		</field>
		<field name="priv">
			<type name="AbstractBidirSortedMapPrivate" c:type="GeeAbstractBidirSortedMapPrivate*"/>
		</field>
		<method name="bidir_map_iterator" c:identifier="gee_abstract_bidir_sorted_map_bidir_map_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.BidirMapIterator" c:type="GeeBidirMapIterator*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="bidir_map_iterator" invoker="bidir_map_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.BidirMapIterator" c:type="GeeBidirMapIterator*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
		<property name="read-only-view">
			<type name="Gee.BidirSortedMap" c:type="GeeBidirSortedMap*">
				<type name="gpointer" c:type="gpointer"/>
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</class>
	<record name="AbstractBidirSortedMapClass" c:type="GeeAbstractBidirSortedMapClass" glib:is-gtype-struct-for="AbstractBidirSortedMap">
		<field name="parent_class">
			<type name="Gee.AbstractSortedMapClass" c:type="GeeAbstractSortedMapClass"/>
		</field>
				<field name="bidir_map_iterator">
			<callback name="bidir_map_iterator" c:type="bidir_map_iterator">
				<return-value transfer-ownership="full">
					<type name="Gee.BidirMapIterator" c:type="GeeBidirMapIterator*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedMap" c:type="GeeAbstractBidirSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved0">
			<callback name="reserved0" c:type="reserved0">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedMap" c:type="GeeAbstractBidirSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved1">
			<callback name="reserved1" c:type="reserved1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedMap" c:type="GeeAbstractBidirSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved2">
			<callback name="reserved2" c:type="reserved2">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedMap" c:type="GeeAbstractBidirSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved3">
			<callback name="reserved3" c:type="reserved3">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedMap" c:type="GeeAbstractBidirSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved4">
			<callback name="reserved4" c:type="reserved4">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedMap" c:type="GeeAbstractBidirSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved5">
			<callback name="reserved5" c:type="reserved5">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedMap" c:type="GeeAbstractBidirSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved6">
			<callback name="reserved6" c:type="reserved6">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedMap" c:type="GeeAbstractBidirSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved7">
			<callback name="reserved7" c:type="reserved7">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedMap" c:type="GeeAbstractBidirSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved8">
			<callback name="reserved8" c:type="reserved8">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedMap" c:type="GeeAbstractBidirSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved9">
			<callback name="reserved9" c:type="reserved9">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractBidirSortedMap" c:type="GeeAbstractBidirSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="AbstractBidirSortedMapPrivate" c:type="GeeAbstractBidirSortedMapPrivate" disguised="1"/>
	<class name="AbstractCollection" c:type="GeeAbstractCollection" glib:type-name="GeeAbstractCollection" glib:get-type="gee_abstract_collection_get_type" glib:type-struct="AbstractCollectionClass" parent="GObject.Object" abstract="1">
		<implements name="Gee.Traversable"/>
		<implements name="Gee.Iterable"/>
		<implements name="Gee.Collection"/>
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="AbstractCollectionPrivate" c:type="GeeAbstractCollectionPrivate*"/>
		</field>
		<method name="contains" c:identifier="gee_abstract_collection_contains">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="contains" invoker="contains">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="add" c:identifier="gee_abstract_collection_add">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="add" invoker="add">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="remove" c:identifier="gee_abstract_collection_remove">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="remove" invoker="remove">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="clear" c:identifier="gee_abstract_collection_clear">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<virtual-method name="clear" invoker="clear">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</virtual-method>
		<method name="iterator" c:identifier="gee_abstract_collection_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="iterator" invoker="iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
		<method name="foreach" c:identifier="gee_abstract_collection_foreach">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1">
					<type name="Gee.ForallFunc" c:type="GeeForallFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="foreach" invoker="foreach">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1">
					<type name="Gee.ForallFunc" c:type="GeeForallFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="size">
			<type name="gint" c:type="gint"/>
		</property>
		<property name="read-only">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<property name="read-only-view">
			<type name="Gee.Collection" c:type="GeeCollection*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</class>
	<record name="AbstractCollectionClass" c:type="GeeAbstractCollectionClass" glib:is-gtype-struct-for="AbstractCollection">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
				<field name="contains">
			<callback name="contains" c:type="contains">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection*"/>
					</parameter>
					<parameter name="item" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="add">
			<callback name="add" c:type="add">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection*"/>
					</parameter>
					<parameter name="item" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="remove">
			<callback name="remove" c:type="remove">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection*"/>
					</parameter>
					<parameter name="item" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="clear">
			<callback name="clear" c:type="clear">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="iterator">
			<callback name="iterator" c:type="iterator">
				<return-value transfer-ownership="full">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="foreach">
			<callback name="foreach" c:type="foreach">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection*"/>
					</parameter>
					<parameter name="f" transfer-ownership="none" closure="2">
						<type name="Gee.ForallFunc" c:type="GeeForallFunc"/>
					</parameter>
					<parameter name="f_target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved0">
			<callback name="reserved0" c:type="reserved0">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved1">
			<callback name="reserved1" c:type="reserved1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved2">
			<callback name="reserved2" c:type="reserved2">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved3">
			<callback name="reserved3" c:type="reserved3">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved4">
			<callback name="reserved4" c:type="reserved4">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved5">
			<callback name="reserved5" c:type="reserved5">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved6">
			<callback name="reserved6" c:type="reserved6">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved7">
			<callback name="reserved7" c:type="reserved7">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved8">
			<callback name="reserved8" c:type="reserved8">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved9">
			<callback name="reserved9" c:type="reserved9">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="AbstractCollectionPrivate" c:type="GeeAbstractCollectionPrivate" disguised="1"/>
	<class name="AbstractList" c:type="GeeAbstractList" glib:type-name="GeeAbstractList" glib:get-type="gee_abstract_list_get_type" glib:type-struct="AbstractListClass" parent="Gee.AbstractCollection" abstract="1">
		<implements name="Gee.List"/>
		<field name="parent_instance">
			<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection"/>
		</field>
		<field name="priv">
			<type name="AbstractListPrivate" c:type="GeeAbstractListPrivate*"/>
		</field>
		<method name="list_iterator" c:identifier="gee_abstract_list_list_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.ListIterator" c:type="GeeListIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="list_iterator" invoker="list_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.ListIterator" c:type="GeeListIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
		<method name="get" c:identifier="gee_abstract_list_get">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="get" invoker="get">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="set" c:identifier="gee_abstract_list_set">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set" invoker="set">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="index_of" c:identifier="gee_abstract_list_index_of">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="index_of" invoker="index_of">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="insert" c:identifier="gee_abstract_list_insert">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="insert" invoker="insert">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="remove_at" c:identifier="gee_abstract_list_remove_at">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="remove_at" invoker="remove_at">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="slice" c:identifier="gee_abstract_list_slice">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gee.List" c:type="GeeList*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="start" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="stop" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="slice" invoker="slice">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gee.List" c:type="GeeList*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="start" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="stop" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="read-only-view">
			<type name="Gee.List" c:type="GeeList*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</class>
	<record name="AbstractListClass" c:type="GeeAbstractListClass" glib:is-gtype-struct-for="AbstractList">
		<field name="parent_class">
			<type name="Gee.AbstractCollectionClass" c:type="GeeAbstractCollectionClass"/>
		</field>
				<field name="list_iterator">
			<callback name="list_iterator" c:type="list_iterator">
				<return-value transfer-ownership="full">
					<type name="Gee.ListIterator" c:type="GeeListIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractList" c:type="GeeAbstractList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="get">
			<callback name="get" c:type="get">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractList" c:type="GeeAbstractList*"/>
					</parameter>
					<parameter name="index" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="set">
			<callback name="set" c:type="set">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractList" c:type="GeeAbstractList*"/>
					</parameter>
					<parameter name="index" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
					<parameter name="item" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="index_of">
			<callback name="index_of" c:type="index_of">
				<return-value transfer-ownership="full">
					<type name="gint" c:type="gint"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractList" c:type="GeeAbstractList*"/>
					</parameter>
					<parameter name="item" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="insert">
			<callback name="insert" c:type="insert">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractList" c:type="GeeAbstractList*"/>
					</parameter>
					<parameter name="index" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
					<parameter name="item" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="remove_at">
			<callback name="remove_at" c:type="remove_at">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractList" c:type="GeeAbstractList*"/>
					</parameter>
					<parameter name="index" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="slice">
			<callback name="slice" c:type="slice">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="Gee.List" c:type="GeeList*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractList" c:type="GeeAbstractList*"/>
					</parameter>
					<parameter name="start" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
					<parameter name="stop" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved0">
			<callback name="reserved0" c:type="reserved0">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractList" c:type="GeeAbstractList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved1">
			<callback name="reserved1" c:type="reserved1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractList" c:type="GeeAbstractList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved2">
			<callback name="reserved2" c:type="reserved2">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractList" c:type="GeeAbstractList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved3">
			<callback name="reserved3" c:type="reserved3">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractList" c:type="GeeAbstractList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved4">
			<callback name="reserved4" c:type="reserved4">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractList" c:type="GeeAbstractList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved5">
			<callback name="reserved5" c:type="reserved5">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractList" c:type="GeeAbstractList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved6">
			<callback name="reserved6" c:type="reserved6">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractList" c:type="GeeAbstractList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved7">
			<callback name="reserved7" c:type="reserved7">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractList" c:type="GeeAbstractList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved8">
			<callback name="reserved8" c:type="reserved8">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractList" c:type="GeeAbstractList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved9">
			<callback name="reserved9" c:type="reserved9">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractList" c:type="GeeAbstractList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="AbstractListPrivate" c:type="GeeAbstractListPrivate" disguised="1"/>
	<class name="AbstractMap" c:type="GeeAbstractMap" glib:type-name="GeeAbstractMap" glib:get-type="gee_abstract_map_get_type" glib:type-struct="AbstractMapClass" parent="GObject.Object" abstract="1">
		<implements name="Gee.Traversable"/>
		<implements name="Gee.Iterable"/>
		<implements name="Gee.Map"/>
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="AbstractMapPrivate" c:type="GeeAbstractMapPrivate*"/>
		</field>
		<method name="has_key" c:identifier="gee_abstract_map_has_key">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="has_key" invoker="has_key">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="has" c:identifier="gee_abstract_map_has">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="has" invoker="has">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="get" c:identifier="gee_abstract_map_get">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="get" invoker="get">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="set" c:identifier="gee_abstract_map_set">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set" invoker="set">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="unset" c:identifier="gee_abstract_map_unset">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="value" direction="out" transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="unset" invoker="unset">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="value" direction="out" transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="map_iterator" c:identifier="gee_abstract_map_map_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.MapIterator" c:type="GeeMapIterator*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="map_iterator" invoker="map_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.MapIterator" c:type="GeeMapIterator*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
		<method name="clear" c:identifier="gee_abstract_map_clear">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<virtual-method name="clear" invoker="clear">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</virtual-method>
		<method name="foreach" c:identifier="gee_abstract_map_foreach">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1">
					<type name="Gee.ForallFunc" c:type="GeeForallFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="foreach" invoker="foreach">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1">
					<type name="Gee.ForallFunc" c:type="GeeForallFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="stream" c:identifier="gee_abstract_map_stream">
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1" scope="notified" destroy="2">
					<type name="Gee.StreamFunc" c:type="GeeStreamFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="f_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="stream" invoker="stream">
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1" scope="notified" destroy="2">
					<type name="Gee.StreamFunc" c:type="GeeStreamFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="f_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="size">
			<type name="gint" c:type="gint"/>
		</property>
		<property name="read-only">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<property name="keys">
			<type name="Gee.Set" c:type="GeeSet*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
		<property name="values">
			<type name="Gee.Collection" c:type="GeeCollection*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
		<property name="entries">
			<type name="Gee.Set" c:type="GeeSet*">
				<type name="Gee.MapEntry" c:type="GeeMapEntry*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</type>
		</property>
		<property name="read-only-view">
			<type name="Gee.Map" c:type="GeeMap*">
				<type name="gpointer" c:type="gpointer"/>
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</class>
	<record name="AbstractMapClass" c:type="GeeAbstractMapClass" glib:is-gtype-struct-for="AbstractMap">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
				<field name="has_key">
			<callback name="has_key" c:type="has_key">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="has">
			<callback name="has" c:type="has">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
					<parameter name="value" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="get">
			<callback name="get" c:type="get">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="set">
			<callback name="set" c:type="set">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
					<parameter name="value" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="unset">
			<callback name="unset" c:type="unset">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
					<parameter name="value" direction="out" transfer-ownership="full" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="map_iterator">
			<callback name="map_iterator" c:type="map_iterator">
				<return-value transfer-ownership="full">
					<type name="Gee.MapIterator" c:type="GeeMapIterator*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="clear">
			<callback name="clear" c:type="clear">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="foreach">
			<callback name="foreach" c:type="foreach">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
					<parameter name="f" transfer-ownership="none" closure="2">
						<type name="Gee.ForallFunc" c:type="GeeForallFunc"/>
					</parameter>
					<parameter name="f_target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="stream">
			<callback name="stream" c:type="stream">
				<return-value transfer-ownership="full">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
					<parameter name="f" transfer-ownership="none" closure="2" scope="notified" destroy="3">
						<type name="Gee.StreamFunc" c:type="GeeStreamFunc"/>
					</parameter>
					<parameter name="f_target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
					<parameter name="f_target_destroy_notify" transfer-ownership="none">
						<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved0">
			<callback name="reserved0" c:type="reserved0">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved1">
			<callback name="reserved1" c:type="reserved1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved2">
			<callback name="reserved2" c:type="reserved2">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved3">
			<callback name="reserved3" c:type="reserved3">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved4">
			<callback name="reserved4" c:type="reserved4">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved5">
			<callback name="reserved5" c:type="reserved5">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved6">
			<callback name="reserved6" c:type="reserved6">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved7">
			<callback name="reserved7" c:type="reserved7">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved8">
			<callback name="reserved8" c:type="reserved8">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved9">
			<callback name="reserved9" c:type="reserved9">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMap" c:type="GeeAbstractMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="AbstractMapPrivate" c:type="GeeAbstractMapPrivate" disguised="1"/>
	<class name="AbstractMultiMap" c:type="GeeAbstractMultiMap" glib:type-name="GeeAbstractMultiMap" glib:get-type="gee_abstract_multi_map_get_type" glib:type-struct="AbstractMultiMapClass" parent="GObject.Object" abstract="1">
		<implements name="Gee.MultiMap"/>
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="AbstractMultiMapPrivate" c:type="GeeAbstractMultiMapPrivate*"/>
		</field>
		<field name="_storage_map">
			<type name="Gee.Map" c:type="GeeMap*">
				<type name="gpointer" c:type="gpointer"/>
				<type name="Gee.Collection" c:type="GeeCollection*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</type>
		</field>
		<method name="create_value_storage" c:identifier="gee_abstract_multi_map_create_value_storage">
			<return-value transfer-ownership="full">
				<type name="Gee.Collection" c:type="GeeCollection*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="create_value_storage" invoker="create_value_storage">
			<return-value transfer-ownership="full">
				<type name="Gee.Collection" c:type="GeeCollection*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
		<method name="create_multi_key_set" c:identifier="gee_abstract_multi_map_create_multi_key_set">
			<return-value transfer-ownership="full">
				<type name="Gee.MultiSet" c:type="GeeMultiSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="create_multi_key_set" invoker="create_multi_key_set">
			<return-value transfer-ownership="full">
				<type name="Gee.MultiSet" c:type="GeeMultiSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
		<method name="get_value_equal_func" c:identifier="gee_abstract_multi_map_get_value_equal_func">
			<return-value transfer-ownership="none" closure="0" scope="notified" destroy="1">
				<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
			</return-value>
			<parameters>
				<parameter name="result_target" direction="out" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="result_target_destroy_notify" direction="out" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="get_value_equal_func" invoker="get_value_equal_func">
			<return-value transfer-ownership="none" closure="0" scope="notified" destroy="1">
				<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
			</return-value>
			<parameters>
				<parameter name="result_target" direction="out" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="result_target_destroy_notify" direction="out" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="read-only-view">
			<type name="Gee.MultiMap" c:type="GeeMultiMap*">
				<type name="gpointer" c:type="gpointer"/>
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</class>
	<record name="AbstractMultiMapClass" c:type="GeeAbstractMultiMapClass" glib:is-gtype-struct-for="AbstractMultiMap">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
				<field name="create_value_storage">
			<callback name="create_value_storage" c:type="create_value_storage">
				<return-value transfer-ownership="full">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiMap" c:type="GeeAbstractMultiMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="create_multi_key_set">
			<callback name="create_multi_key_set" c:type="create_multi_key_set">
				<return-value transfer-ownership="full">
					<type name="Gee.MultiSet" c:type="GeeMultiSet*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiMap" c:type="GeeAbstractMultiMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="get_value_equal_func">
			<callback name="get_value_equal_func" c:type="get_value_equal_func">
				<return-value transfer-ownership="none" closure="1" scope="notified" destroy="2">
					<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiMap" c:type="GeeAbstractMultiMap*"/>
					</parameter>
					<parameter name="result_target" direction="out" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
					<parameter name="result_target_destroy_notify" direction="out" transfer-ownership="none">
						<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved0">
			<callback name="reserved0" c:type="reserved0">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiMap" c:type="GeeAbstractMultiMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved1">
			<callback name="reserved1" c:type="reserved1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiMap" c:type="GeeAbstractMultiMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved2">
			<callback name="reserved2" c:type="reserved2">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiMap" c:type="GeeAbstractMultiMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved3">
			<callback name="reserved3" c:type="reserved3">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiMap" c:type="GeeAbstractMultiMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved4">
			<callback name="reserved4" c:type="reserved4">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiMap" c:type="GeeAbstractMultiMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved5">
			<callback name="reserved5" c:type="reserved5">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiMap" c:type="GeeAbstractMultiMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved6">
			<callback name="reserved6" c:type="reserved6">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiMap" c:type="GeeAbstractMultiMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved7">
			<callback name="reserved7" c:type="reserved7">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiMap" c:type="GeeAbstractMultiMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved8">
			<callback name="reserved8" c:type="reserved8">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiMap" c:type="GeeAbstractMultiMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="AbstractMultiMapPrivate" c:type="GeeAbstractMultiMapPrivate" disguised="1"/>
	<class name="AbstractMultiSet" c:type="GeeAbstractMultiSet" glib:type-name="GeeAbstractMultiSet" glib:get-type="gee_abstract_multi_set_get_type" glib:type-struct="AbstractMultiSetClass" parent="Gee.AbstractCollection" abstract="1">
		<implements name="Gee.MultiSet"/>
		<field name="parent_instance">
			<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection"/>
		</field>
		<field name="priv">
			<type name="AbstractMultiSetPrivate" c:type="GeeAbstractMultiSetPrivate*"/>
		</field>
		<field name="_storage_map">
			<type name="Gee.Map" c:type="GeeMap*">
				<type name="gpointer" c:type="gpointer"/>
				<type name="gint" c:type="gint"/>
			</type>
		</field>
		<property name="read-only-view">
			<type name="Gee.MultiSet" c:type="GeeMultiSet*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</class>
	<record name="AbstractMultiSetClass" c:type="GeeAbstractMultiSetClass" glib:is-gtype-struct-for="AbstractMultiSet">
		<field name="parent_class">
			<type name="Gee.AbstractCollectionClass" c:type="GeeAbstractCollectionClass"/>
		</field>
				<field name="reserved0">
			<callback name="reserved0" c:type="reserved0">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiSet" c:type="GeeAbstractMultiSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved1">
			<callback name="reserved1" c:type="reserved1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiSet" c:type="GeeAbstractMultiSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved2">
			<callback name="reserved2" c:type="reserved2">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiSet" c:type="GeeAbstractMultiSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved3">
			<callback name="reserved3" c:type="reserved3">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiSet" c:type="GeeAbstractMultiSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved4">
			<callback name="reserved4" c:type="reserved4">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiSet" c:type="GeeAbstractMultiSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved5">
			<callback name="reserved5" c:type="reserved5">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiSet" c:type="GeeAbstractMultiSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved6">
			<callback name="reserved6" c:type="reserved6">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiSet" c:type="GeeAbstractMultiSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved7">
			<callback name="reserved7" c:type="reserved7">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiSet" c:type="GeeAbstractMultiSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved8">
			<callback name="reserved8" c:type="reserved8">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractMultiSet" c:type="GeeAbstractMultiSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="AbstractMultiSetPrivate" c:type="GeeAbstractMultiSetPrivate" disguised="1"/>
	<class name="AbstractQueue" c:type="GeeAbstractQueue" glib:type-name="GeeAbstractQueue" glib:get-type="gee_abstract_queue_get_type" glib:type-struct="AbstractQueueClass" parent="Gee.AbstractCollection" abstract="1">
		<implements name="Gee.Queue"/>
		<field name="parent_instance">
			<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection"/>
		</field>
		<field name="priv">
			<type name="AbstractQueuePrivate" c:type="GeeAbstractQueuePrivate*"/>
		</field>
		<method name="peek" c:identifier="gee_abstract_queue_peek">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="peek" invoker="peek">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<method name="poll" c:identifier="gee_abstract_queue_poll">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="poll" invoker="poll">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<property name="capacity">
			<type name="gint" c:type="gint"/>
		</property>
		<property name="remaining-capacity">
			<type name="gint" c:type="gint"/>
		</property>
		<property name="is-full">
			<type name="gboolean" c:type="gboolean"/>
		</property>
	</class>
	<record name="AbstractQueueClass" c:type="GeeAbstractQueueClass" glib:is-gtype-struct-for="AbstractQueue">
		<field name="parent_class">
			<type name="Gee.AbstractCollectionClass" c:type="GeeAbstractCollectionClass"/>
		</field>
				<field name="peek">
			<callback name="peek" c:type="peek">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractQueue" c:type="GeeAbstractQueue*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="poll">
			<callback name="poll" c:type="poll">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractQueue" c:type="GeeAbstractQueue*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved0">
			<callback name="reserved0" c:type="reserved0">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractQueue" c:type="GeeAbstractQueue*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved1">
			<callback name="reserved1" c:type="reserved1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractQueue" c:type="GeeAbstractQueue*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved2">
			<callback name="reserved2" c:type="reserved2">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractQueue" c:type="GeeAbstractQueue*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved3">
			<callback name="reserved3" c:type="reserved3">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractQueue" c:type="GeeAbstractQueue*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved4">
			<callback name="reserved4" c:type="reserved4">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractQueue" c:type="GeeAbstractQueue*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved5">
			<callback name="reserved5" c:type="reserved5">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractQueue" c:type="GeeAbstractQueue*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved6">
			<callback name="reserved6" c:type="reserved6">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractQueue" c:type="GeeAbstractQueue*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved7">
			<callback name="reserved7" c:type="reserved7">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractQueue" c:type="GeeAbstractQueue*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved8">
			<callback name="reserved8" c:type="reserved8">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractQueue" c:type="GeeAbstractQueue*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved9">
			<callback name="reserved9" c:type="reserved9">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractQueue" c:type="GeeAbstractQueue*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="AbstractQueuePrivate" c:type="GeeAbstractQueuePrivate" disguised="1"/>
	<class name="AbstractSet" c:type="GeeAbstractSet" glib:type-name="GeeAbstractSet" glib:get-type="gee_abstract_set_get_type" glib:type-struct="AbstractSetClass" parent="Gee.AbstractCollection" abstract="1">
		<implements name="Gee.Set"/>
		<field name="parent_instance">
			<type name="Gee.AbstractCollection" c:type="GeeAbstractCollection"/>
		</field>
		<field name="priv">
			<type name="AbstractSetPrivate" c:type="GeeAbstractSetPrivate*"/>
		</field>
		<property name="read-only-view">
			<type name="Gee.Set" c:type="GeeSet*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</class>
	<record name="AbstractSetClass" c:type="GeeAbstractSetClass" glib:is-gtype-struct-for="AbstractSet">
		<field name="parent_class">
			<type name="Gee.AbstractCollectionClass" c:type="GeeAbstractCollectionClass"/>
		</field>
				<field name="reserved0">
			<callback name="reserved0" c:type="reserved0">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSet" c:type="GeeAbstractSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved1">
			<callback name="reserved1" c:type="reserved1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSet" c:type="GeeAbstractSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved2">
			<callback name="reserved2" c:type="reserved2">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSet" c:type="GeeAbstractSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved3">
			<callback name="reserved3" c:type="reserved3">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSet" c:type="GeeAbstractSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved4">
			<callback name="reserved4" c:type="reserved4">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSet" c:type="GeeAbstractSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved5">
			<callback name="reserved5" c:type="reserved5">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSet" c:type="GeeAbstractSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved6">
			<callback name="reserved6" c:type="reserved6">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSet" c:type="GeeAbstractSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved7">
			<callback name="reserved7" c:type="reserved7">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSet" c:type="GeeAbstractSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved8">
			<callback name="reserved8" c:type="reserved8">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSet" c:type="GeeAbstractSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved9">
			<callback name="reserved9" c:type="reserved9">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSet" c:type="GeeAbstractSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="AbstractSetPrivate" c:type="GeeAbstractSetPrivate" disguised="1"/>
	<class name="AbstractSortedMap" c:type="GeeAbstractSortedMap" glib:type-name="GeeAbstractSortedMap" glib:get-type="gee_abstract_sorted_map_get_type" glib:type-struct="AbstractSortedMapClass" parent="Gee.AbstractMap" abstract="1">
		<implements name="Gee.SortedMap"/>
		<field name="parent_instance">
			<type name="Gee.AbstractMap" c:type="GeeAbstractMap"/>
		</field>
		<field name="priv">
			<type name="AbstractSortedMapPrivate" c:type="GeeAbstractSortedMapPrivate*"/>
		</field>
		<method name="head_map" c:identifier="gee_abstract_sorted_map_head_map">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedMap" c:type="GeeSortedMap*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="before" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="head_map" invoker="head_map">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedMap" c:type="GeeSortedMap*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="before" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="tail_map" c:identifier="gee_abstract_sorted_map_tail_map">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedMap" c:type="GeeSortedMap*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="after" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="tail_map" invoker="tail_map">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedMap" c:type="GeeSortedMap*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="after" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="sub_map" c:identifier="gee_abstract_sorted_map_sub_map">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedMap" c:type="GeeSortedMap*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="before" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="after" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="sub_map" invoker="sub_map">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedMap" c:type="GeeSortedMap*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="before" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="after" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="ascending-keys">
			<type name="Gee.SortedSet" c:type="GeeSortedSet*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
		<property name="ascending-entries">
			<type name="Gee.SortedSet" c:type="GeeSortedSet*">
				<type name="Gee.MapEntry" c:type="GeeMapEntry*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</type>
		</property>
	</class>
	<record name="AbstractSortedMapClass" c:type="GeeAbstractSortedMapClass" glib:is-gtype-struct-for="AbstractSortedMap">
		<field name="parent_class">
			<type name="Gee.AbstractMapClass" c:type="GeeAbstractMapClass"/>
		</field>
				<field name="head_map">
			<callback name="head_map" c:type="head_map">
				<return-value transfer-ownership="full">
					<type name="Gee.SortedMap" c:type="GeeSortedMap*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedMap" c:type="GeeAbstractSortedMap*"/>
					</parameter>
					<parameter name="before" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="tail_map">
			<callback name="tail_map" c:type="tail_map">
				<return-value transfer-ownership="full">
					<type name="Gee.SortedMap" c:type="GeeSortedMap*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedMap" c:type="GeeAbstractSortedMap*"/>
					</parameter>
					<parameter name="after" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="sub_map">
			<callback name="sub_map" c:type="sub_map">
				<return-value transfer-ownership="full">
					<type name="Gee.SortedMap" c:type="GeeSortedMap*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedMap" c:type="GeeAbstractSortedMap*"/>
					</parameter>
					<parameter name="before" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
					<parameter name="after" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved0">
			<callback name="reserved0" c:type="reserved0">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedMap" c:type="GeeAbstractSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved1">
			<callback name="reserved1" c:type="reserved1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedMap" c:type="GeeAbstractSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved2">
			<callback name="reserved2" c:type="reserved2">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedMap" c:type="GeeAbstractSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved3">
			<callback name="reserved3" c:type="reserved3">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedMap" c:type="GeeAbstractSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved4">
			<callback name="reserved4" c:type="reserved4">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedMap" c:type="GeeAbstractSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved5">
			<callback name="reserved5" c:type="reserved5">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedMap" c:type="GeeAbstractSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved6">
			<callback name="reserved6" c:type="reserved6">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedMap" c:type="GeeAbstractSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved7">
			<callback name="reserved7" c:type="reserved7">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedMap" c:type="GeeAbstractSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved8">
			<callback name="reserved8" c:type="reserved8">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedMap" c:type="GeeAbstractSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved9">
			<callback name="reserved9" c:type="reserved9">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedMap" c:type="GeeAbstractSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="AbstractSortedMapPrivate" c:type="GeeAbstractSortedMapPrivate" disguised="1"/>
	<class name="AbstractSortedSet" c:type="GeeAbstractSortedSet" glib:type-name="GeeAbstractSortedSet" glib:get-type="gee_abstract_sorted_set_get_type" glib:type-struct="AbstractSortedSetClass" parent="Gee.AbstractSet" abstract="1">
		<implements name="Gee.SortedSet"/>
		<field name="parent_instance">
			<type name="Gee.AbstractSet" c:type="GeeAbstractSet"/>
		</field>
		<field name="priv">
			<type name="AbstractSortedSetPrivate" c:type="GeeAbstractSortedSetPrivate*"/>
		</field>
		<method name="first" c:identifier="gee_abstract_sorted_set_first">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="first" invoker="first">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<method name="last" c:identifier="gee_abstract_sorted_set_last">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="last" invoker="last">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<method name="iterator_at" c:identifier="gee_abstract_sorted_set_iterator_at">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="iterator_at" invoker="iterator_at">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="lower" c:identifier="gee_abstract_sorted_set_lower">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="lower" invoker="lower">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="higher" c:identifier="gee_abstract_sorted_set_higher">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="higher" invoker="higher">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="floor" c:identifier="gee_abstract_sorted_set_floor">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="floor" invoker="floor">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="ceil" c:identifier="gee_abstract_sorted_set_ceil">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="ceil" invoker="ceil">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="head_set" c:identifier="gee_abstract_sorted_set_head_set">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedSet" c:type="GeeSortedSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="before" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="head_set" invoker="head_set">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedSet" c:type="GeeSortedSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="before" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="tail_set" c:identifier="gee_abstract_sorted_set_tail_set">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedSet" c:type="GeeSortedSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="after" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="tail_set" invoker="tail_set">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedSet" c:type="GeeSortedSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="after" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="sub_set" c:identifier="gee_abstract_sorted_set_sub_set">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedSet" c:type="GeeSortedSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="from" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="to" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="sub_set" invoker="sub_set">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedSet" c:type="GeeSortedSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="from" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="to" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="read-only-view">
			<type name="Gee.SortedSet" c:type="GeeSortedSet*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</class>
	<record name="AbstractSortedSetClass" c:type="GeeAbstractSortedSetClass" glib:is-gtype-struct-for="AbstractSortedSet">
		<field name="parent_class">
			<type name="Gee.AbstractSetClass" c:type="GeeAbstractSetClass"/>
		</field>
				<field name="first">
			<callback name="first" c:type="first">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="last">
			<callback name="last" c:type="last">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="iterator_at">
			<callback name="iterator_at" c:type="iterator_at">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
					<parameter name="element" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="lower">
			<callback name="lower" c:type="lower">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
					<parameter name="element" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="higher">
			<callback name="higher" c:type="higher">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
					<parameter name="element" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="floor">
			<callback name="floor" c:type="floor">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
					<parameter name="element" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="ceil">
			<callback name="ceil" c:type="ceil">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
					<parameter name="element" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="head_set">
			<callback name="head_set" c:type="head_set">
				<return-value transfer-ownership="full">
					<type name="Gee.SortedSet" c:type="GeeSortedSet*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
					<parameter name="before" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="tail_set">
			<callback name="tail_set" c:type="tail_set">
				<return-value transfer-ownership="full">
					<type name="Gee.SortedSet" c:type="GeeSortedSet*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
					<parameter name="after" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="sub_set">
			<callback name="sub_set" c:type="sub_set">
				<return-value transfer-ownership="full">
					<type name="Gee.SortedSet" c:type="GeeSortedSet*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
					<parameter name="from" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
					<parameter name="to" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved0">
			<callback name="reserved0" c:type="reserved0">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved1">
			<callback name="reserved1" c:type="reserved1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved2">
			<callback name="reserved2" c:type="reserved2">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved3">
			<callback name="reserved3" c:type="reserved3">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved4">
			<callback name="reserved4" c:type="reserved4">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved5">
			<callback name="reserved5" c:type="reserved5">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved6">
			<callback name="reserved6" c:type="reserved6">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved7">
			<callback name="reserved7" c:type="reserved7">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved8">
			<callback name="reserved8" c:type="reserved8">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="reserved9">
			<callback name="reserved9" c:type="reserved9">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="AbstractSortedSetPrivate" c:type="GeeAbstractSortedSetPrivate" disguised="1"/>
	<class name="ArrayList" c:type="GeeArrayList" glib:type-name="GeeArrayList" glib:get-type="gee_array_list_get_type" glib:type-struct="ArrayListClass" parent="Gee.AbstractBidirList">
		<field name="parent_instance">
			<type name="Gee.AbstractBidirList" c:type="GeeAbstractBidirList"/>
		</field>
		<field name="priv">
			<type name="ArrayListPrivate" c:type="GeeArrayListPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gee_array_list_new">
			<return-value transfer-ownership="full">
				<type name="Gee.ArrayList" c:type="GeeArrayList*"/>
			</return-value>
			<parameters>
				<parameter name="equal_func" transfer-ownership="none" allow-none="1" closure="1" scope="notified" destroy="2">
					<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
				</parameter>
				<parameter name="equal_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="equal_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="wrap" c:identifier="gee_array_list_new_wrap">
			<return-value transfer-ownership="full">
				<type name="Gee.ArrayList" c:type="GeeArrayList*"/>
			</return-value>
			<parameters>
				<parameter name="items" transfer-ownership="full">
					<array length="1">
						<type name="gpointer" c:type="gpointer"/>
					</array>
				</parameter>
				<parameter name="items_length1" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="equal_func" transfer-ownership="none" allow-none="1" closure="3" scope="notified" destroy="4">
					<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
				</parameter>
				<parameter name="equal_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="equal_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="add_all" c:identifier="gee_array_list_add_all">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="collection" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<property name="equal-func" writable="1">
			<annotation key="ccode.notify" value="false"/>
			<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
		</property>
	</class>
	<record name="ArrayListClass" c:type="GeeArrayListClass" glib:is-gtype-struct-for="ArrayList">
		<field name="parent_class">
			<type name="Gee.AbstractBidirListClass" c:type="GeeAbstractBidirListClass"/>
		</field>
	</record>
	<record name="ArrayListPrivate" c:type="GeeArrayListPrivate" disguised="1"/>
	<class name="ArrayQueue" c:type="GeeArrayQueue" glib:type-name="GeeArrayQueue" glib:get-type="gee_array_queue_get_type" glib:type-struct="ArrayQueueClass" parent="Gee.AbstractQueue">
		<implements name="Gee.Deque"/>
		<field name="parent_instance">
			<type name="Gee.AbstractQueue" c:type="GeeAbstractQueue"/>
		</field>
		<field name="priv">
			<type name="ArrayQueuePrivate" c:type="GeeArrayQueuePrivate*"/>
		</field>
		<constructor name="new" c:identifier="gee_array_queue_new">
			<return-value transfer-ownership="full">
				<type name="Gee.ArrayQueue" c:type="GeeArrayQueue*"/>
			</return-value>
			<parameters>
				<parameter name="equal_func" transfer-ownership="none" allow-none="1" closure="1" scope="notified" destroy="2">
					<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
				</parameter>
				<parameter name="equal_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="equal_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="equal-func" writable="1">
			<annotation key="ccode.notify" value="false"/>
			<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
		</property>
		<property name="is-empty">
			<type name="gboolean" c:type="gboolean"/>
		</property>
	</class>
	<record name="ArrayQueueClass" c:type="GeeArrayQueueClass" glib:is-gtype-struct-for="ArrayQueue">
		<field name="parent_class">
			<type name="Gee.AbstractQueueClass" c:type="GeeAbstractQueueClass"/>
		</field>
	</record>
	<record name="ArrayQueuePrivate" c:type="GeeArrayQueuePrivate" disguised="1"/>
	<class name="ConcurrentList" c:type="GeeConcurrentList" glib:type-name="GeeConcurrentList" glib:get-type="gee_concurrent_list_get_type" glib:type-struct="ConcurrentListClass" parent="Gee.AbstractList">
		<field name="parent_instance">
			<type name="Gee.AbstractList" c:type="GeeAbstractList"/>
		</field>
		<field name="priv">
			<type name="ConcurrentListPrivate" c:type="GeeConcurrentListPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gee_concurrent_list_new">
			<return-value transfer-ownership="full">
				<type name="Gee.ConcurrentList" c:type="GeeConcurrentList*"/>
			</return-value>
			<parameters>
				<parameter name="equal_func" transfer-ownership="none" allow-none="1" closure="1" scope="notified" destroy="2">
					<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
				</parameter>
				<parameter name="equal_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="equal_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="equal-func" writable="1">
			<annotation key="ccode.notify" value="false"/>
			<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
		</property>
		<property name="is-empty">
			<type name="gboolean" c:type="gboolean"/>
		</property>
	</class>
	<record name="ConcurrentListClass" c:type="GeeConcurrentListClass" glib:is-gtype-struct-for="ConcurrentList">
		<field name="parent_class">
			<type name="Gee.AbstractListClass" c:type="GeeAbstractListClass"/>
		</field>
	</record>
	<record name="ConcurrentListPrivate" c:type="GeeConcurrentListPrivate" disguised="1"/>
	<class name="ConcurrentSet" c:type="GeeConcurrentSet" glib:type-name="GeeConcurrentSet" glib:get-type="gee_concurrent_set_get_type" glib:type-struct="ConcurrentSetClass" parent="Gee.AbstractSortedSet">
		<field name="parent_instance">
			<type name="Gee.AbstractSortedSet" c:type="GeeAbstractSortedSet"/>
		</field>
		<field name="priv">
			<type name="ConcurrentSetPrivate" c:type="GeeConcurrentSetPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gee_concurrent_set_new">
			<return-value transfer-ownership="full">
				<type name="Gee.ConcurrentSet" c:type="GeeConcurrentSet*"/>
			</return-value>
			<parameters>
				<parameter name="compare_func" transfer-ownership="none" allow-none="1" closure="1" scope="notified" destroy="2">
					<type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
				</parameter>
				<parameter name="compare_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="compare_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</constructor>
	</class>
	<record name="ConcurrentSetClass" c:type="GeeConcurrentSetClass" glib:is-gtype-struct-for="ConcurrentSet">
		<field name="parent_class">
			<type name="Gee.AbstractSortedSetClass" c:type="GeeAbstractSortedSetClass"/>
		</field>
	</record>
	<record name="ConcurrentSetPrivate" c:type="GeeConcurrentSetPrivate" disguised="1"/>
	<enumeration name="ConcurrentSetRangeType" c:type="GeeConcurrentSetRangeType" glib:type-name="GeeConcurrentSetRangeType" glib:get-type="gee_concurrent_set_range_type_get_type">
		<member name="head" c:identifier="GEE_CONCURRENT_SET_RANGE_TYPE_HEAD" value="0"/>
		<member name="tail" c:identifier="GEE_CONCURRENT_SET_RANGE_TYPE_TAIL" value="1"/>
		<member name="bounded" c:identifier="GEE_CONCURRENT_SET_RANGE_TYPE_BOUNDED" value="2"/>
		<member name="empty" c:identifier="GEE_CONCURRENT_SET_RANGE_TYPE_EMPTY" value="3"/>
	</enumeration>
	<class name="HashMap" c:type="GeeHashMap" glib:type-name="GeeHashMap" glib:get-type="gee_hash_map_get_type" glib:type-struct="HashMapClass" parent="Gee.AbstractMap">
		<field name="parent_instance">
			<type name="Gee.AbstractMap" c:type="GeeAbstractMap"/>
		</field>
		<field name="priv">
			<type name="HashMapPrivate" c:type="GeeHashMapPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gee_hash_map_new">
			<return-value transfer-ownership="full">
				<type name="Gee.HashMap" c:type="GeeHashMap*"/>
			</return-value>
			<parameters>
				<parameter name="key_hash_func" transfer-ownership="none" allow-none="1" closure="1" scope="notified" destroy="2">
					<type name="Gee.HashDataFunc" c:type="GeeHashDataFunc"/>
				</parameter>
				<parameter name="key_hash_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="key_hash_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
				<parameter name="key_equal_func" transfer-ownership="none" allow-none="1" closure="4" scope="notified" destroy="5">
					<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
				</parameter>
				<parameter name="key_equal_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="key_equal_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
				<parameter name="value_equal_func" transfer-ownership="none" allow-none="1" closure="7" scope="notified" destroy="8">
					<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
				</parameter>
				<parameter name="value_equal_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="value_equal_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="key-hash-func" writable="1">
			<annotation key="ccode.notify" value="false"/>
			<type name="Gee.HashDataFunc" c:type="GeeHashDataFunc"/>
		</property>
		<property name="key-equal-func" writable="1">
			<annotation key="ccode.notify" value="false"/>
			<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
		</property>
		<property name="value-equal-func" writable="1">
			<annotation key="ccode.notify" value="false"/>
			<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
		</property>
	</class>
	<record name="HashMapClass" c:type="GeeHashMapClass" glib:is-gtype-struct-for="HashMap">
		<field name="parent_class">
			<type name="Gee.AbstractMapClass" c:type="GeeAbstractMapClass"/>
		</field>
	</record>
	<record name="HashMapPrivate" c:type="GeeHashMapPrivate" disguised="1"/>
	<class name="HashMultiMap" c:type="GeeHashMultiMap" glib:type-name="GeeHashMultiMap" glib:get-type="gee_hash_multi_map_get_type" glib:type-struct="HashMultiMapClass" parent="Gee.AbstractMultiMap">
		<field name="parent_instance">
			<type name="Gee.AbstractMultiMap" c:type="GeeAbstractMultiMap"/>
		</field>
		<field name="priv">
			<type name="HashMultiMapPrivate" c:type="GeeHashMultiMapPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gee_hash_multi_map_new">
			<return-value transfer-ownership="full">
				<type name="Gee.HashMultiMap" c:type="GeeHashMultiMap*"/>
			</return-value>
			<parameters>
				<parameter name="key_hash_func" transfer-ownership="none" allow-none="1" closure="1" scope="notified" destroy="2">
					<type name="Gee.HashDataFunc" c:type="GeeHashDataFunc"/>
				</parameter>
				<parameter name="key_hash_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="key_hash_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
				<parameter name="key_equal_func" transfer-ownership="none" allow-none="1" closure="4" scope="notified" destroy="5">
					<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
				</parameter>
				<parameter name="key_equal_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="key_equal_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
				<parameter name="value_hash_func" transfer-ownership="none" allow-none="1" closure="7" scope="notified" destroy="8">
					<type name="Gee.HashDataFunc" c:type="GeeHashDataFunc"/>
				</parameter>
				<parameter name="value_hash_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="value_hash_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
				<parameter name="value_equal_func" transfer-ownership="none" allow-none="1" closure="10" scope="notified" destroy="11">
					<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
				</parameter>
				<parameter name="value_equal_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="value_equal_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="key-hash-func">
			<type name="Gee.HashDataFunc" c:type="GeeHashDataFunc"/>
		</property>
		<property name="key-equal-func">
			<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
		</property>
		<property name="value-hash-func" writable="1">
			<annotation key="ccode.notify" value="false"/>
			<type name="Gee.HashDataFunc" c:type="GeeHashDataFunc"/>
		</property>
		<property name="value-equal-func" writable="1">
			<annotation key="ccode.notify" value="false"/>
			<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
		</property>
	</class>
	<record name="HashMultiMapClass" c:type="GeeHashMultiMapClass" glib:is-gtype-struct-for="HashMultiMap">
		<field name="parent_class">
			<type name="Gee.AbstractMultiMapClass" c:type="GeeAbstractMultiMapClass"/>
		</field>
	</record>
	<record name="HashMultiMapPrivate" c:type="GeeHashMultiMapPrivate" disguised="1"/>
	<class name="HashMultiSet" c:type="GeeHashMultiSet" glib:type-name="GeeHashMultiSet" glib:get-type="gee_hash_multi_set_get_type" glib:type-struct="HashMultiSetClass" parent="Gee.AbstractMultiSet">
		<field name="parent_instance">
			<type name="Gee.AbstractMultiSet" c:type="GeeAbstractMultiSet"/>
		</field>
		<field name="priv">
			<type name="HashMultiSetPrivate" c:type="GeeHashMultiSetPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gee_hash_multi_set_new">
			<return-value transfer-ownership="full">
				<type name="Gee.HashMultiSet" c:type="GeeHashMultiSet*"/>
			</return-value>
			<parameters>
				<parameter name="hash_func" transfer-ownership="none" allow-none="1" closure="1">
					<type name="Gee.HashDataFunc" c:type="GeeHashDataFunc"/>
				</parameter>
				<parameter name="hash_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="equal_func" transfer-ownership="none" allow-none="1" closure="3">
					<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
				</parameter>
				<parameter name="equal_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="hash-func">
			<type name="Gee.HashDataFunc" c:type="GeeHashDataFunc"/>
		</property>
		<property name="equal-func">
			<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
		</property>
	</class>
	<record name="HashMultiSetClass" c:type="GeeHashMultiSetClass" glib:is-gtype-struct-for="HashMultiSet">
		<field name="parent_class">
			<type name="Gee.AbstractMultiSetClass" c:type="GeeAbstractMultiSetClass"/>
		</field>
	</record>
	<record name="HashMultiSetPrivate" c:type="GeeHashMultiSetPrivate" disguised="1"/>
	<class name="HashSet" c:type="GeeHashSet" glib:type-name="GeeHashSet" glib:get-type="gee_hash_set_get_type" glib:type-struct="HashSetClass" parent="Gee.AbstractSet">
		<field name="parent_instance">
			<type name="Gee.AbstractSet" c:type="GeeAbstractSet"/>
		</field>
		<field name="priv">
			<type name="HashSetPrivate" c:type="GeeHashSetPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gee_hash_set_new">
			<return-value transfer-ownership="full">
				<type name="Gee.HashSet" c:type="GeeHashSet*"/>
			</return-value>
			<parameters>
				<parameter name="hash_func" transfer-ownership="none" allow-none="1" closure="1" scope="notified" destroy="2">
					<type name="Gee.HashDataFunc" c:type="GeeHashDataFunc"/>
				</parameter>
				<parameter name="hash_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="hash_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
				<parameter name="equal_func" transfer-ownership="none" allow-none="1" closure="4" scope="notified" destroy="5">
					<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
				</parameter>
				<parameter name="equal_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="equal_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="hash-func" writable="1">
			<annotation key="ccode.notify" value="false"/>
			<type name="Gee.HashDataFunc" c:type="GeeHashDataFunc"/>
		</property>
		<property name="equal-func" writable="1">
			<annotation key="ccode.notify" value="false"/>
			<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
		</property>
	</class>
	<record name="HashSetClass" c:type="GeeHashSetClass" glib:is-gtype-struct-for="HashSet">
		<field name="parent_class">
			<type name="Gee.AbstractSetClass" c:type="GeeAbstractSetClass"/>
		</field>
	</record>
	<record name="HashSetPrivate" c:type="GeeHashSetPrivate" disguised="1"/>
	<record name="HazardPointer">
		<constructor name="new" c:identifier="gee_hazard_pointer_new">
			<return-value transfer-ownership="full">
				<type name="Gee.HazardPointer" c:type="GeeHazardPointer*"/>
			</return-value>
			<parameters>
				<parameter name="ptr" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gconstpointer*"/>
				</parameter>
			</parameters>
		</constructor>
		<function name="get_hazard_pointer" c:identifier="gee_hazard_pointer_get_hazard_pointer">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gee.HazardPointer" c:type="GeeHazardPointer*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="aptr" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gconstpointer**"/>
				</parameter>
				<parameter name="mask" transfer-ownership="none">
					<type name="gulong" c:type="gsize"/>
				</parameter>
				<parameter name="mask_out" direction="out" transfer-ownership="full">
					<type name="gulong" c:type="gsize"/>
				</parameter>
			</parameters>
		</function>
		<function name="get_pointer" c:identifier="gee_hazard_pointer_get_pointer">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="aptr" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gconstpointer**"/>
				</parameter>
				<parameter name="mask" transfer-ownership="none">
					<type name="gulong" c:type="gsize"/>
				</parameter>
				<parameter name="mask_out" direction="out" transfer-ownership="full">
					<type name="gulong" c:type="gsize"/>
				</parameter>
			</parameters>
		</function>
		<function name="exchange_hazard_pointer" c:identifier="gee_hazard_pointer_exchange_hazard_pointer">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gee.HazardPointer" c:type="GeeHazardPointer*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="aptr" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gconstpointer**"/>
				</parameter>
				<parameter name="new_ptr" transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="mask" transfer-ownership="none">
					<type name="gulong" c:type="gsize"/>
				</parameter>
				<parameter name="new_mask" transfer-ownership="none">
					<type name="gulong" c:type="gsize"/>
				</parameter>
				<parameter name="old_mask" direction="out" transfer-ownership="full">
					<type name="gulong" c:type="gsize"/>
				</parameter>
			</parameters>
		</function>
		<function name="set_pointer" c:identifier="gee_hazard_pointer_set_pointer">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="aptr" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gconstpointer**"/>
				</parameter>
				<parameter name="new_ptr" transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="mask" transfer-ownership="none">
					<type name="gulong" c:type="gsize"/>
				</parameter>
				<parameter name="new_mask" transfer-ownership="none">
					<type name="gulong" c:type="gsize"/>
				</parameter>
			</parameters>
		</function>
		<function name="exchange_pointer" c:identifier="gee_hazard_pointer_exchange_pointer">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="aptr" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gconstpointer**"/>
				</parameter>
				<parameter name="new_ptr" transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="mask" transfer-ownership="none">
					<type name="gulong" c:type="gsize"/>
				</parameter>
				<parameter name="new_mask" transfer-ownership="none">
					<type name="gulong" c:type="gsize"/>
				</parameter>
				<parameter name="old_mask" direction="out" transfer-ownership="full">
					<type name="gulong" c:type="gsize"/>
				</parameter>
			</parameters>
		</function>
		<function name="compare_and_exchange_pointer" c:identifier="gee_hazard_pointer_compare_and_exchange_pointer">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="aptr" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gconstpointer**"/>
				</parameter>
				<parameter name="old_ptr" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="_new_ptr" transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="mask" transfer-ownership="none">
					<type name="gulong" c:type="gsize"/>
				</parameter>
				<parameter name="old_mask" transfer-ownership="none">
					<type name="gulong" c:type="gsize"/>
				</parameter>
				<parameter name="new_mask" transfer-ownership="none">
					<type name="gulong" c:type="gsize"/>
				</parameter>
			</parameters>
		</function>
		<method name="get" c:identifier="gee_hazard_pointer_get">
			<return-value transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="other_thread" transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</parameter>
			</parameters>
		</method>
		<method name="release" c:identifier="gee_hazard_pointer_release">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
				<parameter name="notify_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<function name="set_default_policy" c:identifier="gee_hazard_pointer_set_default_policy">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="policy" transfer-ownership="none">
					<type name="Gee.HazardPointerPolicy" c:type="GeeHazardPointerPolicy"/>
				</parameter>
			</parameters>
		</function>
		<function name="set_thread_exit_policy" c:identifier="gee_hazard_pointer_set_thread_exit_policy">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="policy" transfer-ownership="none">
					<type name="Gee.HazardPointerPolicy" c:type="GeeHazardPointerPolicy"/>
				</parameter>
			</parameters>
		</function>
		<function name="set_release_policy" c:identifier="gee_hazard_pointer_set_release_policy">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="policy" transfer-ownership="none">
					<type name="Gee.HazardPointerReleasePolicy" c:type="GeeHazardPointerReleasePolicy"/>
				</parameter>
			</parameters>
		</function>
	</record>
	<enumeration name="HazardPointerPolicy" c:type="GeeHazardPointerPolicy" glib:type-name="GeeHazardPointerPolicy" glib:get-type="gee_hazard_pointer_policy_get_type">
		<member name="default" c:identifier="GEE_HAZARD_POINTER_POLICY_DEFAULT" value="0"/>
		<member name="thread_exit" c:identifier="GEE_HAZARD_POINTER_POLICY_THREAD_EXIT" value="1"/>
		<member name="try_free" c:identifier="GEE_HAZARD_POINTER_POLICY_TRY_FREE" value="2"/>
		<member name="free" c:identifier="GEE_HAZARD_POINTER_POLICY_FREE" value="3"/>
		<member name="try_release" c:identifier="GEE_HAZARD_POINTER_POLICY_TRY_RELEASE" value="4"/>
		<member name="release" c:identifier="GEE_HAZARD_POINTER_POLICY_RELEASE" value="5"/>
	</enumeration>
	<function name="hazard_pointer_policy_is_concrete" c:identifier="gee_hazard_pointer_policy_is_concrete">
		<return-value transfer-ownership="full">
			<type name="gboolean" c:type="gboolean"/>
		</return-value>
	</function>
	<function name="hazard_pointer_policy_is_blocking" c:identifier="gee_hazard_pointer_policy_is_blocking">
		<return-value transfer-ownership="full">
			<type name="gboolean" c:type="gboolean"/>
		</return-value>
	</function>
	<function name="hazard_pointer_policy_is_safe" c:identifier="gee_hazard_pointer_policy_is_safe">
		<return-value transfer-ownership="full">
			<type name="gboolean" c:type="gboolean"/>
		</return-value>
	</function>
	<function name="hazard_pointer_policy_to_concrete" c:identifier="gee_hazard_pointer_policy_to_concrete">
		<return-value transfer-ownership="full">
			<type name="Gee.HazardPointerPolicy" c:type="GeeHazardPointerPolicy"/>
		</return-value>
	</function>
	<enumeration name="HazardPointerReleasePolicy" c:type="GeeHazardPointerReleasePolicy" glib:type-name="GeeHazardPointerReleasePolicy" glib:get-type="gee_hazard_pointer_release_policy_get_type">
		<member name="helper_thread" c:identifier="GEE_HAZARD_POINTER_RELEASE_POLICY_HELPER_THREAD" value="0"/>
		<member name="main_loop" c:identifier="GEE_HAZARD_POINTER_RELEASE_POLICY_MAIN_LOOP" value="1"/>
	</enumeration>
	<record name="HazardPointerContext">
		<constructor name="new" c:identifier="gee_hazard_pointer_context_new">
			<return-value transfer-ownership="full">
				<type name="Gee.HazardPointerContext" c:type="GeeHazardPointerContext*"/>
			</return-value>
			<parameters>
				<parameter name="policy" transfer-ownership="none" allow-none="1">
					<type name="Gee.HazardPointerPolicy" c:type="GeeHazardPointerPolicy*"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="try_free" c:identifier="gee_hazard_pointer_context_try_free">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<method name="free_all" c:identifier="gee_hazard_pointer_context_free_all">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<method name="try_release" c:identifier="gee_hazard_pointer_context_try_release">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<method name="release" c:identifier="gee_hazard_pointer_context_release">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
	</record>
	<record name="Lazy">
		<constructor name="new" c:identifier="gee_lazy_new">
			<return-value transfer-ownership="full">
				<type name="Gee.Lazy" c:type="GeeLazy*"/>
			</return-value>
			<parameters>
				<parameter name="func" transfer-ownership="none" closure="1" scope="notified" destroy="2">
					<type name="Gee.LazyFunc" c:type="GeeLazyFunc"/>
				</parameter>
				<parameter name="func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="from_value" c:identifier="gee_lazy_new_from_value">
			<return-value transfer-ownership="full">
				<type name="Gee.Lazy" c:type="GeeLazy*"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="eval" c:identifier="gee_lazy_eval">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<method name="get" c:identifier="gee_lazy_get">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<property name="value">
			<type name="gpointer" c:type="gpointer"/>
		</property>
		<property name="future">
			<type name="Gee.Future" c:type="GeeFuture*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</record>
	<class name="LinkedList" c:type="GeeLinkedList" glib:type-name="GeeLinkedList" glib:get-type="gee_linked_list_get_type" glib:type-struct="LinkedListClass" parent="Gee.AbstractBidirList">
		<implements name="Gee.Queue"/>
		<implements name="Gee.Deque"/>
		<field name="parent_instance">
			<type name="Gee.AbstractBidirList" c:type="GeeAbstractBidirList"/>
		</field>
		<field name="priv">
			<type name="LinkedListPrivate" c:type="GeeLinkedListPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gee_linked_list_new">
			<return-value transfer-ownership="full">
				<type name="Gee.LinkedList" c:type="GeeLinkedList*"/>
			</return-value>
			<parameters>
				<parameter name="equal_func" transfer-ownership="none" allow-none="1" closure="1" scope="notified" destroy="2">
					<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
				</parameter>
				<parameter name="equal_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="equal_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="first" c:identifier="gee_linked_list_first">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<method name="last" c:identifier="gee_linked_list_last">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<property name="equal-func" writable="1">
			<annotation key="ccode.notify" value="false"/>
			<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
		</property>
	</class>
	<record name="LinkedListClass" c:type="GeeLinkedListClass" glib:is-gtype-struct-for="LinkedList">
		<field name="parent_class">
			<type name="Gee.AbstractBidirListClass" c:type="GeeAbstractBidirListClass"/>
		</field>
	</record>
	<record name="LinkedListPrivate" c:type="GeeLinkedListPrivate" disguised="1"/>
	<class name="PriorityQueue" c:type="GeePriorityQueue" glib:type-name="GeePriorityQueue" glib:get-type="gee_priority_queue_get_type" glib:type-struct="PriorityQueueClass" parent="Gee.AbstractQueue">
		<field name="parent_instance">
			<type name="Gee.AbstractQueue" c:type="GeeAbstractQueue"/>
		</field>
		<field name="priv">
			<type name="PriorityQueuePrivate" c:type="GeePriorityQueuePrivate*"/>
		</field>
		<constructor name="new" c:identifier="gee_priority_queue_new">
			<return-value transfer-ownership="full">
				<type name="Gee.PriorityQueue" c:type="GeePriorityQueue*"/>
			</return-value>
			<parameters>
				<parameter name="compare_func" transfer-ownership="none" allow-none="1" closure="1" scope="notified" destroy="2">
					<type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
				</parameter>
				<parameter name="compare_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="compare_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="offer" c:identifier="gee_priority_queue_offer">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<method name="drain" c:identifier="gee_priority_queue_drain">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="recipient" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
				<parameter name="amount" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="compare-func" writable="1">
			<annotation key="ccode.notify" value="false"/>
			<type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
		</property>
	</class>
	<record name="PriorityQueueClass" c:type="GeePriorityQueueClass" glib:is-gtype-struct-for="PriorityQueue">
		<field name="parent_class">
			<type name="Gee.AbstractQueueClass" c:type="GeeAbstractQueueClass"/>
		</field>
	</record>
	<record name="PriorityQueuePrivate" c:type="GeePriorityQueuePrivate" disguised="1"/>
	<record name="Promise">
		<method name="set_value" c:identifier="gee_promise_set_value">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<method name="set_exception" c:identifier="gee_promise_set_exception">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="exception" transfer-ownership="full">
					<type name="GLib.Error"/>
				</parameter>
			</parameters>
		</method>
		<constructor name="new" c:identifier="gee_promise_new">
			<return-value transfer-ownership="full">
				<type name="Gee.Promise" c:type="GeePromise*"/>
			</return-value>
		</constructor>
		<property name="future">
			<type name="Gee.Future" c:type="GeeFuture*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</record>
	<class name="TreeMap" c:type="GeeTreeMap" glib:type-name="GeeTreeMap" glib:get-type="gee_tree_map_get_type" glib:type-struct="TreeMapClass" parent="Gee.AbstractBidirSortedMap">
		<field name="parent_instance">
			<type name="Gee.AbstractBidirSortedMap" c:type="GeeAbstractBidirSortedMap"/>
		</field>
		<field name="priv">
			<type name="TreeMapPrivate" c:type="GeeTreeMapPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gee_tree_map_new">
			<return-value transfer-ownership="full">
				<type name="Gee.TreeMap" c:type="GeeTreeMap*"/>
			</return-value>
			<parameters>
				<parameter name="key_compare_func" transfer-ownership="none" allow-none="1" closure="1" scope="notified" destroy="2">
					<type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
				</parameter>
				<parameter name="key_compare_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="key_compare_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
				<parameter name="value_equal_func" transfer-ownership="none" allow-none="1" closure="4" scope="notified" destroy="5">
					<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
				</parameter>
				<parameter name="value_equal_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="value_equal_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="key-compare-func" writable="1">
			<annotation key="ccode.notify" value="false"/>
			<type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
		</property>
		<property name="value-equal-func" writable="1">
			<annotation key="ccode.notify" value="false"/>
			<type name="Gee.EqualDataFunc" c:type="GeeEqualDataFunc"/>
		</property>
	</class>
	<record name="TreeMapClass" c:type="GeeTreeMapClass" glib:is-gtype-struct-for="TreeMap">
		<field name="parent_class">
			<type name="Gee.AbstractBidirSortedMapClass" c:type="GeeAbstractBidirSortedMapClass"/>
		</field>
	</record>
	<record name="TreeMapPrivate" c:type="GeeTreeMapPrivate" disguised="1"/>
	<class name="TreeMultiMap" c:type="GeeTreeMultiMap" glib:type-name="GeeTreeMultiMap" glib:get-type="gee_tree_multi_map_get_type" glib:type-struct="TreeMultiMapClass" parent="Gee.AbstractMultiMap">
		<field name="parent_instance">
			<type name="Gee.AbstractMultiMap" c:type="GeeAbstractMultiMap"/>
		</field>
		<field name="priv">
			<type name="TreeMultiMapPrivate" c:type="GeeTreeMultiMapPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gee_tree_multi_map_new">
			<return-value transfer-ownership="full">
				<type name="Gee.TreeMultiMap" c:type="GeeTreeMultiMap*"/>
			</return-value>
			<parameters>
				<parameter name="key_compare_func" transfer-ownership="none" allow-none="1" closure="1" scope="notified" destroy="2">
					<type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
				</parameter>
				<parameter name="key_compare_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="key_compare_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
				<parameter name="value_compare_func" transfer-ownership="none" allow-none="1" closure="4" scope="notified" destroy="5">
					<type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
				</parameter>
				<parameter name="value_compare_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="value_compare_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="key-compare-func">
			<type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
		</property>
		<property name="value-compare-func" writable="1">
			<annotation key="ccode.notify" value="false"/>
			<type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
		</property>
	</class>
	<record name="TreeMultiMapClass" c:type="GeeTreeMultiMapClass" glib:is-gtype-struct-for="TreeMultiMap">
		<field name="parent_class">
			<type name="Gee.AbstractMultiMapClass" c:type="GeeAbstractMultiMapClass"/>
		</field>
	</record>
	<record name="TreeMultiMapPrivate" c:type="GeeTreeMultiMapPrivate" disguised="1"/>
	<class name="TreeMultiSet" c:type="GeeTreeMultiSet" glib:type-name="GeeTreeMultiSet" glib:get-type="gee_tree_multi_set_get_type" glib:type-struct="TreeMultiSetClass" parent="Gee.AbstractMultiSet">
		<field name="parent_instance">
			<type name="Gee.AbstractMultiSet" c:type="GeeAbstractMultiSet"/>
		</field>
		<field name="priv">
			<type name="TreeMultiSetPrivate" c:type="GeeTreeMultiSetPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gee_tree_multi_set_new">
			<return-value transfer-ownership="full">
				<type name="Gee.TreeMultiSet" c:type="GeeTreeMultiSet*"/>
			</return-value>
			<parameters>
				<parameter name="compare_func" transfer-ownership="none" allow-none="1" closure="1" scope="notified" destroy="2">
					<type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
				</parameter>
				<parameter name="compare_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="compare_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="compare-func">
			<type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
		</property>
	</class>
	<record name="TreeMultiSetClass" c:type="GeeTreeMultiSetClass" glib:is-gtype-struct-for="TreeMultiSet">
		<field name="parent_class">
			<type name="Gee.AbstractMultiSetClass" c:type="GeeAbstractMultiSetClass"/>
		</field>
	</record>
	<record name="TreeMultiSetPrivate" c:type="GeeTreeMultiSetPrivate" disguised="1"/>
	<class name="TreeSet" c:type="GeeTreeSet" glib:type-name="GeeTreeSet" glib:get-type="gee_tree_set_get_type" glib:type-struct="TreeSetClass" parent="Gee.AbstractBidirSortedSet">
		<field name="parent_instance">
			<type name="Gee.AbstractBidirSortedSet" c:type="GeeAbstractBidirSortedSet"/>
		</field>
		<field name="priv">
			<type name="TreeSetPrivate" c:type="GeeTreeSetPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gee_tree_set_new">
			<return-value transfer-ownership="full">
				<type name="Gee.TreeSet" c:type="GeeTreeSet*"/>
			</return-value>
			<parameters>
				<parameter name="compare_func" transfer-ownership="none" allow-none="1" closure="1" scope="notified" destroy="2">
					<type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
				</parameter>
				<parameter name="compare_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="compare_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="compare-func" writable="1">
			<annotation key="ccode.notify" value="false"/>
			<type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
		</property>
	</class>
	<record name="TreeSetClass" c:type="GeeTreeSetClass" glib:is-gtype-struct-for="TreeSet">
		<field name="parent_class">
			<type name="Gee.AbstractBidirSortedSetClass" c:type="GeeAbstractBidirSortedSetClass"/>
		</field>
	</record>
	<record name="TreeSetPrivate" c:type="GeeTreeSetPrivate" disguised="1"/>
	<interface name="BidirIterator" c:type="GeeBidirIterator" glib:type-name="GeeBidirIterator" glib:get-type="gee_bidir_iterator_get_type" glib:type-struct="BidirIteratorIface">
		<prerequisite name="Gee.Iterator"/>
		<method name="previous" c:identifier="gee_bidir_iterator_previous">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="previous" invoker="previous">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
		<method name="has_previous" c:identifier="gee_bidir_iterator_has_previous">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="has_previous" invoker="has_previous">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
		<method name="first" c:identifier="gee_bidir_iterator_first">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="first" invoker="first">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
		<method name="last" c:identifier="gee_bidir_iterator_last">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="last" invoker="last">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
	</interface>
	<record name="BidirIteratorIface" c:type="GeeBidirIteratorIface" glib:is-gtype-struct-for="BidirIterator">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="previous">
			<callback name="previous" c:type="previous">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.BidirIterator" c:type="GeeBidirIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="has_previous">
			<callback name="has_previous" c:type="has_previous">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.BidirIterator" c:type="GeeBidirIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="first">
			<callback name="first" c:type="first">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.BidirIterator" c:type="GeeBidirIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="last">
			<callback name="last" c:type="last">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.BidirIterator" c:type="GeeBidirIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="BidirList" c:type="GeeBidirList" glib:type-name="GeeBidirList" glib:get-type="gee_bidir_list_get_type" glib:type-struct="BidirListIface">
		<prerequisite name="Gee.List"/>
		<method name="bidir_list_iterator" c:identifier="gee_bidir_list_bidir_list_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.BidirListIterator" c:type="GeeBidirListIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="bidir_list_iterator" invoker="bidir_list_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.BidirListIterator" c:type="GeeBidirListIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
		<property name="read-only-view">
			<type name="Gee.BidirList" c:type="GeeBidirList*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</interface>
	<record name="BidirListIface" c:type="GeeBidirListIface" glib:is-gtype-struct-for="BidirList">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="bidir_list_iterator">
			<callback name="bidir_list_iterator" c:type="bidir_list_iterator">
				<return-value transfer-ownership="full">
					<type name="Gee.BidirListIterator" c:type="GeeBidirListIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.BidirList" c:type="GeeBidirList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="BidirListIterator" c:type="GeeBidirListIterator" glib:type-name="GeeBidirListIterator" glib:get-type="gee_bidir_list_iterator_get_type" glib:type-struct="BidirListIteratorIface">
		<prerequisite name="Gee.BidirIterator"/>
		<prerequisite name="Gee.ListIterator"/>
		<method name="insert" c:identifier="gee_bidir_list_iterator_insert">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="insert" invoker="insert">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="BidirListIteratorIface" c:type="GeeBidirListIteratorIface" glib:is-gtype-struct-for="BidirListIterator">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="insert">
			<callback name="insert" c:type="insert">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.BidirListIterator" c:type="GeeBidirListIterator*"/>
					</parameter>
					<parameter name="item" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="BidirMapIterator" c:type="GeeBidirMapIterator" glib:type-name="GeeBidirMapIterator" glib:get-type="gee_bidir_map_iterator_get_type" glib:type-struct="BidirMapIteratorIface">
		<prerequisite name="Gee.MapIterator"/>
		<method name="previous" c:identifier="gee_bidir_map_iterator_previous">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="previous" invoker="previous">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
		<method name="has_previous" c:identifier="gee_bidir_map_iterator_has_previous">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="has_previous" invoker="has_previous">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
		<method name="first" c:identifier="gee_bidir_map_iterator_first">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="first" invoker="first">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
		<method name="last" c:identifier="gee_bidir_map_iterator_last">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="last" invoker="last">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
	</interface>
	<record name="BidirMapIteratorIface" c:type="GeeBidirMapIteratorIface" glib:is-gtype-struct-for="BidirMapIterator">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="previous">
			<callback name="previous" c:type="previous">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.BidirMapIterator" c:type="GeeBidirMapIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="has_previous">
			<callback name="has_previous" c:type="has_previous">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.BidirMapIterator" c:type="GeeBidirMapIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="first">
			<callback name="first" c:type="first">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.BidirMapIterator" c:type="GeeBidirMapIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="last">
			<callback name="last" c:type="last">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.BidirMapIterator" c:type="GeeBidirMapIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="BidirSortedSet" c:type="GeeBidirSortedSet" glib:type-name="GeeBidirSortedSet" glib:get-type="gee_bidir_sorted_set_get_type" glib:type-struct="BidirSortedSetIface">
		<prerequisite name="Gee.SortedSet"/>
		<method name="bidir_iterator" c:identifier="gee_bidir_sorted_set_bidir_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.BidirIterator" c:type="GeeBidirIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="bidir_iterator" invoker="bidir_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.BidirIterator" c:type="GeeBidirIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
		<function name="empty" c:identifier="gee_bidir_sorted_set_empty">
			<return-value transfer-ownership="full">
				<type name="Gee.BidirSortedSet" c:type="GeeBidirSortedSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</function>
		<property name="read-only-view">
			<type name="Gee.BidirSortedSet" c:type="GeeBidirSortedSet*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</interface>
	<record name="BidirSortedSetIface" c:type="GeeBidirSortedSetIface" glib:is-gtype-struct-for="BidirSortedSet">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="bidir_iterator">
			<callback name="bidir_iterator" c:type="bidir_iterator">
				<return-value transfer-ownership="full">
					<type name="Gee.BidirIterator" c:type="GeeBidirIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.BidirSortedSet" c:type="GeeBidirSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="BidirSortedMap" c:type="GeeBidirSortedMap" glib:type-name="GeeBidirSortedMap" glib:get-type="gee_bidir_sorted_map_get_type" glib:type-struct="BidirSortedMapIface">
		<prerequisite name="Gee.SortedMap"/>
		<method name="bidir_map_iterator" c:identifier="gee_bidir_sorted_map_bidir_map_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.BidirMapIterator" c:type="GeeBidirMapIterator*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="bidir_map_iterator" invoker="bidir_map_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.BidirMapIterator" c:type="GeeBidirMapIterator*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
		<function name="empty" c:identifier="gee_bidir_sorted_map_empty">
			<return-value transfer-ownership="full">
				<type name="Gee.BidirSortedMap" c:type="GeeBidirSortedMap*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</function>
		<property name="read-only-view">
			<type name="Gee.BidirSortedMap" c:type="GeeBidirSortedMap*">
				<type name="gpointer" c:type="gpointer"/>
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</interface>
	<record name="BidirSortedMapIface" c:type="GeeBidirSortedMapIface" glib:is-gtype-struct-for="BidirSortedMap">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="bidir_map_iterator">
			<callback name="bidir_map_iterator" c:type="bidir_map_iterator">
				<return-value transfer-ownership="full">
					<type name="Gee.BidirMapIterator" c:type="GeeBidirMapIterator*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.BidirSortedMap" c:type="GeeBidirSortedMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="Collection" c:type="GeeCollection" glib:type-name="GeeCollection" glib:get-type="gee_collection_get_type" glib:type-struct="CollectionIface">
		<prerequisite name="Gee.Iterable"/>
		<method name="contains" c:identifier="gee_collection_contains">
			<annotation key="ccode.ordering" value="0"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="contains" invoker="contains">
			<annotation key="ccode.ordering" value="0"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="add" c:identifier="gee_collection_add">
			<annotation key="ccode.ordering" value="1"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="add" invoker="add">
			<annotation key="ccode.ordering" value="1"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="remove" c:identifier="gee_collection_remove">
			<annotation key="ccode.ordering" value="2"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="remove" invoker="remove">
			<annotation key="ccode.ordering" value="2"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="clear" c:identifier="gee_collection_clear">
			<annotation key="ccode.ordering" value="3"/>
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<virtual-method name="clear" invoker="clear">
			<annotation key="ccode.ordering" value="3"/>
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</virtual-method>
		<method name="add_all" c:identifier="gee_collection_add_all">
			<annotation key="ccode.ordering" value="4"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="collection" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="add_all" invoker="add_all">
			<annotation key="ccode.ordering" value="4"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="collection" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="contains_all" c:identifier="gee_collection_contains_all">
			<annotation key="ccode.ordering" value="5"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="collection" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="contains_all" invoker="contains_all">
			<annotation key="ccode.ordering" value="5"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="collection" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="remove_all" c:identifier="gee_collection_remove_all">
			<annotation key="ccode.ordering" value="6"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="collection" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="remove_all" invoker="remove_all">
			<annotation key="ccode.ordering" value="6"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="collection" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="retain_all" c:identifier="gee_collection_retain_all">
			<annotation key="ccode.ordering" value="7"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="collection" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="retain_all" invoker="retain_all">
			<annotation key="ccode.ordering" value="7"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="collection" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="to_array" c:identifier="gee_collection_to_array">
			<annotation key="ccode.ordering" value="8"/>
			<return-value transfer-ownership="full">
				<array length="0">
					<type name="gpointer" c:type="gpointer"/>
				</array>
			</return-value>
			<parameters>
				<parameter name="result_length1" direction="out" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="to_array" invoker="to_array">
			<annotation key="ccode.ordering" value="8"/>
			<return-value transfer-ownership="full">
				<array length="0">
					<type name="gpointer" c:type="gpointer"/>
				</array>
			</return-value>
			<parameters>
				<parameter name="result_length1" direction="out" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="add_all_array" c:identifier="gee_collection_add_all_array">
			<annotation key="ccode.ordering" value="13"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="array" transfer-ownership="none">
					<array length="1">
						<type name="gpointer" c:type="gpointer"/>
					</array>
				</parameter>
				<parameter name="array_length1" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="add_all_array" invoker="add_all_array">
			<annotation key="ccode.ordering" value="13"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="array" transfer-ownership="none">
					<array length="1">
						<type name="gpointer" c:type="gpointer"/>
					</array>
				</parameter>
				<parameter name="array_length1" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="contains_all_array" c:identifier="gee_collection_contains_all_array">
			<annotation key="ccode.ordering" value="14"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="array" transfer-ownership="none">
					<array length="1">
						<type name="gpointer" c:type="gpointer"/>
					</array>
				</parameter>
				<parameter name="array_length1" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="contains_all_array" invoker="contains_all_array">
			<annotation key="ccode.ordering" value="14"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="array" transfer-ownership="none">
					<array length="1">
						<type name="gpointer" c:type="gpointer"/>
					</array>
				</parameter>
				<parameter name="array_length1" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="remove_all_array" c:identifier="gee_collection_remove_all_array">
			<annotation key="ccode.ordering" value="15"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="array" transfer-ownership="none">
					<array length="1">
						<type name="gpointer" c:type="gpointer"/>
					</array>
				</parameter>
				<parameter name="array_length1" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="remove_all_array" invoker="remove_all_array">
			<annotation key="ccode.ordering" value="15"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="array" transfer-ownership="none">
					<array length="1">
						<type name="gpointer" c:type="gpointer"/>
					</array>
				</parameter>
				<parameter name="array_length1" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="add_all_iterator" c:identifier="gee_collection_add_all_iterator">
			<annotation key="ccode.ordering" value="16"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="iter" transfer-ownership="none">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="add_all_iterator" invoker="add_all_iterator">
			<annotation key="ccode.ordering" value="16"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="iter" transfer-ownership="none">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="contains_all_iterator" c:identifier="gee_collection_contains_all_iterator">
			<annotation key="ccode.ordering" value="17"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="iter" transfer-ownership="none">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="contains_all_iterator" invoker="contains_all_iterator">
			<annotation key="ccode.ordering" value="17"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="iter" transfer-ownership="none">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="remove_all_iterator" c:identifier="gee_collection_remove_all_iterator">
			<annotation key="ccode.ordering" value="18"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="iter" transfer-ownership="none">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="remove_all_iterator" invoker="remove_all_iterator">
			<annotation key="ccode.ordering" value="18"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="iter" transfer-ownership="none">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</virtual-method>
		<function name="empty" c:identifier="gee_collection_empty">
			<return-value transfer-ownership="full">
				<type name="Gee.Collection" c:type="GeeCollection*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</function>
		<property name="size">
			<annotation key="ccode.ordering" value="9"/>
			<type name="gint" c:type="gint"/>
		</property>
		<property name="is-empty">
			<annotation key="ccode.ordering" value="10"/>
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<property name="read-only">
			<annotation key="ccode.ordering" value="11"/>
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<property name="read-only-view">
			<annotation key="ccode.ordering" value="12"/>
			<type name="Gee.Collection" c:type="GeeCollection*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</interface>
	<record name="CollectionIface" c:type="GeeCollectionIface" glib:is-gtype-struct-for="Collection">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="contains">
			<callback name="contains" c:type="contains">
				<annotation key="ccode.ordering" value="0"/>
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*"/>
					</parameter>
					<parameter name="item" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="add">
			<callback name="add" c:type="add">
				<annotation key="ccode.ordering" value="1"/>
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*"/>
					</parameter>
					<parameter name="item" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="remove">
			<callback name="remove" c:type="remove">
				<annotation key="ccode.ordering" value="2"/>
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*"/>
					</parameter>
					<parameter name="item" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="clear">
			<callback name="clear" c:type="clear">
				<annotation key="ccode.ordering" value="3"/>
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="add_all">
			<callback name="add_all" c:type="add_all">
				<annotation key="ccode.ordering" value="4"/>
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*"/>
					</parameter>
					<parameter name="collection" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*">
							<type name="gpointer" c:type="gpointer"/>
						</type>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="contains_all">
			<callback name="contains_all" c:type="contains_all">
				<annotation key="ccode.ordering" value="5"/>
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*"/>
					</parameter>
					<parameter name="collection" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*">
							<type name="gpointer" c:type="gpointer"/>
						</type>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="remove_all">
			<callback name="remove_all" c:type="remove_all">
				<annotation key="ccode.ordering" value="6"/>
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*"/>
					</parameter>
					<parameter name="collection" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*">
							<type name="gpointer" c:type="gpointer"/>
						</type>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="retain_all">
			<callback name="retain_all" c:type="retain_all">
				<annotation key="ccode.ordering" value="7"/>
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*"/>
					</parameter>
					<parameter name="collection" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*">
							<type name="gpointer" c:type="gpointer"/>
						</type>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="to_array">
			<callback name="to_array" c:type="to_array">
				<annotation key="ccode.ordering" value="8"/>
				<return-value transfer-ownership="full">
					<array length="1">
						<type name="gpointer" c:type="gpointer"/>
					</array>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*"/>
					</parameter>
					<parameter name="result_length1" direction="out" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="add_all_array">
			<callback name="add_all_array" c:type="add_all_array">
				<annotation key="ccode.ordering" value="13"/>
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*"/>
					</parameter>
					<parameter name="array" transfer-ownership="none">
						<array length="2">
							<type name="gpointer" c:type="gpointer"/>
						</array>
					</parameter>
					<parameter name="array_length1" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="contains_all_array">
			<callback name="contains_all_array" c:type="contains_all_array">
				<annotation key="ccode.ordering" value="14"/>
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*"/>
					</parameter>
					<parameter name="array" transfer-ownership="none">
						<array length="2">
							<type name="gpointer" c:type="gpointer"/>
						</array>
					</parameter>
					<parameter name="array_length1" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="remove_all_array">
			<callback name="remove_all_array" c:type="remove_all_array">
				<annotation key="ccode.ordering" value="15"/>
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*"/>
					</parameter>
					<parameter name="array" transfer-ownership="none">
						<array length="2">
							<type name="gpointer" c:type="gpointer"/>
						</array>
					</parameter>
					<parameter name="array_length1" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="add_all_iterator">
			<callback name="add_all_iterator" c:type="add_all_iterator">
				<annotation key="ccode.ordering" value="16"/>
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*"/>
					</parameter>
					<parameter name="iter" transfer-ownership="none">
						<type name="Gee.Iterator" c:type="GeeIterator*">
							<type name="gpointer" c:type="gpointer"/>
						</type>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="contains_all_iterator">
			<callback name="contains_all_iterator" c:type="contains_all_iterator">
				<annotation key="ccode.ordering" value="17"/>
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*"/>
					</parameter>
					<parameter name="iter" transfer-ownership="none">
						<type name="Gee.Iterator" c:type="GeeIterator*">
							<type name="gpointer" c:type="gpointer"/>
						</type>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="remove_all_iterator">
			<callback name="remove_all_iterator" c:type="remove_all_iterator">
				<annotation key="ccode.ordering" value="18"/>
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*"/>
					</parameter>
					<parameter name="iter" transfer-ownership="none">
						<type name="Gee.Iterator" c:type="GeeIterator*">
							<type name="gpointer" c:type="gpointer"/>
						</type>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="Comparable" c:type="GeeComparable" glib:type-name="GeeComparable" glib:get-type="gee_comparable_get_type" glib:type-struct="ComparableIface">
		<prerequisite name="GObject.Object"/>
		<method name="compare_to" c:identifier="gee_comparable_compare_to">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="object" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="compare_to" invoker="compare_to">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="object" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="ComparableIface" c:type="GeeComparableIface" glib:is-gtype-struct-for="Comparable">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="compare_to">
			<callback name="compare_to" c:type="compare_to">
				<return-value transfer-ownership="full">
					<type name="gint" c:type="gint"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Comparable" c:type="GeeComparable*"/>
					</parameter>
					<parameter name="object" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="Deque" c:type="GeeDeque" glib:type-name="GeeDeque" glib:get-type="gee_deque_get_type" glib:type-struct="DequeIface">
		<prerequisite name="Gee.Queue"/>
		<method name="offer_head" c:identifier="gee_deque_offer_head">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="offer_head" invoker="offer_head">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="peek_head" c:identifier="gee_deque_peek_head">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="peek_head" invoker="peek_head">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<method name="poll_head" c:identifier="gee_deque_poll_head">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="poll_head" invoker="poll_head">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<method name="drain_head" c:identifier="gee_deque_drain_head">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="recipient" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
				<parameter name="amount" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="drain_head" invoker="drain_head">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="recipient" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
				<parameter name="amount" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="offer_tail" c:identifier="gee_deque_offer_tail">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="offer_tail" invoker="offer_tail">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="peek_tail" c:identifier="gee_deque_peek_tail">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="peek_tail" invoker="peek_tail">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<method name="poll_tail" c:identifier="gee_deque_poll_tail">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="poll_tail" invoker="poll_tail">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<method name="drain_tail" c:identifier="gee_deque_drain_tail">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="recipient" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
				<parameter name="amount" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="drain_tail" invoker="drain_tail">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="recipient" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
				<parameter name="amount" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="DequeIface" c:type="GeeDequeIface" glib:is-gtype-struct-for="Deque">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="offer_head">
			<callback name="offer_head" c:type="offer_head">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Deque" c:type="GeeDeque*"/>
					</parameter>
					<parameter name="element" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="peek_head">
			<callback name="peek_head" c:type="peek_head">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Deque" c:type="GeeDeque*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="poll_head">
			<callback name="poll_head" c:type="poll_head">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Deque" c:type="GeeDeque*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="drain_head">
			<callback name="drain_head" c:type="drain_head">
				<return-value transfer-ownership="full">
					<type name="gint" c:type="gint"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Deque" c:type="GeeDeque*"/>
					</parameter>
					<parameter name="recipient" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*">
							<type name="gpointer" c:type="gpointer"/>
						</type>
					</parameter>
					<parameter name="amount" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="offer_tail">
			<callback name="offer_tail" c:type="offer_tail">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Deque" c:type="GeeDeque*"/>
					</parameter>
					<parameter name="element" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="peek_tail">
			<callback name="peek_tail" c:type="peek_tail">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Deque" c:type="GeeDeque*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="poll_tail">
			<callback name="poll_tail" c:type="poll_tail">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Deque" c:type="GeeDeque*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="drain_tail">
			<callback name="drain_tail" c:type="drain_tail">
				<return-value transfer-ownership="full">
					<type name="gint" c:type="gint"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Deque" c:type="GeeDeque*"/>
					</parameter>
					<parameter name="recipient" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*">
							<type name="gpointer" c:type="gpointer"/>
						</type>
					</parameter>
					<parameter name="amount" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="Future" c:type="GeeFuture" glib:type-name="GeeFuture" glib:get-type="gee_future_get_type" glib:type-struct="FutureIface">
		<prerequisite name="GObject.Object"/>
		<method name="wait" c:identifier="gee_future_wait" throws="1">
			<return-value transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="wait" invoker="wait" throws="1">
			<return-value transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<method name="wait_until" c:identifier="gee_future_wait_until" throws="1">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="end_time" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="value" direction="out" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="wait_until" invoker="wait_until" throws="1">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="end_time" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="value" direction="out" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="wait_async" c:identifier="gee_future_wait_async">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="wait_finish" c:identifier="gee_future_wait_finish" throws="1">
			<return-value transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="wait_async" invoker="wait_async">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<virtual-method name="wait_finish" invoker="wait_finish" throws="1">
			<return-value transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="map" c:identifier="gee_future_map">
			<return-value transfer-ownership="full">
				<type name="Gee.Future" c:type="GeeFuture*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="func" transfer-ownership="none" closure="1" scope="notified" destroy="2">
					<type name="Gee.FutureMapFunc" c:type="GeeFutureMapFunc"/>
				</parameter>
				<parameter name="func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="map" invoker="map">
			<return-value transfer-ownership="full">
				<type name="Gee.Future" c:type="GeeFuture*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="func" transfer-ownership="none" closure="1" scope="notified" destroy="2">
					<type name="Gee.FutureMapFunc" c:type="GeeFutureMapFunc"/>
				</parameter>
				<parameter name="func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="light_map" c:identifier="gee_future_light_map">
			<return-value transfer-ownership="full">
				<type name="Gee.Future" c:type="GeeFuture*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="func" transfer-ownership="none" closure="1">
					<type name="Gee.FutureLightMapFunc" c:type="GeeFutureLightMapFunc"/>
				</parameter>
				<parameter name="func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="light_map" invoker="light_map">
			<return-value transfer-ownership="full">
				<type name="Gee.Future" c:type="GeeFuture*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="func" transfer-ownership="none" closure="1">
					<type name="Gee.FutureLightMapFunc" c:type="GeeFutureLightMapFunc"/>
				</parameter>
				<parameter name="func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="zip" c:identifier="gee_future_zip">
			<return-value transfer-ownership="full">
				<type name="Gee.Future" c:type="GeeFuture*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="zip_func" transfer-ownership="none" closure="1" scope="async">
					<type name="Gee.FutureZipFunc" c:type="GeeFutureZipFunc"/>
				</parameter>
				<parameter name="zip_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="second" transfer-ownership="none">
					<type name="Gee.Future" c:type="GeeFuture*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="zip" invoker="zip">
			<return-value transfer-ownership="full">
				<type name="Gee.Future" c:type="GeeFuture*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="zip_func" transfer-ownership="none" closure="1" scope="async">
					<type name="Gee.FutureZipFunc" c:type="GeeFutureZipFunc"/>
				</parameter>
				<parameter name="zip_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="second" transfer-ownership="none">
					<type name="Gee.Future" c:type="GeeFuture*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="flat_map" c:identifier="gee_future_flat_map">
			<return-value transfer-ownership="full">
				<type name="Gee.Future" c:type="GeeFuture*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="func" transfer-ownership="none" closure="1" scope="notified" destroy="2">
					<type name="Gee.FutureFlatMapFunc" c:type="GeeFutureFlatMapFunc"/>
				</parameter>
				<parameter name="func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="flat_map" invoker="flat_map">
			<return-value transfer-ownership="full">
				<type name="Gee.Future" c:type="GeeFuture*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="func" transfer-ownership="none" closure="1" scope="notified" destroy="2">
					<type name="Gee.FutureFlatMapFunc" c:type="GeeFutureFlatMapFunc"/>
				</parameter>
				<parameter name="func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="value">
			<type name="gpointer" c:type="gpointer"/>
		</property>
		<property name="ready">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<property name="exception">
			<type name="GLib.Error?"/>
		</property>
		<callback name="MapFunc" c:type="GeeFutureMapFunc">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="user_data" transfer-ownership="none" closure="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</callback>
		<callback name="LightMapFunc" c:type="GeeFutureLightMapFunc">
			<return-value transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="user_data" transfer-ownership="none" closure="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</callback>
		<callback name="ZipFunc" c:type="GeeFutureZipFunc">
			<annotation key="ccode.scope" value="async"/>
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="a" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="b" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="user_data" transfer-ownership="none" closure="2">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</callback>
		<callback name="FlatMapFunc" c:type="GeeFutureFlatMapFunc">
			<return-value transfer-ownership="full">
				<type name="Gee.Future" c:type="GeeFuture*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="user_data" transfer-ownership="none" closure="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</callback>
	</interface>
	<record name="FutureIface" c:type="GeeFutureIface" glib:is-gtype-struct-for="Future">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="wait">
			<callback name="wait" c:type="wait" throws="1">
				<return-value transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Future" c:type="GeeFuture*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="wait_until">
			<callback name="wait_until" c:type="wait_until" throws="1">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Future" c:type="GeeFuture*"/>
					</parameter>
					<parameter name="end_time" transfer-ownership="none">
						<type name="gint64" c:type="gint64"/>
					</parameter>
					<parameter name="value" direction="out" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="wait_async">
			<callback name="wait_async" c:type="wait_async">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Future" c:type="GeeFuture*"/>
					</parameter>
					<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
						<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
					</parameter>
					<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="wait_finish">
			<callback name="wait_finish" c:type="wait_finish" throws="1">
				<return-value transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Future" c:type="GeeFuture*"/>
					</parameter>
					<parameter name="_res_" transfer-ownership="none">
						<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="map">
			<callback name="map" c:type="map">
				<return-value transfer-ownership="full">
					<type name="Gee.Future" c:type="GeeFuture*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Future" c:type="GeeFuture*"/>
					</parameter>
					<parameter name="func" transfer-ownership="none" closure="2" scope="notified" destroy="3">
						<type name="Gee.FutureMapFunc" c:type="GeeFutureMapFunc"/>
					</parameter>
					<parameter name="func_target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
					<parameter name="func_target_destroy_notify" transfer-ownership="none">
						<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="light_map">
			<callback name="light_map" c:type="light_map">
				<return-value transfer-ownership="full">
					<type name="Gee.Future" c:type="GeeFuture*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Future" c:type="GeeFuture*"/>
					</parameter>
					<parameter name="func" transfer-ownership="none" closure="2">
						<type name="Gee.FutureLightMapFunc" c:type="GeeFutureLightMapFunc"/>
					</parameter>
					<parameter name="func_target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="zip">
			<callback name="zip" c:type="zip">
				<return-value transfer-ownership="full">
					<type name="Gee.Future" c:type="GeeFuture*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Future" c:type="GeeFuture*"/>
					</parameter>
					<parameter name="zip_func" transfer-ownership="none" closure="2" scope="async">
						<type name="Gee.FutureZipFunc" c:type="GeeFutureZipFunc"/>
					</parameter>
					<parameter name="zip_func_target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
					<parameter name="second" transfer-ownership="none">
						<type name="Gee.Future" c:type="GeeFuture*">
							<type name="gpointer" c:type="gpointer"/>
						</type>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="flat_map">
			<callback name="flat_map" c:type="flat_map">
				<return-value transfer-ownership="full">
					<type name="Gee.Future" c:type="GeeFuture*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Future" c:type="GeeFuture*"/>
					</parameter>
					<parameter name="func" transfer-ownership="none" closure="2" scope="notified" destroy="3">
						<type name="Gee.FutureFlatMapFunc" c:type="GeeFutureFlatMapFunc"/>
					</parameter>
					<parameter name="func_target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
					<parameter name="func_target_destroy_notify" transfer-ownership="none">
						<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="Hashable" c:type="GeeHashable" glib:type-name="GeeHashable" glib:get-type="gee_hashable_get_type" glib:type-struct="HashableIface">
		<prerequisite name="GObject.Object"/>
		<method name="hash" c:identifier="gee_hashable_hash">
			<return-value transfer-ownership="full">
				<type name="guint" c:type="guint"/>
			</return-value>
		</method>
		<virtual-method name="hash" invoker="hash">
			<return-value transfer-ownership="full">
				<type name="guint" c:type="guint"/>
			</return-value>
		</virtual-method>
		<method name="equal_to" c:identifier="gee_hashable_equal_to">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="object" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="equal_to" invoker="equal_to">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="object" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="HashableIface" c:type="GeeHashableIface" glib:is-gtype-struct-for="Hashable">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="hash">
			<callback name="hash" c:type="hash">
				<return-value transfer-ownership="full">
					<type name="guint" c:type="guint"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Hashable" c:type="GeeHashable*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="equal_to">
			<callback name="equal_to" c:type="equal_to">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Hashable" c:type="GeeHashable*"/>
					</parameter>
					<parameter name="object" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="Iterable" c:type="GeeIterable" glib:type-name="GeeIterable" glib:get-type="gee_iterable_get_type" glib:type-struct="IterableIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="Gee.Traversable"/>
		<method name="iterator" c:identifier="gee_iterable_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="iterator" invoker="iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
	</interface>
	<record name="IterableIface" c:type="GeeIterableIface" glib:is-gtype-struct-for="Iterable">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="iterator">
			<callback name="iterator" c:type="iterator">
				<return-value transfer-ownership="full">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Iterable" c:type="GeeIterable*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="Iterator" c:type="GeeIterator" glib:type-name="GeeIterator" glib:get-type="gee_iterator_get_type" glib:type-struct="IteratorIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="Gee.Traversable"/>
		<method name="next" c:identifier="gee_iterator_next">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="next" invoker="next">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
		<method name="has_next" c:identifier="gee_iterator_has_next">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="has_next" invoker="has_next">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
		<method name="get" c:identifier="gee_iterator_get">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="get" invoker="get">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<method name="remove" c:identifier="gee_iterator_remove">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<virtual-method name="remove" invoker="remove">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</virtual-method>
		<function name="unfold" c:identifier="gee_iterator_unfold">
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1" scope="notified" destroy="2">
					<type name="Gee.UnfoldFunc" c:type="GeeUnfoldFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="f_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
				<parameter name="current" transfer-ownership="full" allow-none="1">
					<type name="Gee.Lazy" c:type="GeeLazy*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</function>
		<function name="concat" c:identifier="gee_iterator_concat">
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="iters" transfer-ownership="none">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="Gee.Iterator" c:type="GeeIterator*">
							<type name="gpointer" c:type="gpointer"/>
						</type>
					</type>
				</parameter>
			</parameters>
		</function>
		<property name="valid">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<property name="read-only">
			<type name="gboolean" c:type="gboolean"/>
		</property>
	</interface>
	<record name="IteratorIface" c:type="GeeIteratorIface" glib:is-gtype-struct-for="Iterator">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="next">
			<callback name="next" c:type="next">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Iterator" c:type="GeeIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="has_next">
			<callback name="has_next" c:type="has_next">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Iterator" c:type="GeeIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get">
			<callback name="get" c:type="get">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Iterator" c:type="GeeIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="remove">
			<callback name="remove" c:type="remove">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Iterator" c:type="GeeIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="List" c:type="GeeList" glib:type-name="GeeList" glib:get-type="gee_list_get_type" glib:type-struct="ListIface">
		<prerequisite name="Gee.Collection"/>
		<method name="list_iterator" c:identifier="gee_list_list_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.ListIterator" c:type="GeeListIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="list_iterator" invoker="list_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.ListIterator" c:type="GeeListIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
		<method name="get" c:identifier="gee_list_get">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="get" invoker="get">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="set" c:identifier="gee_list_set">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set" invoker="set">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="index_of" c:identifier="gee_list_index_of">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="index_of" invoker="index_of">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="insert" c:identifier="gee_list_insert">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="insert" invoker="insert">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="remove_at" c:identifier="gee_list_remove_at">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="remove_at" invoker="remove_at">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="slice" c:identifier="gee_list_slice">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gee.List" c:type="GeeList*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="start" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="stop" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="slice" invoker="slice">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gee.List" c:type="GeeList*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="start" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="stop" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="first" c:identifier="gee_list_first">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="first" invoker="first">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<method name="last" c:identifier="gee_list_last">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="last" invoker="last">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<method name="insert_all" c:identifier="gee_list_insert_all">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="collection" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="insert_all" invoker="insert_all">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="collection" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="sort" c:identifier="gee_list_sort">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="compare_func" transfer-ownership="none" allow-none="1" closure="1" scope="notified" destroy="2">
					<type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
				</parameter>
				<parameter name="compare_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="compare_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="sort" invoker="sort">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="compare_func" transfer-ownership="none" allow-none="1" closure="1" scope="notified" destroy="2">
					<type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
				</parameter>
				<parameter name="compare_func_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="compare_func_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</virtual-method>
		<function name="empty" c:identifier="gee_list_empty">
			<return-value transfer-ownership="full">
				<type name="Gee.List" c:type="GeeList*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</function>
		<property name="read-only-view">
			<type name="Gee.List" c:type="GeeList*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</interface>
	<record name="ListIface" c:type="GeeListIface" glib:is-gtype-struct-for="List">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="list_iterator">
			<callback name="list_iterator" c:type="list_iterator">
				<return-value transfer-ownership="full">
					<type name="Gee.ListIterator" c:type="GeeListIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.List" c:type="GeeList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get">
			<callback name="get" c:type="get">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.List" c:type="GeeList*"/>
					</parameter>
					<parameter name="index" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set">
			<callback name="set" c:type="set">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.List" c:type="GeeList*"/>
					</parameter>
					<parameter name="index" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
					<parameter name="item" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="index_of">
			<callback name="index_of" c:type="index_of">
				<return-value transfer-ownership="full">
					<type name="gint" c:type="gint"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.List" c:type="GeeList*"/>
					</parameter>
					<parameter name="item" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="insert">
			<callback name="insert" c:type="insert">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.List" c:type="GeeList*"/>
					</parameter>
					<parameter name="index" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
					<parameter name="item" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="remove_at">
			<callback name="remove_at" c:type="remove_at">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.List" c:type="GeeList*"/>
					</parameter>
					<parameter name="index" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="slice">
			<callback name="slice" c:type="slice">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="Gee.List" c:type="GeeList*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.List" c:type="GeeList*"/>
					</parameter>
					<parameter name="start" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
					<parameter name="stop" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="first">
			<callback name="first" c:type="first">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.List" c:type="GeeList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="last">
			<callback name="last" c:type="last">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.List" c:type="GeeList*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="insert_all">
			<callback name="insert_all" c:type="insert_all">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.List" c:type="GeeList*"/>
					</parameter>
					<parameter name="index" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
					<parameter name="collection" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*">
							<type name="gpointer" c:type="gpointer"/>
						</type>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="sort">
			<callback name="sort" c:type="sort">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.List" c:type="GeeList*"/>
					</parameter>
					<parameter name="compare_func" transfer-ownership="none" allow-none="1" closure="2" scope="notified" destroy="3">
						<type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
					</parameter>
					<parameter name="compare_func_target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
					<parameter name="compare_func_target_destroy_notify" transfer-ownership="none">
						<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="ListIterator" c:type="GeeListIterator" glib:type-name="GeeListIterator" glib:get-type="gee_list_iterator_get_type" glib:type-struct="ListIteratorIface">
		<prerequisite name="Gee.Iterator"/>
		<method name="set" c:identifier="gee_list_iterator_set">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set" invoker="set">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="add" c:identifier="gee_list_iterator_add">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="add" invoker="add">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="index" c:identifier="gee_list_iterator_index">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<virtual-method name="index" invoker="index">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
		</virtual-method>
	</interface>
	<record name="ListIteratorIface" c:type="GeeListIteratorIface" glib:is-gtype-struct-for="ListIterator">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="set">
			<callback name="set" c:type="set">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.ListIterator" c:type="GeeListIterator*"/>
					</parameter>
					<parameter name="item" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="add">
			<callback name="add" c:type="add">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.ListIterator" c:type="GeeListIterator*"/>
					</parameter>
					<parameter name="item" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="index">
			<callback name="index" c:type="index">
				<return-value transfer-ownership="full">
					<type name="gint" c:type="gint"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.ListIterator" c:type="GeeListIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="Map" c:type="GeeMap" glib:type-name="GeeMap" glib:get-type="gee_map_get_type" glib:type-struct="MapIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="Gee.Iterable"/>
		<method name="has_key" c:identifier="gee_map_has_key">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="has_key" invoker="has_key">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="contains" c:identifier="gee_map_contains" deprecated="Use Map.has_key">
			<annotation key="deprecated.replacement" value="Map.has_key"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<method name="has" c:identifier="gee_map_has">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="has" invoker="has">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="get" c:identifier="gee_map_get">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="get" invoker="get">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="set" c:identifier="gee_map_set">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set" invoker="set">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="unset" c:identifier="gee_map_unset">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="value" direction="out" transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="unset" invoker="unset">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="value" direction="out" transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="remove" c:identifier="gee_map_remove" deprecated="Use Map.unset">
			<annotation key="deprecated.replacement" value="Map.unset"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="value" direction="out" transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<method name="clear" c:identifier="gee_map_clear">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<virtual-method name="clear" invoker="clear">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</virtual-method>
		<method name="map_iterator" c:identifier="gee_map_map_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.MapIterator" c:type="GeeMapIterator*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="map_iterator" invoker="map_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.MapIterator" c:type="GeeMapIterator*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
		<method name="set_all" c:identifier="gee_map_set_all">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="map" transfer-ownership="none">
					<type name="Gee.Map" c:type="GeeMap*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_all" invoker="set_all">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="map" transfer-ownership="none">
					<type name="Gee.Map" c:type="GeeMap*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="unset_all" c:identifier="gee_map_unset_all">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="map" transfer-ownership="none">
					<type name="Gee.Map" c:type="GeeMap*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="unset_all" invoker="unset_all">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="map" transfer-ownership="none">
					<type name="Gee.Map" c:type="GeeMap*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="remove_all" c:identifier="gee_map_remove_all" deprecated="Use Map.unset_all">
			<annotation key="deprecated.replacement" value="Map.unset_all"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="map" transfer-ownership="none">
					<type name="Gee.Map" c:type="GeeMap*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<method name="has_all" c:identifier="gee_map_has_all">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="map" transfer-ownership="none">
					<type name="Gee.Map" c:type="GeeMap*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="has_all" invoker="has_all">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="map" transfer-ownership="none">
					<type name="Gee.Map" c:type="GeeMap*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="contains_all" c:identifier="gee_map_contains_all" deprecated="Use Map.has_all">
			<annotation key="deprecated.replacement" value="Map.has_all"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="map" transfer-ownership="none">
					<type name="Gee.Map" c:type="GeeMap*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<function name="empty" c:identifier="gee_map_empty">
			<return-value transfer-ownership="full">
				<type name="Gee.Map" c:type="GeeMap*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</function>
		<property name="size">
			<type name="gint" c:type="gint"/>
		</property>
		<property name="is-empty">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<property name="read-only">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<property name="keys">
			<type name="Gee.Set" c:type="GeeSet*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
		<property name="values">
			<type name="Gee.Collection" c:type="GeeCollection*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
		<property name="entries">
			<type name="Gee.Set" c:type="GeeSet*">
				<type name="Gee.MapEntry" c:type="GeeMapEntry*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</type>
		</property>
		<property name="read-only-view">
			<type name="Gee.Map" c:type="GeeMap*">
				<type name="gpointer" c:type="gpointer"/>
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
		<property name="key-type">
			<type name="GObject.Type" c:type="GType"/>
		</property>
		<property name="value-type">
			<type name="GObject.Type" c:type="GType"/>
		</property>
	</interface>
	<record name="MapIface" c:type="GeeMapIface" glib:is-gtype-struct-for="Map">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="has_key">
			<callback name="has_key" c:type="has_key">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Map" c:type="GeeMap*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="has">
			<callback name="has" c:type="has">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Map" c:type="GeeMap*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
					<parameter name="value" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get">
			<callback name="get" c:type="get">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Map" c:type="GeeMap*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set">
			<callback name="set" c:type="set">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Map" c:type="GeeMap*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
					<parameter name="value" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="unset">
			<callback name="unset" c:type="unset">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Map" c:type="GeeMap*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
					<parameter name="value" direction="out" transfer-ownership="full" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="clear">
			<callback name="clear" c:type="clear">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Map" c:type="GeeMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="map_iterator">
			<callback name="map_iterator" c:type="map_iterator">
				<return-value transfer-ownership="full">
					<type name="Gee.MapIterator" c:type="GeeMapIterator*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Map" c:type="GeeMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_all">
			<callback name="set_all" c:type="set_all">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Map" c:type="GeeMap*"/>
					</parameter>
					<parameter name="map" transfer-ownership="none">
						<type name="Gee.Map" c:type="GeeMap*">
							<type name="gpointer" c:type="gpointer"/>
							<type name="gpointer" c:type="gpointer"/>
						</type>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="unset_all">
			<callback name="unset_all" c:type="unset_all">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Map" c:type="GeeMap*"/>
					</parameter>
					<parameter name="map" transfer-ownership="none">
						<type name="Gee.Map" c:type="GeeMap*">
							<type name="gpointer" c:type="gpointer"/>
							<type name="gpointer" c:type="gpointer"/>
						</type>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="has_all">
			<callback name="has_all" c:type="has_all">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Map" c:type="GeeMap*"/>
					</parameter>
					<parameter name="map" transfer-ownership="none">
						<type name="Gee.Map" c:type="GeeMap*">
							<type name="gpointer" c:type="gpointer"/>
							<type name="gpointer" c:type="gpointer"/>
						</type>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<class name="MapEntry" c:type="GeeMapEntry" glib:type-name="GeeMapEntry" glib:get-type="gee_map_entry_get_type" glib:type-struct="MapEntryClass" parent="GObject.Object" abstract="1">
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="EntryPrivate" c:type="GeeMapEntryPrivate*"/>
		</field>
		<property name="key">
			<type name="gpointer" c:type="gpointer"/>
		</property>
		<property name="value" writable="1">
			<type name="gpointer" c:type="gpointer"/>
		</property>
		<property name="read-only">
			<type name="gboolean" c:type="gboolean"/>
		</property>
	</class>
	<record name="MapEntryClass" c:type="GeeMapEntryClass" glib:is-gtype-struct-for="Entry">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="EntryPrivate" c:type="GeeMapEntryPrivate" disguised="1"/>
	<interface name="MapIterator" c:type="GeeMapIterator" glib:type-name="GeeMapIterator" glib:get-type="gee_map_iterator_get_type" glib:type-struct="MapIteratorIface">
		<prerequisite name="GObject.Object"/>
		<method name="next" c:identifier="gee_map_iterator_next">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="next" invoker="next">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
		<method name="has_next" c:identifier="gee_map_iterator_has_next">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="has_next" invoker="has_next">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
		<method name="get_key" c:identifier="gee_map_iterator_get_key">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="get_key" invoker="get_key">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<method name="get_value" c:identifier="gee_map_iterator_get_value">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="get_value" invoker="get_value">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<method name="set_value" c:identifier="gee_map_iterator_set_value">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_value" invoker="set_value">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="unset" c:identifier="gee_map_iterator_unset">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<virtual-method name="unset" invoker="unset">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</virtual-method>
		<method name="fold" c:identifier="gee_map_iterator_fold">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1">
					<type name="Gee.FoldMapFunc" c:type="GeeFoldMapFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="seed" transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="fold" invoker="fold">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1">
					<type name="Gee.FoldMapFunc" c:type="GeeFoldMapFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="seed" transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="foreach" c:identifier="gee_map_iterator_foreach">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1">
					<type name="Gee.ForallMapFunc" c:type="GeeForallMapFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="foreach" invoker="foreach">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1">
					<type name="Gee.ForallMapFunc" c:type="GeeForallMapFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="valid">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<property name="mutable">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<property name="read-only">
			<type name="gboolean" c:type="gboolean"/>
		</property>
	</interface>
	<record name="MapIteratorIface" c:type="GeeMapIteratorIface" glib:is-gtype-struct-for="MapIterator">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="next">
			<callback name="next" c:type="next">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MapIterator" c:type="GeeMapIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="has_next">
			<callback name="has_next" c:type="has_next">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MapIterator" c:type="GeeMapIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_key">
			<callback name="get_key" c:type="get_key">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MapIterator" c:type="GeeMapIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_value">
			<callback name="get_value" c:type="get_value">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MapIterator" c:type="GeeMapIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_value">
			<callback name="set_value" c:type="set_value">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MapIterator" c:type="GeeMapIterator*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="unset">
			<callback name="unset" c:type="unset">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MapIterator" c:type="GeeMapIterator*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="fold">
			<callback name="fold" c:type="fold">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MapIterator" c:type="GeeMapIterator*"/>
					</parameter>
					<parameter name="f" transfer-ownership="none" closure="2">
						<type name="Gee.FoldMapFunc" c:type="GeeFoldMapFunc"/>
					</parameter>
					<parameter name="f_target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
					<parameter name="seed" transfer-ownership="full" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="foreach">
			<callback name="foreach" c:type="foreach">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MapIterator" c:type="GeeMapIterator*"/>
					</parameter>
					<parameter name="f" transfer-ownership="none" closure="2">
						<type name="Gee.ForallMapFunc" c:type="GeeForallMapFunc"/>
					</parameter>
					<parameter name="f_target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="MultiMap" c:type="GeeMultiMap" glib:type-name="GeeMultiMap" glib:get-type="gee_multi_map_get_type" glib:type-struct="MultiMapIface">
		<prerequisite name="GObject.Object"/>
		<method name="get_keys" c:identifier="gee_multi_map_get_keys">
			<return-value transfer-ownership="full">
				<type name="Gee.Set" c:type="GeeSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="get_keys" invoker="get_keys">
			<return-value transfer-ownership="full">
				<type name="Gee.Set" c:type="GeeSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
		<method name="get_all_keys" c:identifier="gee_multi_map_get_all_keys">
			<return-value transfer-ownership="full">
				<type name="Gee.MultiSet" c:type="GeeMultiSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="get_all_keys" invoker="get_all_keys">
			<return-value transfer-ownership="full">
				<type name="Gee.MultiSet" c:type="GeeMultiSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
		<method name="get_values" c:identifier="gee_multi_map_get_values">
			<return-value transfer-ownership="full">
				<type name="Gee.Collection" c:type="GeeCollection*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="get_values" invoker="get_values">
			<return-value transfer-ownership="full">
				<type name="Gee.Collection" c:type="GeeCollection*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
		<method name="contains" c:identifier="gee_multi_map_contains">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="contains" invoker="contains">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="get" c:identifier="gee_multi_map_get">
			<return-value transfer-ownership="full">
				<type name="Gee.Collection" c:type="GeeCollection*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="get" invoker="get">
			<return-value transfer-ownership="full">
				<type name="Gee.Collection" c:type="GeeCollection*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="set" c:identifier="gee_multi_map_set">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set" invoker="set">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="remove" c:identifier="gee_multi_map_remove">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="remove" invoker="remove">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="remove_all" c:identifier="gee_multi_map_remove_all">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="remove_all" invoker="remove_all">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="key" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="clear" c:identifier="gee_multi_map_clear">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<virtual-method name="clear" invoker="clear">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</virtual-method>
		<method name="map_iterator" c:identifier="gee_multi_map_map_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.MapIterator" c:type="GeeMapIterator*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="map_iterator" invoker="map_iterator">
			<return-value transfer-ownership="full">
				<type name="Gee.MapIterator" c:type="GeeMapIterator*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</virtual-method>
		<property name="size">
			<type name="gint" c:type="gint"/>
		</property>
		<property name="read-only">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<property name="key-type">
			<type name="GObject.Type" c:type="GType"/>
		</property>
		<property name="value-type">
			<type name="GObject.Type" c:type="GType"/>
		</property>
		<property name="read-only-view">
			<type name="Gee.MultiMap" c:type="GeeMultiMap*">
				<type name="gpointer" c:type="gpointer"/>
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</interface>
	<record name="MultiMapIface" c:type="GeeMultiMapIface" glib:is-gtype-struct-for="MultiMap">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="get_keys">
			<callback name="get_keys" c:type="get_keys">
				<return-value transfer-ownership="full">
					<type name="Gee.Set" c:type="GeeSet*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MultiMap" c:type="GeeMultiMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_all_keys">
			<callback name="get_all_keys" c:type="get_all_keys">
				<return-value transfer-ownership="full">
					<type name="Gee.MultiSet" c:type="GeeMultiSet*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MultiMap" c:type="GeeMultiMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_values">
			<callback name="get_values" c:type="get_values">
				<return-value transfer-ownership="full">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MultiMap" c:type="GeeMultiMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="contains">
			<callback name="contains" c:type="contains">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MultiMap" c:type="GeeMultiMap*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get">
			<callback name="get" c:type="get">
				<return-value transfer-ownership="full">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MultiMap" c:type="GeeMultiMap*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set">
			<callback name="set" c:type="set">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MultiMap" c:type="GeeMultiMap*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
					<parameter name="value" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="remove">
			<callback name="remove" c:type="remove">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MultiMap" c:type="GeeMultiMap*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
					<parameter name="value" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="remove_all">
			<callback name="remove_all" c:type="remove_all">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MultiMap" c:type="GeeMultiMap*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="clear">
			<callback name="clear" c:type="clear">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MultiMap" c:type="GeeMultiMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="map_iterator">
			<callback name="map_iterator" c:type="map_iterator">
				<return-value transfer-ownership="full">
					<type name="Gee.MapIterator" c:type="GeeMapIterator*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MultiMap" c:type="GeeMultiMap*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="MultiSet" c:type="GeeMultiSet" glib:type-name="GeeMultiSet" glib:get-type="gee_multi_set_get_type" glib:type-struct="MultiSetIface">
		<prerequisite name="Gee.Collection"/>
		<method name="count" c:identifier="gee_multi_set_count">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="count" invoker="count">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<function name="empty" c:identifier="gee_multi_set_empty">
			<return-value transfer-ownership="full">
				<type name="Gee.Set" c:type="GeeSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</function>
		<property name="read-only-view">
			<type name="Gee.MultiSet" c:type="GeeMultiSet*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</interface>
	<record name="MultiSetIface" c:type="GeeMultiSetIface" glib:is-gtype-struct-for="MultiSet">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="count">
			<callback name="count" c:type="count">
				<return-value transfer-ownership="full">
					<type name="gint" c:type="gint"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.MultiSet" c:type="GeeMultiSet*"/>
					</parameter>
					<parameter name="item" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="Queue" c:type="GeeQueue" glib:type-name="GeeQueue" glib:get-type="gee_queue_get_type" glib:type-struct="QueueIface">
		<prerequisite name="Gee.Collection"/>
		<method name="offer" c:identifier="gee_queue_offer">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="offer" invoker="offer">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="peek" c:identifier="gee_queue_peek">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="peek" invoker="peek">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<method name="poll" c:identifier="gee_queue_poll">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="poll" invoker="poll">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<method name="drain" c:identifier="gee_queue_drain">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="recipient" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
				<parameter name="amount" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="drain" invoker="drain">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="recipient" transfer-ownership="none">
					<type name="Gee.Collection" c:type="GeeCollection*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</parameter>
				<parameter name="amount" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<constant name="UNBOUNDED_CAPACITY" c:identifier="GEE_QUEUE_UNBOUNDED_CAPACITY" value="-1">
			<type name="gint" c:type="gint"/>
		</constant>
		<property name="capacity">
			<type name="gint" c:type="gint"/>
		</property>
		<property name="remaining-capacity">
			<type name="gint" c:type="gint"/>
		</property>
		<property name="is-full">
			<type name="gboolean" c:type="gboolean"/>
		</property>
	</interface>
	<record name="QueueIface" c:type="GeeQueueIface" glib:is-gtype-struct-for="Queue">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="offer">
			<callback name="offer" c:type="offer">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Queue" c:type="GeeQueue*"/>
					</parameter>
					<parameter name="element" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="peek">
			<callback name="peek" c:type="peek">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Queue" c:type="GeeQueue*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="poll">
			<callback name="poll" c:type="poll">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Queue" c:type="GeeQueue*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="drain">
			<callback name="drain" c:type="drain">
				<return-value transfer-ownership="full">
					<type name="gint" c:type="gint"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Queue" c:type="GeeQueue*"/>
					</parameter>
					<parameter name="recipient" transfer-ownership="none">
						<type name="Gee.Collection" c:type="GeeCollection*">
							<type name="gpointer" c:type="gpointer"/>
						</type>
					</parameter>
					<parameter name="amount" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="Set" c:type="GeeSet" glib:type-name="GeeSet" glib:get-type="gee_set_get_type" glib:type-struct="SetIface">
		<prerequisite name="Gee.Collection"/>
		<function name="empty" c:identifier="gee_set_empty">
			<return-value transfer-ownership="full">
				<type name="Gee.Set" c:type="GeeSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</function>
		<property name="read-only-view">
			<type name="Gee.Set" c:type="GeeSet*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</interface>
	<record name="SetIface" c:type="GeeSetIface" glib:is-gtype-struct-for="Set">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
	</record>
	<interface name="SortedMap" c:type="GeeSortedMap" glib:type-name="GeeSortedMap" glib:get-type="gee_sorted_map_get_type" glib:type-struct="SortedMapIface">
		<prerequisite name="Gee.Map"/>
		<method name="head_map" c:identifier="gee_sorted_map_head_map">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedMap" c:type="GeeSortedMap*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="before" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="head_map" invoker="head_map">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedMap" c:type="GeeSortedMap*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="before" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="tail_map" c:identifier="gee_sorted_map_tail_map">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedMap" c:type="GeeSortedMap*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="after" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="tail_map" invoker="tail_map">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedMap" c:type="GeeSortedMap*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="after" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="sub_map" c:identifier="gee_sorted_map_sub_map">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedMap" c:type="GeeSortedMap*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="before" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="after" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="sub_map" invoker="sub_map">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedMap" c:type="GeeSortedMap*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="before" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="after" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<function name="empty" c:identifier="gee_sorted_map_empty">
			<return-value transfer-ownership="full">
				<type name="Gee.Map" c:type="GeeMap*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</function>
		<property name="ascending-keys">
			<type name="Gee.SortedSet" c:type="GeeSortedSet*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
		<property name="ascending-entries">
			<type name="Gee.SortedSet" c:type="GeeSortedSet*">
				<type name="Gee.MapEntry" c:type="GeeMapEntry*">
					<type name="gpointer" c:type="gpointer"/>
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</type>
		</property>
		<property name="read-only-view">
			<type name="Gee.SortedMap" c:type="GeeSortedMap*">
				<type name="gpointer" c:type="gpointer"/>
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</interface>
	<record name="SortedMapIface" c:type="GeeSortedMapIface" glib:is-gtype-struct-for="SortedMap">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="head_map">
			<callback name="head_map" c:type="head_map">
				<return-value transfer-ownership="full">
					<type name="Gee.SortedMap" c:type="GeeSortedMap*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.SortedMap" c:type="GeeSortedMap*"/>
					</parameter>
					<parameter name="before" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="tail_map">
			<callback name="tail_map" c:type="tail_map">
				<return-value transfer-ownership="full">
					<type name="Gee.SortedMap" c:type="GeeSortedMap*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.SortedMap" c:type="GeeSortedMap*"/>
					</parameter>
					<parameter name="after" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="sub_map">
			<callback name="sub_map" c:type="sub_map">
				<return-value transfer-ownership="full">
					<type name="Gee.SortedMap" c:type="GeeSortedMap*">
						<type name="gpointer" c:type="gpointer"/>
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.SortedMap" c:type="GeeSortedMap*"/>
					</parameter>
					<parameter name="before" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
					<parameter name="after" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="SortedSet" c:type="GeeSortedSet" glib:type-name="GeeSortedSet" glib:get-type="gee_sorted_set_get_type" glib:type-struct="SortedSetIface">
		<prerequisite name="Gee.Set"/>
		<method name="first" c:identifier="gee_sorted_set_first">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="first" invoker="first">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<method name="last" c:identifier="gee_sorted_set_last">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</method>
		<virtual-method name="last" invoker="last">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
		</virtual-method>
		<method name="iterator_at" c:identifier="gee_sorted_set_iterator_at">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="iterator_at" invoker="iterator_at">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="lower" c:identifier="gee_sorted_set_lower">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="lower" invoker="lower">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="higher" c:identifier="gee_sorted_set_higher">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="higher" invoker="higher">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="floor" c:identifier="gee_sorted_set_floor">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="floor" invoker="floor">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="ceil" c:identifier="gee_sorted_set_ceil">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="ceil" invoker="ceil">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="element" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="head_set" c:identifier="gee_sorted_set_head_set">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedSet" c:type="GeeSortedSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="before" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="head_set" invoker="head_set">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedSet" c:type="GeeSortedSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="before" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="tail_set" c:identifier="gee_sorted_set_tail_set">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedSet" c:type="GeeSortedSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="after" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="tail_set" invoker="tail_set">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedSet" c:type="GeeSortedSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="after" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="sub_set" c:identifier="gee_sorted_set_sub_set">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedSet" c:type="GeeSortedSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="from" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="to" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="sub_set" invoker="sub_set">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedSet" c:type="GeeSortedSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="from" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
				<parameter name="to" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<function name="empty" c:identifier="gee_sorted_set_empty">
			<return-value transfer-ownership="full">
				<type name="Gee.SortedSet" c:type="GeeSortedSet*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
		</function>
		<property name="read-only-view">
			<type name="Gee.SortedSet" c:type="GeeSortedSet*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</property>
	</interface>
	<record name="SortedSetIface" c:type="GeeSortedSetIface" glib:is-gtype-struct-for="SortedSet">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="first">
			<callback name="first" c:type="first">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.SortedSet" c:type="GeeSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="last">
			<callback name="last" c:type="last">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.SortedSet" c:type="GeeSortedSet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="iterator_at">
			<callback name="iterator_at" c:type="iterator_at">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.SortedSet" c:type="GeeSortedSet*"/>
					</parameter>
					<parameter name="element" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="lower">
			<callback name="lower" c:type="lower">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.SortedSet" c:type="GeeSortedSet*"/>
					</parameter>
					<parameter name="element" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="higher">
			<callback name="higher" c:type="higher">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.SortedSet" c:type="GeeSortedSet*"/>
					</parameter>
					<parameter name="element" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="floor">
			<callback name="floor" c:type="floor">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.SortedSet" c:type="GeeSortedSet*"/>
					</parameter>
					<parameter name="element" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="ceil">
			<callback name="ceil" c:type="ceil">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.SortedSet" c:type="GeeSortedSet*"/>
					</parameter>
					<parameter name="element" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="head_set">
			<callback name="head_set" c:type="head_set">
				<return-value transfer-ownership="full">
					<type name="Gee.SortedSet" c:type="GeeSortedSet*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.SortedSet" c:type="GeeSortedSet*"/>
					</parameter>
					<parameter name="before" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="tail_set">
			<callback name="tail_set" c:type="tail_set">
				<return-value transfer-ownership="full">
					<type name="Gee.SortedSet" c:type="GeeSortedSet*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.SortedSet" c:type="GeeSortedSet*"/>
					</parameter>
					<parameter name="after" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="sub_set">
			<callback name="sub_set" c:type="sub_set">
				<return-value transfer-ownership="full">
					<type name="Gee.SortedSet" c:type="GeeSortedSet*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.SortedSet" c:type="GeeSortedSet*"/>
					</parameter>
					<parameter name="from" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
					<parameter name="to" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="Traversable" c:type="GeeTraversable" glib:type-name="GeeTraversable" glib:get-type="gee_traversable_get_type" glib:type-struct="TraversableIface">
		<prerequisite name="GObject.Object"/>
		<method name="foreach" c:identifier="gee_traversable_foreach">
			<annotation key="ccode.ordering" value="0"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1">
					<type name="Gee.ForallFunc" c:type="GeeForallFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="foreach" invoker="foreach">
			<annotation key="ccode.ordering" value="0"/>
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1">
					<type name="Gee.ForallFunc" c:type="GeeForallFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="stream" c:identifier="gee_traversable_stream">
			<annotation key="ccode.ordering" value="1"/>
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1" scope="notified" destroy="2">
					<type name="Gee.StreamFunc" c:type="GeeStreamFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="f_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="stream" invoker="stream">
			<annotation key="ccode.ordering" value="1"/>
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1" scope="notified" destroy="2">
					<type name="Gee.StreamFunc" c:type="GeeStreamFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="f_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="fold" c:identifier="gee_traversable_fold">
			<annotation key="ccode.ordering" value="2"/>
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1">
					<type name="Gee.FoldFunc" c:type="GeeFoldFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="seed" transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="fold" invoker="fold">
			<annotation key="ccode.ordering" value="2"/>
			<return-value transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1">
					<type name="Gee.FoldFunc" c:type="GeeFoldFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="seed" transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="map" c:identifier="gee_traversable_map">
			<annotation key="ccode.ordering" value="3"/>
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1">
					<type name="Gee.MapFunc" c:type="GeeMapFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="map" invoker="map">
			<annotation key="ccode.ordering" value="3"/>
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1">
					<type name="Gee.MapFunc" c:type="GeeMapFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="scan" c:identifier="gee_traversable_scan">
			<annotation key="ccode.ordering" value="4"/>
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1">
					<type name="Gee.FoldFunc" c:type="GeeFoldFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="seed" transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="scan" invoker="scan">
			<annotation key="ccode.ordering" value="4"/>
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1">
					<type name="Gee.FoldFunc" c:type="GeeFoldFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="seed" transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="filter" c:identifier="gee_traversable_filter">
			<annotation key="ccode.ordering" value="5"/>
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="pred" transfer-ownership="none" closure="1" scope="notified" destroy="2">
					<type name="Gee.Predicate" c:type="GeePredicate"/>
				</parameter>
				<parameter name="pred_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="pred_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="filter" invoker="filter">
			<annotation key="ccode.ordering" value="5"/>
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="pred" transfer-ownership="none" closure="1" scope="notified" destroy="2">
					<type name="Gee.Predicate" c:type="GeePredicate"/>
				</parameter>
				<parameter name="pred_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="pred_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="chop" c:identifier="gee_traversable_chop">
			<annotation key="ccode.ordering" value="6"/>
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="offset" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="length" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="chop" invoker="chop">
			<annotation key="ccode.ordering" value="6"/>
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="offset" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="length" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="flat_map" c:identifier="gee_traversable_flat_map">
			<annotation key="ccode.ordering" value="8"/>
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1" scope="notified" destroy="2">
					<type name="Gee.FlatMapFunc" c:type="GeeFlatMapFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="f_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="flat_map" invoker="flat_map">
			<annotation key="ccode.ordering" value="8"/>
			<return-value transfer-ownership="full">
				<type name="Gee.Iterator" c:type="GeeIterator*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none" closure="1" scope="notified" destroy="2">
					<type name="Gee.FlatMapFunc" c:type="GeeFlatMapFunc"/>
				</parameter>
				<parameter name="f_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
				<parameter name="f_target_destroy_notify" transfer-ownership="none">
					<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="tee" c:identifier="gee_traversable_tee">
			<annotation key="ccode.ordering" value="9"/>
			<return-value transfer-ownership="full">
				<array length="1">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</array>
			</return-value>
			<parameters>
				<parameter name="forks" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
				<parameter name="result_length1" direction="out" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="tee" invoker="tee">
			<annotation key="ccode.ordering" value="9"/>
			<return-value transfer-ownership="full">
				<array length="1">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</array>
			</return-value>
			<parameters>
				<parameter name="forks" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
				<parameter name="result_length1" direction="out" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="element-type">
			<annotation key="ccode.ordering" value="7"/>
			<type name="GObject.Type" c:type="GType"/>
		</property>
	</interface>
	<record name="TraversableIface" c:type="GeeTraversableIface" glib:is-gtype-struct-for="Traversable">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="foreach">
			<callback name="foreach" c:type="foreach">
				<annotation key="ccode.ordering" value="0"/>
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Traversable" c:type="GeeTraversable*"/>
					</parameter>
					<parameter name="f" transfer-ownership="none" closure="2">
						<type name="Gee.ForallFunc" c:type="GeeForallFunc"/>
					</parameter>
					<parameter name="f_target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="stream">
			<callback name="stream" c:type="stream">
				<annotation key="ccode.ordering" value="1"/>
				<return-value transfer-ownership="full">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Traversable" c:type="GeeTraversable*"/>
					</parameter>
					<parameter name="f" transfer-ownership="none" closure="2" scope="notified" destroy="3">
						<type name="Gee.StreamFunc" c:type="GeeStreamFunc"/>
					</parameter>
					<parameter name="f_target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
					<parameter name="f_target_destroy_notify" transfer-ownership="none">
						<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="fold">
			<callback name="fold" c:type="fold">
				<annotation key="ccode.ordering" value="2"/>
				<return-value transfer-ownership="full" allow-none="1">
					<type name="gpointer" c:type="gpointer"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Traversable" c:type="GeeTraversable*"/>
					</parameter>
					<parameter name="f" transfer-ownership="none" closure="2">
						<type name="Gee.FoldFunc" c:type="GeeFoldFunc"/>
					</parameter>
					<parameter name="f_target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
					<parameter name="seed" transfer-ownership="full" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="map">
			<callback name="map" c:type="map">
				<annotation key="ccode.ordering" value="3"/>
				<return-value transfer-ownership="full">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Traversable" c:type="GeeTraversable*"/>
					</parameter>
					<parameter name="f" transfer-ownership="none" closure="2">
						<type name="Gee.MapFunc" c:type="GeeMapFunc"/>
					</parameter>
					<parameter name="f_target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="scan">
			<callback name="scan" c:type="scan">
				<annotation key="ccode.ordering" value="4"/>
				<return-value transfer-ownership="full">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Traversable" c:type="GeeTraversable*"/>
					</parameter>
					<parameter name="f" transfer-ownership="none" closure="2">
						<type name="Gee.FoldFunc" c:type="GeeFoldFunc"/>
					</parameter>
					<parameter name="f_target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
					<parameter name="seed" transfer-ownership="full" allow-none="1">
						<type name="gpointer" c:type="gpointer"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="filter">
			<callback name="filter" c:type="filter">
				<annotation key="ccode.ordering" value="5"/>
				<return-value transfer-ownership="full">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Traversable" c:type="GeeTraversable*"/>
					</parameter>
					<parameter name="pred" transfer-ownership="none" closure="2" scope="notified" destroy="3">
						<type name="Gee.Predicate" c:type="GeePredicate"/>
					</parameter>
					<parameter name="pred_target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
					<parameter name="pred_target_destroy_notify" transfer-ownership="none">
						<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="chop">
			<callback name="chop" c:type="chop">
				<annotation key="ccode.ordering" value="6"/>
				<return-value transfer-ownership="full">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Traversable" c:type="GeeTraversable*"/>
					</parameter>
					<parameter name="offset" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
					<parameter name="length" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="flat_map">
			<callback name="flat_map" c:type="flat_map">
				<annotation key="ccode.ordering" value="8"/>
				<return-value transfer-ownership="full">
					<type name="Gee.Iterator" c:type="GeeIterator*">
						<type name="gpointer" c:type="gpointer"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Traversable" c:type="GeeTraversable*"/>
					</parameter>
					<parameter name="f" transfer-ownership="none" closure="2" scope="notified" destroy="3">
						<type name="Gee.FlatMapFunc" c:type="GeeFlatMapFunc"/>
					</parameter>
					<parameter name="f_target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
					<parameter name="f_target_destroy_notify" transfer-ownership="none">
						<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="tee">
			<callback name="tee" c:type="tee">
				<annotation key="ccode.ordering" value="9"/>
				<return-value transfer-ownership="full">
					<array length="2">
						<type name="Gee.Iterator" c:type="GeeIterator*">
							<type name="gpointer" c:type="gpointer"/>
						</type>
					</array>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gee.Traversable" c:type="GeeTraversable*"/>
					</parameter>
					<parameter name="forks" transfer-ownership="none">
						<type name="guint" c:type="guint"/>
					</parameter>
					<parameter name="result_length1" direction="out" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<enumeration name="TraversableStream" c:type="GeeTraversableStream" glib:type-name="GeeTraversableStream" glib:get-type="gee_traversable_stream_get_type">
		<member name="yield" c:identifier="GEE_TRAVERSABLE_STREAM_YIELD" value="0"/>
		<member name="continue" c:identifier="GEE_TRAVERSABLE_STREAM_CONTINUE" value="1"/>
		<member name="end" c:identifier="GEE_TRAVERSABLE_STREAM_END" value="2"/>
		<member name="wait" c:identifier="GEE_TRAVERSABLE_STREAM_WAIT" value="3"/>
	</enumeration>
	<callback name="HashDataFunc" c:type="GeeHashDataFunc">
		<return-value transfer-ownership="full">
			<type name="guint" c:type="guint"/>
		</return-value>
		<parameters>
			<parameter name="v" transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</parameter>
			<parameter name="user_data" transfer-ownership="none" closure="1">
				<type name="gpointer" c:type="void*"/>
			</parameter>
		</parameters>
	</callback>
	<callback name="EqualDataFunc" c:type="GeeEqualDataFunc">
		<return-value transfer-ownership="full">
			<type name="gboolean" c:type="gboolean"/>
		</return-value>
		<parameters>
			<parameter name="a" transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</parameter>
			<parameter name="b" transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</parameter>
			<parameter name="user_data" transfer-ownership="none" closure="2">
				<type name="gpointer" c:type="void*"/>
			</parameter>
		</parameters>
	</callback>
	<callback name="LazyFunc" c:type="GeeLazyFunc">
		<return-value transfer-ownership="full" allow-none="1">
			<type name="gpointer" c:type="gpointer"/>
		</return-value>
	</callback>
	<callback name="FoldMapFunc" c:type="GeeFoldMapFunc">
		<return-value transfer-ownership="full" allow-none="1">
			<type name="gpointer" c:type="gpointer"/>
		</return-value>
		<parameters>
			<parameter name="k" transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</parameter>
			<parameter name="v" transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</parameter>
			<parameter name="a" transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</parameter>
			<parameter name="user_data" transfer-ownership="none" closure="3">
				<type name="gpointer" c:type="void*"/>
			</parameter>
		</parameters>
	</callback>
	<callback name="ForallMapFunc" c:type="GeeForallMapFunc">
		<return-value transfer-ownership="full">
			<type name="gboolean" c:type="gboolean"/>
		</return-value>
		<parameters>
			<parameter name="k" transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</parameter>
			<parameter name="v" transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</parameter>
			<parameter name="user_data" transfer-ownership="none" closure="2">
				<type name="gpointer" c:type="void*"/>
			</parameter>
		</parameters>
	</callback>
	<callback name="Task" c:type="GeeTask">
		<return-value transfer-ownership="full" allow-none="1">
			<type name="gpointer" c:type="gpointer"/>
		</return-value>
	</callback>
	<callback name="FoldFunc" c:type="GeeFoldFunc">
		<return-value transfer-ownership="full" allow-none="1">
			<type name="gpointer" c:type="gpointer"/>
		</return-value>
		<parameters>
			<parameter name="g" transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</parameter>
			<parameter name="a" transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</parameter>
			<parameter name="user_data" transfer-ownership="none" closure="2">
				<type name="gpointer" c:type="void*"/>
			</parameter>
		</parameters>
	</callback>
	<callback name="ForallFunc" c:type="GeeForallFunc">
		<return-value transfer-ownership="full">
			<type name="gboolean" c:type="gboolean"/>
		</return-value>
		<parameters>
			<parameter name="g" transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</parameter>
			<parameter name="user_data" transfer-ownership="none" closure="1">
				<type name="gpointer" c:type="void*"/>
			</parameter>
		</parameters>
	</callback>
	<callback name="UnfoldFunc" c:type="GeeUnfoldFunc">
		<return-value transfer-ownership="full" allow-none="1">
			<type name="Gee.Lazy" c:type="GeeLazy*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</return-value>
	</callback>
	<callback name="StreamFunc" c:type="GeeStreamFunc">
		<return-value transfer-ownership="full">
			<type name="Gee.TraversableStream" c:type="GeeTraversableStream"/>
		</return-value>
		<parameters>
			<parameter name="state" transfer-ownership="none">
				<type name="Gee.TraversableStream" c:type="GeeTraversableStream"/>
			</parameter>
			<parameter name="g" transfer-ownership="full" allow-none="1">
				<type name="Gee.Lazy" c:type="GeeLazy*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</parameter>
			<parameter name="lazy" direction="out" transfer-ownership="full" allow-none="1">
				<type name="Gee.Lazy" c:type="GeeLazy*">
					<type name="gpointer" c:type="gpointer"/>
				</type>
			</parameter>
			<parameter name="user_data" transfer-ownership="none" closure="3">
				<type name="gpointer" c:type="void*"/>
			</parameter>
		</parameters>
	</callback>
	<callback name="MapFunc" c:type="GeeMapFunc">
		<return-value transfer-ownership="full" allow-none="1">
			<type name="gpointer" c:type="gpointer"/>
		</return-value>
		<parameters>
			<parameter name="g" transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</parameter>
			<parameter name="user_data" transfer-ownership="none" closure="1">
				<type name="gpointer" c:type="void*"/>
			</parameter>
		</parameters>
	</callback>
	<callback name="Predicate" c:type="GeePredicate">
		<return-value transfer-ownership="full">
			<type name="gboolean" c:type="gboolean"/>
		</return-value>
		<parameters>
			<parameter name="g" transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</parameter>
			<parameter name="user_data" transfer-ownership="none" closure="1">
				<type name="gpointer" c:type="void*"/>
			</parameter>
		</parameters>
	</callback>
	<callback name="FlatMapFunc" c:type="GeeFlatMapFunc">
		<return-value transfer-ownership="full">
			<type name="Gee.Iterator" c:type="GeeIterator*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</return-value>
		<parameters>
			<parameter name="g" transfer-ownership="full" allow-none="1">
				<type name="gpointer" c:type="gpointer"/>
			</parameter>
			<parameter name="user_data" transfer-ownership="none" closure="1">
				<type name="gpointer" c:type="void*"/>
			</parameter>
		</parameters>
	</callback>
	<function name="task" c:identifier="gee_task" throws="1">
		<return-value transfer-ownership="full">
			<type name="Gee.Future" c:type="GeeFuture*">
				<type name="gpointer" c:type="gpointer"/>
			</type>
		</return-value>
		<parameters>
			<parameter name="task" transfer-ownership="none" closure="1">
				<type name="Gee.Task" c:type="GeeTask"/>
			</parameter>
			<parameter name="task_target" transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="void*"/>
			</parameter>
		</parameters>
	</function>
	<function name="async_task" c:identifier="gee_async_task">
		<return-value transfer-ownership="none">
			<type name="none"/>
		</return-value>
		<parameters>
			<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
				<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
			</parameter>
			<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="void*"/>
			</parameter>
		</parameters>
	</function>
	<function name="async_task_finish" c:identifier="gee_async_task_finish" throws="1">
		<return-value transfer-ownership="full">
			<type name="none"/>
		</return-value>
		<parameters>
			<parameter name="_res_" transfer-ownership="none">
				<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
			</parameter>
		</parameters>
	</function>
</namespace>
</repository>
