misc: update Changelog and NOTICE; remove BUGS and TODO
[nit.git] / c_src / array._sep.h
index 0ec2326..348774a 100644 (file)
@@ -4,6 +4,8 @@
 #include "abstract_collection._sep.h"
 #include <nit_common.h>
 
+extern const classtable_elt_t VFT_AbstractArrayRead[];
+
 extern const classtable_elt_t VFT_AbstractArray[];
 
 extern const classtable_elt_t VFT_Array[];
@@ -24,125 +26,124 @@ val_t BOX_NativeArray(val_t * val);
 #define UNBOX_NativeArray(x) (((struct TBOX_NativeArray *)(VAL2OBJ(x)))->val)
 extern const char *LOCATE_array;
 extern const int SFT_array[];
-#define ID_AbstractArray SFT_array[0]
-#define COLOR_AbstractArray SFT_array[1]
-#define COLOR_array___AbstractArray____length SFT_array[2]
-#define INIT_TABLE_POS_AbstractArray SFT_array[3]
-#define COLOR_array___AbstractArray___enlarge SFT_array[4]
-#define COLOR_array___AbstractArray___insert SFT_array[5]
-#define COLOR_array___AbstractArray___last_index_of SFT_array[6]
-#define COLOR_array___AbstractArray___index_of_from SFT_array[7]
-#define COLOR_array___AbstractArray___last_index_of_from SFT_array[8]
-#define COLOR_array___AbstractArray___reversed SFT_array[9]
-#define COLOR_array___AbstractArray___copy_to SFT_array[10]
-#define ID_Array SFT_array[11]
-#define COLOR_Array SFT_array[12]
-#define COLOR_array___Array____items SFT_array[13]
-#define COLOR_array___Array____capacity SFT_array[14]
-#define INIT_TABLE_POS_Array SFT_array[15]
-#define COLOR_array___Array___init SFT_array[16]
-#define COLOR_array___Array___with SFT_array[17]
-#define COLOR_array___Array___with_capacity SFT_array[18]
-#define COLOR_array___Array___filled_with SFT_array[19]
-#define COLOR_array___Array___with_native SFT_array[20]
-#define ID_ArrayIterator SFT_array[21]
-#define COLOR_ArrayIterator SFT_array[22]
-#define COLOR_array___ArrayIterator____index SFT_array[23]
-#define COLOR_array___ArrayIterator____array SFT_array[24]
-#define INIT_TABLE_POS_ArrayIterator SFT_array[25]
-#define COLOR_array___ArrayIterator___init SFT_array[26]
-#define ID_ArraySet SFT_array[27]
-#define COLOR_ArraySet SFT_array[28]
-#define COLOR_array___ArraySet____array SFT_array[29]
-#define INIT_TABLE_POS_ArraySet SFT_array[30]
-#define COLOR_array___ArraySet___enlarge SFT_array[31]
-#define COLOR_array___ArraySet___remove_at SFT_array[32]
-#define COLOR_array___ArraySet___init SFT_array[33]
-#define COLOR_array___ArraySet___with_capacity SFT_array[34]
-#define ID_ArraySetIterator SFT_array[35]
-#define COLOR_ArraySetIterator SFT_array[36]
-#define COLOR_array___ArraySetIterator____iter SFT_array[37]
-#define INIT_TABLE_POS_ArraySetIterator SFT_array[38]
-#define COLOR_array___ArraySetIterator___init SFT_array[39]
-#define ID_ArrayMap SFT_array[40]
-#define COLOR_ArrayMap SFT_array[41]
-#define COLOR_array___ArrayMap____items SFT_array[42]
-#define COLOR_array___ArrayMap____last_index SFT_array[43]
-#define INIT_TABLE_POS_ArrayMap SFT_array[44]
-#define COLOR_array___ArrayMap___enlarge SFT_array[45]
-#define COLOR_array___ArrayMap___remove_at_index SFT_array[46]
-#define COLOR_array___ArrayMap___index SFT_array[47]
-#define COLOR_array___ArrayMap___init SFT_array[48]
-#define COLOR_array___Iterator___to_a SFT_array[49]
-#define COLOR_array___Collection___to_a SFT_array[50]
-#define ID_ArrayCapable SFT_array[51]
-#define COLOR_ArrayCapable SFT_array[52]
-#define INIT_TABLE_POS_ArrayCapable SFT_array[53]
-#define COLOR_array___ArrayCapable___calloc_array SFT_array[54]
-#define ID_NativeArray SFT_array[55]
-#define COLOR_NativeArray SFT_array[56]
-#define INIT_TABLE_POS_NativeArray SFT_array[57]
-#define COLOR_array___NativeArray_____bra SFT_array[58]
-#define COLOR_array___NativeArray_____braeq SFT_array[59]
-#define COLOR_array___NativeArray___copy_to SFT_array[60]
-typedef void (* array___AbstractArray___enlarge_t)(val_t  self, val_t  param0);
-void array___AbstractArray___enlarge(val_t  self, val_t  param0);
-#define LOCATE_array___AbstractArray___enlarge "array::AbstractArray::enlarge"
-#define ATTR_array___AbstractArray____length(recv) ATTR(recv, COLOR_array___AbstractArray____length)
-typedef val_t (* array___AbstractArray___length_t)(val_t  self);
-val_t array___AbstractArray___length(val_t  self);
-#define LOCATE_array___AbstractArray___length "array::AbstractArray::(abstract_collection::Collection::length)"
-typedef val_t (* array___AbstractArray___is_empty_t)(val_t  self);
-val_t array___AbstractArray___is_empty(val_t  self);
-#define LOCATE_array___AbstractArray___is_empty "array::AbstractArray::(abstract_collection::Collection::is_empty)"
-typedef void (* array___AbstractArray___push_t)(val_t  self, val_t  param0);
-void array___AbstractArray___push(val_t  self, val_t  param0);
-#define LOCATE_array___AbstractArray___push "array::AbstractArray::(abstract_collection::IndexedCollection::push)"
-typedef val_t (* array___AbstractArray___pop_t)(val_t  self);
-val_t array___AbstractArray___pop(val_t  self);
-#define LOCATE_array___AbstractArray___pop "array::AbstractArray::(abstract_collection::IndexedCollection::pop)"
-typedef val_t (* array___AbstractArray___shift_t)(val_t  self);
-val_t array___AbstractArray___shift(val_t  self);
-#define LOCATE_array___AbstractArray___shift "array::AbstractArray::(abstract_collection::IndexedCollection::shift)"
-typedef void (* array___AbstractArray___unshift_t)(val_t  self, val_t  param0);
-void array___AbstractArray___unshift(val_t  self, val_t  param0);
-#define LOCATE_array___AbstractArray___unshift "array::AbstractArray::(abstract_collection::IndexedCollection::unshift)"
-typedef void (* array___AbstractArray___insert_t)(val_t  self, val_t  param0, val_t  param1);
-void array___AbstractArray___insert(val_t  self, val_t  param0, val_t  param1);
-#define LOCATE_array___AbstractArray___insert "array::AbstractArray::insert"
-typedef void (* array___AbstractArray___add_t)(val_t  self, val_t  param0);
-void array___AbstractArray___add(val_t  self, val_t  param0);
-#define LOCATE_array___AbstractArray___add "array::AbstractArray::(abstract_collection::SimpleCollection::add)"
+#define ID_AbstractArrayRead (SFT_array[0])
+#define COLOR_AbstractArrayRead (SFT_array[1])
+#define ATTR_array___AbstractArrayRead____length(recv) ATTR(recv, (SFT_array[2] + 0))
+#define INIT_TABLE_POS_AbstractArrayRead (SFT_array[3] + 0)
+#define CALL_array___AbstractArrayRead___last_index_of(recv) ((array___AbstractArrayRead___last_index_of_t)CALL((recv), (SFT_array[3] + 1)))
+#define CALL_array___AbstractArrayRead___index_of_from(recv) ((array___AbstractArrayRead___index_of_from_t)CALL((recv), (SFT_array[3] + 2)))
+#define CALL_array___AbstractArrayRead___last_index_of_from(recv) ((array___AbstractArrayRead___last_index_of_from_t)CALL((recv), (SFT_array[3] + 3)))
+#define CALL_array___AbstractArrayRead___reversed(recv) ((array___AbstractArrayRead___reversed_t)CALL((recv), (SFT_array[3] + 4)))
+#define CALL_array___AbstractArrayRead___copy_to(recv) ((array___AbstractArrayRead___copy_to_t)CALL((recv), (SFT_array[3] + 5)))
+#define CALL_array___AbstractArrayRead___init(recv) ((array___AbstractArrayRead___init_t)CALL((recv), (SFT_array[3] + 6)))
+#define ID_AbstractArray (SFT_array[4])
+#define COLOR_AbstractArray (SFT_array[5])
+#define INIT_TABLE_POS_AbstractArray (SFT_array[6] + 0)
+#define CALL_array___AbstractArray___enlarge(recv) ((array___AbstractArray___enlarge_t)CALL((recv), (SFT_array[6] + 1)))
+#define CALL_array___AbstractArray___insert(recv) ((array___AbstractArray___insert_t)CALL((recv), (SFT_array[6] + 2)))
+#define ID_Array (SFT_array[7])
+#define COLOR_Array (SFT_array[8])
+#define ATTR_array___Array____items(recv) ATTR(recv, (SFT_array[9] + 0))
+#define ATTR_array___Array____capacity(recv) ATTR(recv, (SFT_array[9] + 1))
+#define INIT_TABLE_POS_Array (SFT_array[10] + 0)
+#define CALL_array___Array___init(recv) ((array___Array___init_t)CALL((recv), (SFT_array[10] + 1)))
+#define CALL_array___Array___with_items(recv) ((array___Array___with_items_t)CALL((recv), (SFT_array[10] + 2)))
+#define CALL_array___Array___with_capacity(recv) ((array___Array___with_capacity_t)CALL((recv), (SFT_array[10] + 3)))
+#define CALL_array___Array___filled_with(recv) ((array___Array___filled_with_t)CALL((recv), (SFT_array[10] + 4)))
+#define CALL_array___Array___with_native(recv) ((array___Array___with_native_t)CALL((recv), (SFT_array[10] + 5)))
+#define ID_ArrayIterator (SFT_array[11])
+#define COLOR_ArrayIterator (SFT_array[12])
+#define ATTR_array___ArrayIterator____index(recv) ATTR(recv, (SFT_array[13] + 0))
+#define ATTR_array___ArrayIterator____array(recv) ATTR(recv, (SFT_array[13] + 1))
+#define INIT_TABLE_POS_ArrayIterator (SFT_array[14] + 0)
+#define CALL_array___ArrayIterator___init(recv) ((array___ArrayIterator___init_t)CALL((recv), (SFT_array[14] + 1)))
+#define ID_ArraySet (SFT_array[15])
+#define COLOR_ArraySet (SFT_array[16])
+#define ATTR_array___ArraySet____array(recv) ATTR(recv, (SFT_array[17] + 0))
+#define INIT_TABLE_POS_ArraySet (SFT_array[18] + 0)
+#define CALL_array___ArraySet___enlarge(recv) ((array___ArraySet___enlarge_t)CALL((recv), (SFT_array[18] + 1)))
+#define CALL_array___ArraySet___remove_at(recv) ((array___ArraySet___remove_at_t)CALL((recv), (SFT_array[18] + 2)))
+#define CALL_array___ArraySet___init(recv) ((array___ArraySet___init_t)CALL((recv), (SFT_array[18] + 3)))
+#define CALL_array___ArraySet___with_capacity(recv) ((array___ArraySet___with_capacity_t)CALL((recv), (SFT_array[18] + 4)))
+#define ID_ArraySetIterator (SFT_array[19])
+#define COLOR_ArraySetIterator (SFT_array[20])
+#define ATTR_array___ArraySetIterator____iter(recv) ATTR(recv, (SFT_array[21] + 0))
+#define INIT_TABLE_POS_ArraySetIterator (SFT_array[22] + 0)
+#define CALL_array___ArraySetIterator___init(recv) ((array___ArraySetIterator___init_t)CALL((recv), (SFT_array[22] + 1)))
+#define ID_ArrayMap (SFT_array[23])
+#define COLOR_ArrayMap (SFT_array[24])
+#define ATTR_array___ArrayMap____items(recv) ATTR(recv, (SFT_array[25] + 0))
+#define ATTR_array___ArrayMap____last_index(recv) ATTR(recv, (SFT_array[25] + 1))
+#define INIT_TABLE_POS_ArrayMap (SFT_array[26] + 0)
+#define CALL_array___ArrayMap___enlarge(recv) ((array___ArrayMap___enlarge_t)CALL((recv), (SFT_array[26] + 1)))
+#define CALL_array___ArrayMap___remove_at_index(recv) ((array___ArrayMap___remove_at_index_t)CALL((recv), (SFT_array[26] + 2)))
+#define CALL_array___ArrayMap___index(recv) ((array___ArrayMap___index_t)CALL((recv), (SFT_array[26] + 3)))
+#define CALL_array___ArrayMap___init(recv) ((array___ArrayMap___init_t)CALL((recv), (SFT_array[26] + 4)))
+#define CALL_array___Iterator___to_a(recv) ((array___Iterator___to_a_t)CALL((recv), (SFT_array[27] + 0)))
+#define CALL_array___Collection___to_a(recv) ((array___Collection___to_a_t)CALL((recv), (SFT_array[28] + 0)))
+#define ID_ArrayCapable (SFT_array[29])
+#define COLOR_ArrayCapable (SFT_array[30])
+#define INIT_TABLE_POS_ArrayCapable (SFT_array[31] + 0)
+#define CALL_array___ArrayCapable___calloc_array(recv) ((array___ArrayCapable___calloc_array_t)CALL((recv), (SFT_array[31] + 1)))
+#define ID_NativeArray (SFT_array[32])
+#define COLOR_NativeArray (SFT_array[33])
+#define INIT_TABLE_POS_NativeArray (SFT_array[34] + 0)
+#define CALL_array___NativeArray_____bra(recv) ((array___NativeArray_____bra_t)CALL((recv), (SFT_array[34] + 1)))
+#define CALL_array___NativeArray_____braeq(recv) ((array___NativeArray_____braeq_t)CALL((recv), (SFT_array[34] + 2)))
+#define CALL_array___NativeArray___copy_to(recv) ((array___NativeArray___copy_to_t)CALL((recv), (SFT_array[34] + 3)))
+typedef val_t (* array___AbstractArrayRead_____eqeq_t)(val_t  self, val_t  param0);
+val_t array___AbstractArrayRead_____eqeq(val_t  self, val_t  param0);
+#define LOCATE_array___AbstractArrayRead_____eqeq "array::AbstractArrayRead::(kernel::Object::==)"
+typedef void (* array___AbstractArrayRead___output_t)(val_t  self);
+void array___AbstractArrayRead___output(val_t  self);
+#define LOCATE_array___AbstractArrayRead___output "array::AbstractArrayRead::(kernel::Object::output)"
+typedef val_t (* array___AbstractArrayRead___iterator_t)(val_t  self);
+val_t array___AbstractArrayRead___iterator(val_t  self);
+#define LOCATE_array___AbstractArrayRead___iterator "array::AbstractArrayRead::(abstract_collection::Collection::iterator)"
+typedef val_t (* array___AbstractArrayRead___is_empty_t)(val_t  self);
+val_t array___AbstractArrayRead___is_empty(val_t  self);
+#define LOCATE_array___AbstractArrayRead___is_empty "array::AbstractArrayRead::(abstract_collection::Collection::is_empty)"
+typedef val_t (* array___AbstractArrayRead___length_t)(val_t  self);
+val_t array___AbstractArrayRead___length(val_t  self);
+#define LOCATE_array___AbstractArrayRead___length "array::AbstractArrayRead::(abstract_collection::Collection::length)"
+typedef val_t (* array___AbstractArrayRead___has_t)(val_t  self, val_t  param0);
+val_t array___AbstractArrayRead___has(val_t  self, val_t  param0);
+#define LOCATE_array___AbstractArrayRead___has "array::AbstractArrayRead::(abstract_collection::Collection::has)"
+typedef val_t (* array___AbstractArrayRead___has_only_t)(val_t  self, val_t  param0);
+val_t array___AbstractArrayRead___has_only(val_t  self, val_t  param0);
+#define LOCATE_array___AbstractArrayRead___has_only "array::AbstractArrayRead::(abstract_collection::Collection::has_only)"
+typedef val_t (* array___AbstractArrayRead___count_t)(val_t  self, val_t  param0);
+val_t array___AbstractArrayRead___count(val_t  self, val_t  param0);
+#define LOCATE_array___AbstractArrayRead___count "array::AbstractArrayRead::(abstract_collection::Collection::count)"
+typedef val_t (* array___AbstractArrayRead___has_key_t)(val_t  self, val_t  param0);
+val_t array___AbstractArrayRead___has_key(val_t  self, val_t  param0);
+#define LOCATE_array___AbstractArrayRead___has_key "array::AbstractArrayRead::(abstract_collection::MapRead::has_key)"
+typedef val_t (* array___AbstractArrayRead___index_of_t)(val_t  self, val_t  param0);
+val_t array___AbstractArrayRead___index_of(val_t  self, val_t  param0);
+#define LOCATE_array___AbstractArrayRead___index_of "array::AbstractArrayRead::(abstract_collection::IndexedCollectionRead::index_of)"
+typedef val_t (* array___AbstractArrayRead___last_index_of_t)(val_t  self, val_t  param0);
+val_t array___AbstractArrayRead___last_index_of(val_t  self, val_t  param0);
+#define LOCATE_array___AbstractArrayRead___last_index_of "array::AbstractArrayRead::last_index_of"
+typedef val_t (* array___AbstractArrayRead___index_of_from_t)(val_t  self, val_t  param0, val_t  param1);
+val_t array___AbstractArrayRead___index_of_from(val_t  self, val_t  param0, val_t  param1);
+#define LOCATE_array___AbstractArrayRead___index_of_from "array::AbstractArrayRead::index_of_from"
+typedef val_t (* array___AbstractArrayRead___last_index_of_from_t)(val_t  self, val_t  param0, val_t  param1);
+val_t array___AbstractArrayRead___last_index_of_from(val_t  self, val_t  param0, val_t  param1);
+#define LOCATE_array___AbstractArrayRead___last_index_of_from "array::AbstractArrayRead::last_index_of_from"
+typedef val_t (* array___AbstractArrayRead___reversed_t)(val_t  self);
+val_t array___AbstractArrayRead___reversed(val_t  self);
+#define LOCATE_array___AbstractArrayRead___reversed "array::AbstractArrayRead::reversed"
+typedef void (* array___AbstractArrayRead___copy_to_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+void array___AbstractArrayRead___copy_to(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
+#define LOCATE_array___AbstractArrayRead___copy_to "array::AbstractArrayRead::copy_to"
+typedef void (* array___AbstractArrayRead___init_t)(val_t  self, int* init_table);
+void array___AbstractArrayRead___init(val_t  self, int* init_table);
+#define LOCATE_array___AbstractArrayRead___init "array::AbstractArrayRead::init"
+val_t NEW_AbstractArrayRead_array___AbstractArrayRead___init();
+val_t NEW_AbstractArray_array___AbstractArrayRead___init();
 typedef void (* array___AbstractArray___clear_t)(val_t  self);
 void array___AbstractArray___clear(val_t  self);
 #define LOCATE_array___AbstractArray___clear "array::AbstractArray::(abstract_collection::RemovableCollection::clear)"
-typedef val_t (* array___AbstractArray___has_t)(val_t  self, val_t  param0);
-val_t array___AbstractArray___has(val_t  self, val_t  param0);
-#define LOCATE_array___AbstractArray___has "array::AbstractArray::(abstract_collection::Collection::has)"
-typedef val_t (* array___AbstractArray___has_only_t)(val_t  self, val_t  param0);
-val_t array___AbstractArray___has_only(val_t  self, val_t  param0);
-#define LOCATE_array___AbstractArray___has_only "array::AbstractArray::(abstract_collection::Collection::has_only)"
-typedef val_t (* array___AbstractArray___has_key_t)(val_t  self, val_t  param0);
-val_t array___AbstractArray___has_key(val_t  self, val_t  param0);
-#define LOCATE_array___AbstractArray___has_key "array::AbstractArray::(abstract_collection::Map::has_key)"
-typedef val_t (* array___AbstractArray___count_t)(val_t  self, val_t  param0);
-val_t array___AbstractArray___count(val_t  self, val_t  param0);
-#define LOCATE_array___AbstractArray___count "array::AbstractArray::(abstract_collection::Collection::count)"
-typedef val_t (* array___AbstractArray___index_of_t)(val_t  self, val_t  param0);
-val_t array___AbstractArray___index_of(val_t  self, val_t  param0);
-#define LOCATE_array___AbstractArray___index_of "array::AbstractArray::(abstract_collection::IndexedCollection::index_of)"
-typedef val_t (* array___AbstractArray___last_index_of_t)(val_t  self, val_t  param0);
-val_t array___AbstractArray___last_index_of(val_t  self, val_t  param0);
-#define LOCATE_array___AbstractArray___last_index_of "array::AbstractArray::last_index_of"
-typedef val_t (* array___AbstractArray___index_of_from_t)(val_t  self, val_t  param0, val_t  param1);
-val_t array___AbstractArray___index_of_from(val_t  self, val_t  param0, val_t  param1);
-#define LOCATE_array___AbstractArray___index_of_from "array::AbstractArray::index_of_from"
-typedef val_t (* array___AbstractArray___last_index_of_from_t)(val_t  self, val_t  param0, val_t  param1);
-val_t array___AbstractArray___last_index_of_from(val_t  self, val_t  param0, val_t  param1);
-#define LOCATE_array___AbstractArray___last_index_of_from "array::AbstractArray::last_index_of_from"
-typedef val_t (* array___AbstractArray___reversed_t)(val_t  self);
-val_t array___AbstractArray___reversed(val_t  self);
-#define LOCATE_array___AbstractArray___reversed "array::AbstractArray::reversed"
 typedef void (* array___AbstractArray___remove_t)(val_t  self, val_t  param0);
 void array___AbstractArray___remove(val_t  self, val_t  param0);
 #define LOCATE_array___AbstractArray___remove "array::AbstractArray::(abstract_collection::RemovableCollection::remove)"
@@ -152,21 +153,30 @@ void array___AbstractArray___remove_all(val_t  self, val_t  param0);
 typedef void (* array___AbstractArray___remove_at_t)(val_t  self, val_t  param0);
 void array___AbstractArray___remove_at(val_t  self, val_t  param0);
 #define LOCATE_array___AbstractArray___remove_at "array::AbstractArray::(abstract_collection::Map::remove_at)"
-typedef void (* array___AbstractArray___copy_to_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
-void array___AbstractArray___copy_to(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
-#define LOCATE_array___AbstractArray___copy_to "array::AbstractArray::copy_to"
-typedef void (* array___AbstractArray___output_t)(val_t  self);
-void array___AbstractArray___output(val_t  self);
-#define LOCATE_array___AbstractArray___output "array::AbstractArray::(kernel::Object::output)"
-typedef val_t (* array___AbstractArray___iterator_t)(val_t  self);
-val_t array___AbstractArray___iterator(val_t  self);
-#define LOCATE_array___AbstractArray___iterator "array::AbstractArray::(abstract_collection::Collection::iterator)"
-typedef val_t (* array___AbstractArray_____eqeq_t)(val_t  self, val_t  param0);
-val_t array___AbstractArray_____eqeq(val_t  self, val_t  param0);
-#define LOCATE_array___AbstractArray_____eqeq "array::AbstractArray::(kernel::Object::==)"
+typedef void (* array___AbstractArray___add_t)(val_t  self, val_t  param0);
+void array___AbstractArray___add(val_t  self, val_t  param0);
+#define LOCATE_array___AbstractArray___add "array::AbstractArray::(abstract_collection::SimpleCollection::add)"
+typedef void (* array___AbstractArray___push_t)(val_t  self, val_t  param0);
+void array___AbstractArray___push(val_t  self, val_t  param0);
+#define LOCATE_array___AbstractArray___push "array::AbstractArray::(abstract_collection::IndexedCollection::push)"
+typedef val_t (* array___AbstractArray___pop_t)(val_t  self);
+val_t array___AbstractArray___pop(val_t  self);
+#define LOCATE_array___AbstractArray___pop "array::AbstractArray::(abstract_collection::IndexedCollection::pop)"
+typedef void (* array___AbstractArray___unshift_t)(val_t  self, val_t  param0);
+void array___AbstractArray___unshift(val_t  self, val_t  param0);
+#define LOCATE_array___AbstractArray___unshift "array::AbstractArray::(abstract_collection::IndexedCollection::unshift)"
+typedef val_t (* array___AbstractArray___shift_t)(val_t  self);
+val_t array___AbstractArray___shift(val_t  self);
+#define LOCATE_array___AbstractArray___shift "array::AbstractArray::(abstract_collection::IndexedCollection::shift)"
+typedef void (* array___AbstractArray___enlarge_t)(val_t  self, val_t  param0);
+void array___AbstractArray___enlarge(val_t  self, val_t  param0);
+#define LOCATE_array___AbstractArray___enlarge "array::AbstractArray::enlarge"
+typedef void (* array___AbstractArray___insert_t)(val_t  self, val_t  param0, val_t  param1);
+void array___AbstractArray___insert(val_t  self, val_t  param0, val_t  param1);
+#define LOCATE_array___AbstractArray___insert "array::AbstractArray::insert"
 typedef val_t (* array___Array_____bra_t)(val_t  self, val_t  param0);
 val_t array___Array_____bra(val_t  self, val_t  param0);
-#define LOCATE_array___Array_____bra "array::Array::(abstract_collection::Map::[])"
+#define LOCATE_array___Array_____bra "array::Array::(abstract_collection::MapRead::[])"
 typedef void (* array___Array_____braeq_t)(val_t  self, val_t  param0, val_t  param1);
 void array___Array_____braeq(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_array___Array_____braeq "array::Array::(abstract_collection::Map::[]=)"
@@ -175,75 +185,67 @@ void array___Array___enlarge(val_t  self, val_t  param0);
 #define LOCATE_array___Array___enlarge "array::Array::(array::AbstractArray::enlarge)"
 typedef void (* array___Array___init_t)(val_t  self, int* init_table);
 void array___Array___init(val_t  self, int* init_table);
-val_t NEW_array___Array___init();
 #define LOCATE_array___Array___init "array::Array::init"
-typedef void (* array___Array___with_t)(val_t  self, val_t  param0, int* init_table);
-void array___Array___with(val_t  self, val_t  param0, int* init_table);
-val_t NEW_array___Array___with(val_t  param0);
-#define LOCATE_array___Array___with "array::Array::with"
+val_t NEW_Array_array___Array___init();
+typedef void (* array___Array___with_items_t)(val_t  self, val_t  param0, int* init_table);
+void array___Array___with_items(val_t  self, val_t  param0, int* init_table);
+#define LOCATE_array___Array___with_items "array::Array::with_items"
+val_t NEW_Array_array___Array___with_items(val_t p0);
 typedef void (* array___Array___with_capacity_t)(val_t  self, val_t  param0, int* init_table);
 void array___Array___with_capacity(val_t  self, val_t  param0, int* init_table);
-val_t NEW_array___Array___with_capacity(val_t  param0);
 #define LOCATE_array___Array___with_capacity "array::Array::with_capacity"
+val_t NEW_Array_array___Array___with_capacity(val_t p0);
 typedef void (* array___Array___filled_with_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
 void array___Array___filled_with(val_t  self, val_t  param0, val_t  param1, int* init_table);
-val_t NEW_array___Array___filled_with(val_t  param0, val_t  param1);
 #define LOCATE_array___Array___filled_with "array::Array::filled_with"
+val_t NEW_Array_array___Array___filled_with(val_t p0, val_t p1);
 typedef void (* array___Array___with_native_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
 void array___Array___with_native(val_t  self, val_t  param0, val_t  param1, int* init_table);
-val_t NEW_array___Array___with_native(val_t  param0, val_t  param1);
 #define LOCATE_array___Array___with_native "array::Array::with_native"
-#define ATTR_array___Array____items(recv) ATTR(recv, COLOR_array___Array____items)
-#define ATTR_array___Array____capacity(recv) ATTR(recv, COLOR_array___Array____capacity)
+val_t NEW_Array_array___Array___with_native(val_t p0, val_t p1);
 typedef val_t (* array___ArrayIterator___item_t)(val_t  self);
 val_t array___ArrayIterator___item(val_t  self);
 #define LOCATE_array___ArrayIterator___item "array::ArrayIterator::(abstract_collection::Iterator::item)"
-typedef void (* array___ArrayIterator___item__eq_t)(val_t  self, val_t  param0);
-void array___ArrayIterator___item__eq(val_t  self, val_t  param0);
-#define LOCATE_array___ArrayIterator___item__eq "array::ArrayIterator::(abstract_collection::MapIterator::item=)"
-typedef val_t (* array___ArrayIterator___is_ok_t)(val_t  self);
-val_t array___ArrayIterator___is_ok(val_t  self);
-#define LOCATE_array___ArrayIterator___is_ok "array::ArrayIterator::(abstract_collection::Iterator::is_ok)"
 typedef void (* array___ArrayIterator___next_t)(val_t  self);
 void array___ArrayIterator___next(val_t  self);
 #define LOCATE_array___ArrayIterator___next "array::ArrayIterator::(abstract_collection::Iterator::next)"
-typedef void (* array___ArrayIterator___init_t)(val_t  self, val_t  param0, int* init_table);
-void array___ArrayIterator___init(val_t  self, val_t  param0, int* init_table);
-val_t NEW_array___ArrayIterator___init(val_t  param0);
-#define LOCATE_array___ArrayIterator___init "array::ArrayIterator::init"
-#define ATTR_array___ArrayIterator____index(recv) ATTR(recv, COLOR_array___ArrayIterator____index)
+typedef val_t (* array___ArrayIterator___is_ok_t)(val_t  self);
+val_t array___ArrayIterator___is_ok(val_t  self);
+#define LOCATE_array___ArrayIterator___is_ok "array::ArrayIterator::(abstract_collection::Iterator::is_ok)"
 typedef val_t (* array___ArrayIterator___index_t)(val_t  self);
 val_t array___ArrayIterator___index(val_t  self);
 #define LOCATE_array___ArrayIterator___index "array::ArrayIterator::(abstract_collection::IndexedIterator::index)"
-#define ATTR_array___ArrayIterator____array(recv) ATTR(recv, COLOR_array___ArrayIterator____array)
-#define ATTR_array___ArraySet____array(recv) ATTR(recv, COLOR_array___ArraySet____array)
-typedef val_t (* array___ArraySet___has_t)(val_t  self, val_t  param0);
-val_t array___ArraySet___has(val_t  self, val_t  param0);
-#define LOCATE_array___ArraySet___has "array::ArraySet::(abstract_collection::Collection::has)"
-typedef void (* array___ArraySet___add_t)(val_t  self, val_t  param0);
-void array___ArraySet___add(val_t  self, val_t  param0);
-#define LOCATE_array___ArraySet___add "array::ArraySet::(abstract_collection::SimpleCollection::add)"
+typedef void (* array___ArrayIterator___init_t)(val_t  self, val_t  param0, int* init_table);
+void array___ArrayIterator___init(val_t  self, val_t  param0, int* init_table);
+#define LOCATE_array___ArrayIterator___init "array::ArrayIterator::init"
+val_t NEW_ArrayIterator_array___ArrayIterator___init(val_t p0);
+typedef val_t (* array___ArraySet___iterator_t)(val_t  self);
+val_t array___ArraySet___iterator(val_t  self);
+#define LOCATE_array___ArraySet___iterator "array::ArraySet::(abstract_collection::Collection::iterator)"
 typedef val_t (* array___ArraySet___is_empty_t)(val_t  self);
 val_t array___ArraySet___is_empty(val_t  self);
 #define LOCATE_array___ArraySet___is_empty "array::ArraySet::(abstract_collection::Collection::is_empty)"
 typedef val_t (* array___ArraySet___length_t)(val_t  self);
 val_t array___ArraySet___length(val_t  self);
 #define LOCATE_array___ArraySet___length "array::ArraySet::(abstract_collection::Collection::length)"
+typedef val_t (* array___ArraySet___has_t)(val_t  self, val_t  param0);
+val_t array___ArraySet___has(val_t  self, val_t  param0);
+#define LOCATE_array___ArraySet___has "array::ArraySet::(abstract_collection::Collection::has)"
 typedef val_t (* array___ArraySet___first_t)(val_t  self);
 val_t array___ArraySet___first(val_t  self);
 #define LOCATE_array___ArraySet___first "array::ArraySet::(abstract_collection::Collection::first)"
+typedef void (* array___ArraySet___clear_t)(val_t  self);
+void array___ArraySet___clear(val_t  self);
+#define LOCATE_array___ArraySet___clear "array::ArraySet::(abstract_collection::RemovableCollection::clear)"
 typedef void (* array___ArraySet___remove_t)(val_t  self, val_t  param0);
 void array___ArraySet___remove(val_t  self, val_t  param0);
 #define LOCATE_array___ArraySet___remove "array::ArraySet::(abstract_collection::RemovableCollection::remove)"
 typedef void (* array___ArraySet___remove_all_t)(val_t  self, val_t  param0);
 void array___ArraySet___remove_all(val_t  self, val_t  param0);
 #define LOCATE_array___ArraySet___remove_all "array::ArraySet::(abstract_collection::RemovableCollection::remove_all)"
-typedef void (* array___ArraySet___clear_t)(val_t  self);
-void array___ArraySet___clear(val_t  self);
-#define LOCATE_array___ArraySet___clear "array::ArraySet::(abstract_collection::RemovableCollection::clear)"
-typedef val_t (* array___ArraySet___iterator_t)(val_t  self);
-val_t array___ArraySet___iterator(val_t  self);
-#define LOCATE_array___ArraySet___iterator "array::ArraySet::(abstract_collection::Collection::iterator)"
+typedef void (* array___ArraySet___add_t)(val_t  self, val_t  param0);
+void array___ArraySet___add(val_t  self, val_t  param0);
+#define LOCATE_array___ArraySet___add "array::ArraySet::(abstract_collection::SimpleCollection::add)"
 typedef void (* array___ArraySet___enlarge_t)(val_t  self, val_t  param0);
 void array___ArraySet___enlarge(val_t  self, val_t  param0);
 #define LOCATE_array___ArraySet___enlarge "array::ArraySet::enlarge"
@@ -252,86 +254,83 @@ void array___ArraySet___remove_at(val_t  self, val_t  param0);
 #define LOCATE_array___ArraySet___remove_at "array::ArraySet::remove_at"
 typedef void (* array___ArraySet___init_t)(val_t  self, int* init_table);
 void array___ArraySet___init(val_t  self, int* init_table);
-val_t NEW_array___ArraySet___init();
 #define LOCATE_array___ArraySet___init "array::ArraySet::init"
+val_t NEW_ArraySet_array___ArraySet___init();
 typedef void (* array___ArraySet___with_capacity_t)(val_t  self, val_t  param0, int* init_table);
 void array___ArraySet___with_capacity(val_t  self, val_t  param0, int* init_table);
-val_t NEW_array___ArraySet___with_capacity(val_t  param0);
 #define LOCATE_array___ArraySet___with_capacity "array::ArraySet::with_capacity"
-typedef val_t (* array___ArraySetIterator___is_ok_t)(val_t  self);
-val_t array___ArraySetIterator___is_ok(val_t  self);
-#define LOCATE_array___ArraySetIterator___is_ok "array::ArraySetIterator::(abstract_collection::Iterator::is_ok)"
-typedef void (* array___ArraySetIterator___next_t)(val_t  self);
-void array___ArraySetIterator___next(val_t  self);
-#define LOCATE_array___ArraySetIterator___next "array::ArraySetIterator::(abstract_collection::Iterator::next)"
+val_t NEW_ArraySet_array___ArraySet___with_capacity(val_t p0);
 typedef val_t (* array___ArraySetIterator___item_t)(val_t  self);
 val_t array___ArraySetIterator___item(val_t  self);
 #define LOCATE_array___ArraySetIterator___item "array::ArraySetIterator::(abstract_collection::Iterator::item)"
+typedef void (* array___ArraySetIterator___next_t)(val_t  self);
+void array___ArraySetIterator___next(val_t  self);
+#define LOCATE_array___ArraySetIterator___next "array::ArraySetIterator::(abstract_collection::Iterator::next)"
+typedef val_t (* array___ArraySetIterator___is_ok_t)(val_t  self);
+val_t array___ArraySetIterator___is_ok(val_t  self);
+#define LOCATE_array___ArraySetIterator___is_ok "array::ArraySetIterator::(abstract_collection::Iterator::is_ok)"
 typedef void (* array___ArraySetIterator___init_t)(val_t  self, val_t  param0, int* init_table);
 void array___ArraySetIterator___init(val_t  self, val_t  param0, int* init_table);
-val_t NEW_array___ArraySetIterator___init(val_t  param0);
 #define LOCATE_array___ArraySetIterator___init "array::ArraySetIterator::init"
-#define ATTR_array___ArraySetIterator____iter(recv) ATTR(recv, COLOR_array___ArraySetIterator____iter)
-typedef val_t (* array___ArrayMap_____bra_t)(val_t  self, val_t  param0);
-val_t array___ArrayMap_____bra(val_t  self, val_t  param0);
-#define LOCATE_array___ArrayMap_____bra "array::ArrayMap::(abstract_collection::Map::[])"
-typedef void (* array___ArrayMap_____braeq_t)(val_t  self, val_t  param0, val_t  param1);
-void array___ArrayMap_____braeq(val_t  self, val_t  param0, val_t  param1);
-#define LOCATE_array___ArrayMap_____braeq "array::ArrayMap::(abstract_collection::Map::[]=)"
-typedef val_t (* array___ArrayMap___has_key_t)(val_t  self, val_t  param0);
-val_t array___ArrayMap___has_key(val_t  self, val_t  param0);
-#define LOCATE_array___ArrayMap___has_key "array::ArrayMap::(abstract_collection::Map::has_key)"
+val_t NEW_ArraySetIterator_array___ArraySetIterator___init(val_t p0);
+typedef val_t (* array___ArrayMap___iterator_t)(val_t  self);
+val_t array___ArrayMap___iterator(val_t  self);
+#define LOCATE_array___ArrayMap___iterator "array::ArrayMap::(abstract_collection::Collection::iterator)"
+typedef val_t (* array___ArrayMap___is_empty_t)(val_t  self);
+val_t array___ArrayMap___is_empty(val_t  self);
+#define LOCATE_array___ArrayMap___is_empty "array::ArrayMap::(abstract_collection::Collection::is_empty)"
+typedef val_t (* array___ArrayMap___length_t)(val_t  self);
+val_t array___ArrayMap___length(val_t  self);
+#define LOCATE_array___ArrayMap___length "array::ArrayMap::(abstract_collection::Collection::length)"
 typedef val_t (* array___ArrayMap___has_t)(val_t  self, val_t  param0);
 val_t array___ArrayMap___has(val_t  self, val_t  param0);
 #define LOCATE_array___ArrayMap___has "array::ArrayMap::(abstract_collection::Collection::has)"
 typedef val_t (* array___ArrayMap___has_only_t)(val_t  self, val_t  param0);
 val_t array___ArrayMap___has_only(val_t  self, val_t  param0);
 #define LOCATE_array___ArrayMap___has_only "array::ArrayMap::(abstract_collection::Collection::has_only)"
-typedef val_t (* array___ArrayMap___length_t)(val_t  self);
-val_t array___ArrayMap___length(val_t  self);
-#define LOCATE_array___ArrayMap___length "array::ArrayMap::(abstract_collection::Collection::length)"
-typedef val_t (* array___ArrayMap___first_t)(val_t  self);
-val_t array___ArrayMap___first(val_t  self);
-#define LOCATE_array___ArrayMap___first "array::ArrayMap::(abstract_collection::Collection::first)"
 typedef val_t (* array___ArrayMap___count_t)(val_t  self, val_t  param0);
 val_t array___ArrayMap___count(val_t  self, val_t  param0);
 #define LOCATE_array___ArrayMap___count "array::ArrayMap::(abstract_collection::Collection::count)"
-typedef val_t (* array___ArrayMap___iterator_t)(val_t  self);
-val_t array___ArrayMap___iterator(val_t  self);
-#define LOCATE_array___ArrayMap___iterator "array::ArrayMap::(abstract_collection::Collection::iterator)"
-typedef val_t (* array___ArrayMap___is_empty_t)(val_t  self);
-val_t array___ArrayMap___is_empty(val_t  self);
-#define LOCATE_array___ArrayMap___is_empty "array::ArrayMap::(abstract_collection::Collection::is_empty)"
+typedef val_t (* array___ArrayMap___first_t)(val_t  self);
+val_t array___ArrayMap___first(val_t  self);
+#define LOCATE_array___ArrayMap___first "array::ArrayMap::(abstract_collection::Collection::first)"
+typedef void (* array___ArrayMap___clear_t)(val_t  self);
+void array___ArrayMap___clear(val_t  self);
+#define LOCATE_array___ArrayMap___clear "array::ArrayMap::(abstract_collection::RemovableCollection::clear)"
 typedef void (* array___ArrayMap___remove_t)(val_t  self, val_t  param0);
 void array___ArrayMap___remove(val_t  self, val_t  param0);
 #define LOCATE_array___ArrayMap___remove "array::ArrayMap::(abstract_collection::RemovableCollection::remove)"
 typedef void (* array___ArrayMap___remove_all_t)(val_t  self, val_t  param0);
 void array___ArrayMap___remove_all(val_t  self, val_t  param0);
 #define LOCATE_array___ArrayMap___remove_all "array::ArrayMap::(abstract_collection::RemovableCollection::remove_all)"
+typedef val_t (* array___ArrayMap_____bra_t)(val_t  self, val_t  param0);
+val_t array___ArrayMap_____bra(val_t  self, val_t  param0);
+#define LOCATE_array___ArrayMap_____bra "array::ArrayMap::(abstract_collection::MapRead::[])"
+typedef val_t (* array___ArrayMap___has_key_t)(val_t  self, val_t  param0);
+val_t array___ArrayMap___has_key(val_t  self, val_t  param0);
+#define LOCATE_array___ArrayMap___has_key "array::ArrayMap::(abstract_collection::MapRead::has_key)"
+typedef void (* array___ArrayMap_____braeq_t)(val_t  self, val_t  param0, val_t  param1);
+void array___ArrayMap_____braeq(val_t  self, val_t  param0, val_t  param1);
+#define LOCATE_array___ArrayMap_____braeq "array::ArrayMap::(abstract_collection::Map::[]=)"
 typedef void (* array___ArrayMap___remove_at_t)(val_t  self, val_t  param0);
 void array___ArrayMap___remove_at(val_t  self, val_t  param0);
 #define LOCATE_array___ArrayMap___remove_at "array::ArrayMap::(abstract_collection::Map::remove_at)"
-typedef void (* array___ArrayMap___clear_t)(val_t  self);
-void array___ArrayMap___clear(val_t  self);
-#define LOCATE_array___ArrayMap___clear "array::ArrayMap::(abstract_collection::RemovableCollection::clear)"
-typedef void (* array___ArrayMap___enlarge_t)(val_t  self, val_t  param0);
-void array___ArrayMap___enlarge(val_t  self, val_t  param0);
-#define LOCATE_array___ArrayMap___enlarge "array::ArrayMap::enlarge"
 typedef val_t (* array___ArrayMap___couple_at_t)(val_t  self, val_t  param0);
 val_t array___ArrayMap___couple_at(val_t  self, val_t  param0);
 #define LOCATE_array___ArrayMap___couple_at "array::ArrayMap::(abstract_collection::CoupleMap::couple_at)"
-#define ATTR_array___ArrayMap____items(recv) ATTR(recv, COLOR_array___ArrayMap____items)
+typedef void (* array___ArrayMap___enlarge_t)(val_t  self, val_t  param0);
+void array___ArrayMap___enlarge(val_t  self, val_t  param0);
+#define LOCATE_array___ArrayMap___enlarge "array::ArrayMap::enlarge"
 typedef void (* array___ArrayMap___remove_at_index_t)(val_t  self, val_t  param0);
 void array___ArrayMap___remove_at_index(val_t  self, val_t  param0);
 #define LOCATE_array___ArrayMap___remove_at_index "array::ArrayMap::remove_at_index"
-#define ATTR_array___ArrayMap____last_index(recv) ATTR(recv, COLOR_array___ArrayMap____last_index)
 typedef val_t (* array___ArrayMap___index_t)(val_t  self, val_t  param0);
 val_t array___ArrayMap___index(val_t  self, val_t  param0);
 #define LOCATE_array___ArrayMap___index "array::ArrayMap::index"
 typedef void (* array___ArrayMap___init_t)(val_t  self, int* init_table);
 void array___ArrayMap___init(val_t  self, int* init_table);
-val_t NEW_array___ArrayMap___init();
 #define LOCATE_array___ArrayMap___init "array::ArrayMap::init"
+val_t NEW_ArrayMap_array___ArrayMap___init();
 typedef val_t (* array___Iterator___to_a_t)(val_t  self);
 val_t array___Iterator___to_a(val_t  self);
 #define LOCATE_array___Iterator___to_a "array::Iterator::to_a"