Update c_src with new default constructor rules.
[nit.git] / c_src / partial_order._sep.c
index 7e54804..9a412c5 100644 (file)
@@ -1,49 +1,54 @@
 /* This C file is generated by NIT to compile module partial_order. */
 #include "partial_order._sep.h"
 val_t partial_order___PartialOrder___roots(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___roots, 30};
+  struct trace_t trace = {NULL, NULL, 30, LOCATE_partial_order___PartialOrder___roots};
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   tracehead = trace.prev;
   return ATTR_partial_order___PartialOrder____roots( self) /*PartialOrder::_roots*/;
 }
 val_t partial_order___PartialOrder___is_empty(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___is_empty, 35};
+  struct trace_t trace = {NULL, NULL, 35, LOCATE_partial_order___PartialOrder___is_empty};
   val_t variable0;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
-  variable0 = ((abstract_collection___Collection___is_empty_t)CALL(variable0,COLOR_abstract_collection___Collection___is_empty))(variable0) /*Map::is_empty*/;
+  variable0 = ((abstract_collection___Collection___is_empty_t)CALL(variable0,COLOR_abstract_collection___Collection___is_empty))(variable0) /*Collection::is_empty*/;
   goto return_label0;
   return_label0: while(false);
   tracehead = trace.prev;
   return variable0;
 }
 val_t partial_order___PartialOrder___length(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___length, 37};
+  struct trace_t trace = {NULL, NULL, 37, LOCATE_partial_order___PartialOrder___length};
   val_t variable0;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
-  variable0 = ((abstract_collection___Collection___length_t)CALL(variable0,COLOR_abstract_collection___Collection___length))(variable0) /*Map::length*/;
+  variable0 = ((abstract_collection___Collection___length_t)CALL(variable0,COLOR_abstract_collection___Collection___length))(variable0) /*Collection::length*/;
   goto return_label1;
   return_label1: while(false);
   tracehead = trace.prev;
   return variable0;
 }
 val_t partial_order___PartialOrder___first(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___first, 39};
+  struct trace_t trace = {NULL, NULL, 39, LOCATE_partial_order___PartialOrder___first};
   val_t variable0;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 = ATTR_partial_order___PartialOrder____elements_list( self) /*PartialOrder::_elements_list*/;
-  variable0 = ((abstract_collection___IndexedCollection___first_t)CALL(variable0,COLOR_abstract_collection___Collection___first))(variable0) /*Array::first*/;
+  variable0 = ((abstract_collection___IndexedCollection___first_t)CALL(variable0,COLOR_abstract_collection___Collection___first))(variable0) /*IndexedCollection::first*/;
   goto return_label2;
   return_label2: while(false);
   tracehead = trace.prev;
   return variable0;
 }
 val_t partial_order___PartialOrder___has(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___has, 41};
+  struct trace_t trace = {NULL, NULL, 41, LOCATE_partial_order___PartialOrder___has};
   val_t variable0;
   val_t variable1;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
   variable1 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
   variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1,  variable0 /*e*/) /*Map::has_key*/;
@@ -53,20 +58,21 @@ val_t partial_order___PartialOrder___has(val_t  self, val_t  param0) {
   return variable1;
 }
 val_t partial_order___PartialOrder___has_only(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___has_only, 43};
+  struct trace_t trace = {NULL, NULL, 43, LOCATE_partial_order___PartialOrder___has_only};
   val_t variable0;
   val_t variable1;
   val_t variable2;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
   variable1 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
-  variable1 = ((abstract_collection___Collection___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*Map::length*/;
+  variable1 = ((abstract_collection___Collection___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*Collection::length*/;
   variable1 = TAG_Bool((variable1)==( TAG_Int(1)));
   variable2 = variable1;
   if (UNTAG_Bool(variable2)) { /* and */
     variable2 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
-    variable2 = ((abstract_collection___Collection___first_t)CALL(variable2,COLOR_abstract_collection___Collection___first))(variable2) /*Map::first*/;
-    variable2 = TAG_Bool((variable2 ==  variable0 /*e*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*e*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*e*/) /*PartialOrderElement::==*/)))));
+    variable2 = ((abstract_collection___Collection___first_t)CALL(variable2,COLOR_abstract_collection___Collection___first))(variable2) /*Collection::first*/;
+    variable2 = TAG_Bool((variable2 ==  variable0 /*e*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*e*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2,  variable0 /*e*/) /*Object::==*/)))));
   }
   variable1 = variable2;
   goto return_label4;
@@ -75,10 +81,11 @@ val_t partial_order___PartialOrder___has_only(val_t  self, val_t  param0) {
   return variable1;
 }
 val_t partial_order___PartialOrder___count(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___count, 45};
+  struct trace_t trace = {NULL, NULL, 45, LOCATE_partial_order___PartialOrder___count};
   val_t variable0;
   val_t variable1;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
   variable1 = ((partial_order___PartialOrder___has_t)CALL( self,COLOR_abstract_collection___Collection___has))( self,  variable0 /*e*/) /*PartialOrder::has*/;
   if (UNTAG_Bool(variable1)) { /*if*/
@@ -93,21 +100,23 @@ val_t partial_order___PartialOrder___count(val_t  self, val_t  param0) {
   return variable1;
 }
 val_t partial_order___PartialOrder___iterator(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___iterator, 54};
+  struct trace_t trace = {NULL, NULL, 54, LOCATE_partial_order___PartialOrder___iterator};
   val_t variable0;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 = ATTR_partial_order___PartialOrder____elements_list( self) /*PartialOrder::_elements_list*/;
-  variable0 = ((array___AbstractArray___iterator_t)CALL(variable0,COLOR_abstract_collection___Collection___iterator))(variable0) /*Array::iterator*/;
+  variable0 = ((array___AbstractArray___iterator_t)CALL(variable0,COLOR_abstract_collection___Collection___iterator))(variable0) /*AbstractArray::iterator*/;
   goto return_label6;
   return_label6: while(false);
   tracehead = trace.prev;
   return variable0;
 }
 val_t partial_order___PartialOrder_____bra(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder_____bra, 58};
+  struct trace_t trace = {NULL, NULL, 58, LOCATE_partial_order___PartialOrder_____bra};
   val_t variable0;
   val_t variable1;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
   variable1 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
   variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1,  variable0 /*e*/) /*Map::has_key*/;
@@ -124,7 +133,7 @@ val_t partial_order___PartialOrder_____bra(val_t  self, val_t  param0) {
   return variable1;
 }
 val_t partial_order___PartialOrder___to_dot(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___to_dot, 68};
+  struct trace_t trace = {NULL, NULL, 68, LOCATE_partial_order___PartialOrder___to_dot};
   val_t variable0;
   val_t variable1;
     val_t variable2;
@@ -132,21 +141,22 @@ val_t partial_order___PartialOrder___to_dot(val_t  self) {
       val_t variable4;
       val_t variable5;
   trace.prev = tracehead; tracehead = &trace;
-  variable1 = NEW_string___String___init(); /*new String*/
+  trace.file = LOCATE_partial_order;
+  variable1 = NEW_String_string___String___init(); /*new String*/
   variable0 = variable1;
   variable1 = ((partial_order___PartialOrder___to_dot_header_t)CALL( self,COLOR_partial_order___PartialOrder___to_dot_header))( self) /*PartialOrder::to_dot_header*/;
   ((string___String___append_t)CALL( variable0 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable0 /*s*/, variable1) /*String::append*/;
   variable1 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
   variable1 = ((abstract_collection___Map___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Map::iterator*/;
   while (true) { /*for*/
-    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*MapIterator::is_ok*/;
+    variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable2)) break; /*for*/
-    variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*MapIterator::item*/;
+    variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
     variable3 = ((partial_order___PartialOrderElement___value_t)CALL( variable2 /*e*/,COLOR_partial_order___PartialOrderElement___value))( variable2 /*e*/) /*PartialOrderElement::value*/;
     variable3 = ((partial_order___PartialOrder___to_dot_node_t)CALL( self,COLOR_partial_order___PartialOrder___to_dot_node))( self, variable3) /*PartialOrder::to_dot_node*/;
     ((string___String___append_t)CALL( variable0 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable0 /*s*/, variable3) /*String::append*/;
     variable3 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL( variable2 /*e*/,COLOR_partial_order___PartialOrderElement___direct_greaters))( variable2 /*e*/) /*PartialOrderElement::direct_greaters*/;
-    variable3 = ((array___AbstractArray___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Array::iterator*/;
+    variable3 = ((array___AbstractArray___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*AbstractArray::iterator*/;
     while (true) { /*for*/
       variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable4)) break; /*for*/
@@ -159,10 +169,10 @@ val_t partial_order___PartialOrder___to_dot(val_t  self) {
     }
     break_10: while(0);
     continue_9: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*MapIterator::next*/;
+    ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
   }
   break_9: while(0);
-  variable1 = NEW_string___String___with_native(BOX_NativeString("}\n"), TAG_Int(2)); /*new String*/
+  variable1 = NEW_String_string___String___with_native(BOX_NativeString("}\n"), TAG_Int(2)); /*new String*/
   ((string___String___append_t)CALL( variable0 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable0 /*s*/, variable1) /*String::append*/;
   variable0 =  variable0 /*s*/;
   goto return_label8;
@@ -171,17 +181,18 @@ val_t partial_order___PartialOrder___to_dot(val_t  self) {
   return variable0;
 }
 val_t partial_order___PartialOrder___to_dot_header(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___to_dot_header, 83};
+  struct trace_t trace = {NULL, NULL, 83, LOCATE_partial_order___PartialOrder___to_dot_header};
   val_t variable0;
   trace.prev = tracehead; tracehead = &trace;
-  variable0 = NEW_string___String___with_native(BOX_NativeString("digraph G {\ngraph [rankdir=BT];\n"), TAG_Int(32)); /*new String*/
+  trace.file = LOCATE_partial_order;
+  variable0 = NEW_String_string___String___with_native(BOX_NativeString("digraph G {\ngraph [rankdir=BT];\n"), TAG_Int(32)); /*new String*/
   goto return_label11;
   return_label11: while(false);
   tracehead = trace.prev;
   return variable0;
 }
 val_t partial_order___PartialOrder___to_dot_node(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___to_dot_node, 89};
+  struct trace_t trace = {NULL, NULL, 89, LOCATE_partial_order___PartialOrder___to_dot_node};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -190,15 +201,16 @@ val_t partial_order___PartialOrder___to_dot_node(val_t  self, val_t  param0) {
   val_t variable5;
   val_t variable6;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
-  variable1 = NEW_string___String___init(); /*new String*/
-  variable2 = NEW_string___String___with_native(BOX_NativeString("\""), TAG_Int(1)); /*new String*/
+  variable1 = NEW_String_string___String___init(); /*new String*/
+  variable2 = NEW_String_string___String___with_native(BOX_NativeString("\""), TAG_Int(1)); /*new String*/
   variable3 = variable2;
   ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
   variable4 =  variable0 /*e*/;
   variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
   ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable4) /*String::append*/;
-  variable5 = NEW_string___String___with_native(BOX_NativeString("\";\n"), TAG_Int(3)); /*new String*/
+  variable5 = NEW_String_string___String___with_native(BOX_NativeString("\";\n"), TAG_Int(3)); /*new String*/
   variable6 = variable5;
   ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable6) /*String::append*/;
   goto return_label12;
@@ -207,7 +219,7 @@ val_t partial_order___PartialOrder___to_dot_node(val_t  self, val_t  param0) {
   return variable1;
 }
 val_t partial_order___PartialOrder___to_dot_edge(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___to_dot_edge, 95};
+  struct trace_t trace = {NULL, NULL, 95, LOCATE_partial_order___PartialOrder___to_dot_edge};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -220,22 +232,23 @@ val_t partial_order___PartialOrder___to_dot_edge(val_t  self, val_t  param0, val
   val_t variable9;
   val_t variable10;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
   variable1 =  param1;
-  variable2 = NEW_string___String___init(); /*new String*/
-  variable3 = NEW_string___String___with_native(BOX_NativeString("\""), TAG_Int(1)); /*new String*/
+  variable2 = NEW_String_string___String___init(); /*new String*/
+  variable3 = NEW_String_string___String___with_native(BOX_NativeString("\""), TAG_Int(1)); /*new String*/
   variable4 = variable3;
   ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
   variable5 =  variable0 /*e1*/;
   variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
   ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable5) /*String::append*/;
-  variable6 = NEW_string___String___with_native(BOX_NativeString("\" -> \""), TAG_Int(6)); /*new String*/
+  variable6 = NEW_String_string___String___with_native(BOX_NativeString("\" -> \""), TAG_Int(6)); /*new String*/
   variable7 = variable6;
   ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable7) /*String::append*/;
   variable8 =  variable1 /*e2*/;
   variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
   ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
-  variable9 = NEW_string___String___with_native(BOX_NativeString("\";\n"), TAG_Int(3)); /*new String*/
+  variable9 = NEW_String_string___String___with_native(BOX_NativeString("\";\n"), TAG_Int(3)); /*new String*/
   variable10 = variable9;
   ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable10) /*String::append*/;
   goto return_label13;
@@ -244,7 +257,7 @@ val_t partial_order___PartialOrder___to_dot_edge(val_t  self, val_t  param0, val
   return variable2;
 }
 val_t partial_order___PartialOrder___select_smallests(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___select_smallests, 101};
+  struct trace_t trace = {NULL, NULL, 101, LOCATE_partial_order___PartialOrder___select_smallests};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -253,20 +266,21 @@ val_t partial_order___PartialOrder___select_smallests(val_t  self, val_t  param0
     val_t variable5;
     val_t variable6;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
-  variable1 = TAG_Bool(( variable0 /*c*/ ==  NIT_NULL /*null*/) || (( variable0 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*c*/,COLOR_kernel___Object_____eqeq))( variable0 /*c*/,  NIT_NULL /*null*/) /*Collection::==*/)))));
+  variable1 = TAG_Bool(( variable0 /*c*/ ==  NIT_NULL /*null*/) || (( variable0 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*c*/,COLOR_kernel___Object_____eqeq))( variable0 /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable1)) { /*if*/
-    variable1 = NEW_array___Array___init(); /*new Array[E]*/
+    variable1 = NEW_Array_array___Array___init(); /*new Array[E]*/
     goto return_label14;
   }
   variable1 = ((partial_order___PartialOrder___has_all_t)CALL( self,COLOR_partial_order___PartialOrder___has_all))( self,  variable0 /*c*/) /*PartialOrder::has_all*/;
-  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_partial_order___PartialOrder___select_smallests, 105); nit_exit(1);}
+  if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_partial_order___PartialOrder___select_smallests, LOCATE_partial_order, 105); nit_exit(1);}
   variable2 = ((abstract_collection___Collection___length_t)CALL( variable0 /*c*/,COLOR_abstract_collection___Collection___length))( variable0 /*c*/) /*Collection::length*/;
-  variable3 = NEW_array___Array___with_capacity(variable2); /*new Array[E]*/
+  variable3 = NEW_Array_array___Array___with_capacity(variable2); /*new Array[E]*/
   variable2 = variable3;
   variable1 = variable2;
   variable3 = ((abstract_collection___Collection___length_t)CALL( variable0 /*c*/,COLOR_abstract_collection___Collection___length))( variable0 /*c*/) /*Collection::length*/;
-  variable4 = NEW_array___Array___with_capacity(variable3); /*new Array[E]*/
+  variable4 = NEW_Array_array___Array___with_capacity(variable3); /*new Array[E]*/
   variable3 = variable4;
   variable2 = variable3;
   variable3 = ((abstract_collection___Collection___iterator_t)CALL( variable0 /*c*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*c*/) /*Collection::iterator*/;
@@ -292,7 +306,7 @@ val_t partial_order___PartialOrder___select_smallests(val_t  self, val_t  param0
   return variable1;
 }
 val_t partial_order___PartialOrder___add(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___add, 122};
+  struct trace_t trace = {NULL, NULL, 122, LOCATE_partial_order___PartialOrder___add};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -300,17 +314,18 @@ val_t partial_order___PartialOrder___add(val_t  self, val_t  param0, val_t  para
   val_t variable4;
   val_t variable5;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
   variable1 =  param1;
   variable2 = ((partial_order___PartialOrder___has_t)CALL( self,COLOR_abstract_collection___Collection___has))( self,  variable0 /*e*/) /*PartialOrder::has*/;
-  if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable2)))) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_partial_order___PartialOrder___add, 125); nit_exit(1);}
-  variable2 = TAG_Bool(( variable1 /*supers*/ ==  NIT_NULL /*null*/) || (( variable1 /*supers*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))( variable1 /*supers*/,  NIT_NULL /*null*/) /*Collection::==*/)))));
+  if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable2)))) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_partial_order___PartialOrder___add, LOCATE_partial_order, 125); nit_exit(1);}
+  variable2 = TAG_Bool(( variable1 /*supers*/ ==  NIT_NULL /*null*/) || (( variable1 /*supers*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))( variable1 /*supers*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   variable3 = variable2;
   if (!UNTAG_Bool(variable3)) { /* or */
     variable3 = ((partial_order___PartialOrder___has_all_t)CALL( self,COLOR_partial_order___PartialOrder___has_all))( self,  variable1 /*supers*/) /*PartialOrder::has_all*/;
   }
   variable2 = variable3;
-  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_partial_order___PartialOrder___add, 126); nit_exit(1);}
+  if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_partial_order___PartialOrder___add, LOCATE_partial_order, 126); nit_exit(1);}
   variable3 = ((partial_order___PartialOrder___select_smallests_t)CALL( self,COLOR_partial_order___PartialOrder___select_smallests))( self,  variable1 /*supers*/) /*PartialOrder::select_smallests*/;
   variable2 = variable3;
   variable4 = ((partial_order___PartialOrder___new_poe_t)CALL( self,COLOR_partial_order___PartialOrder___new_poe))( self,  variable0 /*e*/,  variable2 /*directs*/) /*PartialOrder::new_poe*/;
@@ -318,8 +333,8 @@ val_t partial_order___PartialOrder___add(val_t  self, val_t  param0, val_t  para
   variable4 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
   ((abstract_collection___Map_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4,  variable0 /*e*/,  variable3 /*poe*/) /*Map::[]=*/;
   variable4 = ATTR_partial_order___PartialOrder____elements_list( self) /*PartialOrder::_elements_list*/;
-  ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  variable0 /*e*/) /*Array::add*/;
-  variable4 = TAG_Bool(( variable1 /*supers*/ ==  NIT_NULL /*null*/) || (( variable1 /*supers*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))( variable1 /*supers*/,  NIT_NULL /*null*/) /*Collection::==*/)))));
+  ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  variable0 /*e*/) /*AbstractArray::add*/;
+  variable4 = TAG_Bool(( variable1 /*supers*/ ==  NIT_NULL /*null*/) || (( variable1 /*supers*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))( variable1 /*supers*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   variable5 = variable4;
   if (!UNTAG_Bool(variable5)) { /* or */
     variable5 = ((abstract_collection___Collection___is_empty_t)CALL( variable1 /*supers*/,COLOR_abstract_collection___Collection___is_empty))( variable1 /*supers*/) /*Collection::is_empty*/;
@@ -327,7 +342,7 @@ val_t partial_order___PartialOrder___add(val_t  self, val_t  param0, val_t  para
   variable4 = variable5;
   if (UNTAG_Bool(variable4)) { /*if*/
     variable4 = ATTR_partial_order___PartialOrder____roots( self) /*PartialOrder::_roots*/;
-    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  variable0 /*e*/) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4,  variable0 /*e*/) /*AbstractArray::add*/;
   }
   variable2 =  variable3 /*poe*/;
   goto return_label16;
@@ -336,12 +351,13 @@ val_t partial_order___PartialOrder___add(val_t  self, val_t  param0, val_t  para
   return variable2;
 }
 val_t partial_order___PartialOrder___has_all(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___has_all, 137};
+  struct trace_t trace = {NULL, NULL, 137, LOCATE_partial_order___PartialOrder___has_all};
   val_t variable0;
   val_t variable1;
     val_t variable2;
     val_t variable3;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
   variable1 = ((abstract_collection___Collection___iterator_t)CALL( variable0 /*e*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*e*/) /*Collection::iterator*/;
   while (true) { /*for*/
@@ -364,21 +380,22 @@ val_t partial_order___PartialOrder___has_all(val_t  self, val_t  param0) {
   return variable1;
 }
 val_t partial_order___PartialOrder___new_poe(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___new_poe, 148};
+  struct trace_t trace = {NULL, NULL, 148, LOCATE_partial_order___PartialOrder___new_poe};
   val_t variable0;
   val_t variable1;
   val_t variable2;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
   variable1 =  param1;
-  variable2 = NEW_partial_order___PartialOrderElement___init( self,  variable0 /*e*/,  variable1 /*directs*/); /*new PartialOrderElement[E]*/
+  variable2 = NEW_PartialOrderElement_partial_order___PartialOrderElement___init( self,  variable0 /*e*/,  variable1 /*directs*/); /*new PartialOrderElement[E]*/
   goto return_label19;
   return_label19: while(false);
   tracehead = trace.prev;
   return variable2;
 }
 val_t partial_order___PartialOrder___add_to_smallests(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___add_to_smallests, 154};
+  struct trace_t trace = {NULL, NULL, 154, LOCATE_partial_order___PartialOrder___add_to_smallests};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -387,13 +404,14 @@ val_t partial_order___PartialOrder___add_to_smallests(val_t  self, val_t  param0
     val_t variable5;
     val_t variable6;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
   variable1 =  param1;
   variable2 =  param2;
-  ((array___AbstractArray___clear_t)CALL( variable2 /*to*/,COLOR_abstract_collection___RemovableCollection___clear))( variable2 /*to*/) /*Array::clear*/;
+  ((array___AbstractArray___clear_t)CALL( variable2 /*to*/,COLOR_abstract_collection___RemovableCollection___clear))( variable2 /*to*/) /*AbstractArray::clear*/;
   variable4 = ((partial_order___PartialOrder_____bra_t)CALL( self,COLOR_partial_order___PartialOrder_____bra))( self,  variable0 /*e*/) /*PartialOrder::[]*/;
   variable3 = variable4;
-  variable4 = ((array___AbstractArray___iterator_t)CALL( variable1 /*from*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*from*/) /*Array::iterator*/;
+  variable4 = ((array___AbstractArray___iterator_t)CALL( variable1 /*from*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*from*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
     variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable5)) break; /*for*/
@@ -405,13 +423,13 @@ val_t partial_order___PartialOrder___add_to_smallests(val_t  self, val_t  param0
     }
     variable6 = ((partial_order___PartialOrderElement_____l_t)CALL( variable3 /*poe*/,COLOR_partial_order___PartialOrderElement_____l))( variable3 /*poe*/,  variable5 /*i*/) /*PartialOrderElement::<*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable6)))) { /*if*/
-      ((array___AbstractArray___add_t)CALL( variable2 /*to*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*to*/,  variable5 /*i*/) /*Array::add*/;
+      ((array___AbstractArray___add_t)CALL( variable2 /*to*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*to*/,  variable5 /*i*/) /*AbstractArray::add*/;
     }
     continue_21: while(0);
     ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
   }
   break_21: while(0);
-  ((array___AbstractArray___add_t)CALL( variable2 /*to*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*to*/,  variable0 /*e*/) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL( variable2 /*to*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*to*/,  variable0 /*e*/) /*AbstractArray::add*/;
   variable3 =  TAG_Bool(true);
   goto return_label20;
   return_label20: while(false);
@@ -419,7 +437,7 @@ val_t partial_order___PartialOrder___add_to_smallests(val_t  self, val_t  param0
   return variable3;
 }
 void partial_order___PartialOrder___compute_smallers_for(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___compute_smallers_for, 175};
+  struct trace_t trace = {NULL, NULL, 175, LOCATE_partial_order___PartialOrder___compute_smallers_for};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -427,6 +445,7 @@ void partial_order___PartialOrder___compute_smallers_for(val_t  self, val_t  par
     val_t variable4;
     val_t variable5;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
   variable1 =  param1;
   variable3 = ((partial_order___PartialOrderElement___value_t)CALL( variable0 /*poe*/,COLOR_partial_order___PartialOrderElement___value))( variable0 /*poe*/) /*PartialOrderElement::value*/;
@@ -434,86 +453,94 @@ void partial_order___PartialOrder___compute_smallers_for(val_t  self, val_t  par
   variable3 = ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/;
   variable3 = ((abstract_collection___Map___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Map::iterator*/;
   while (true) { /*for*/
-    variable4 = ((abstract_collection___Iterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*MapIterator::is_ok*/;
+    variable4 = ((abstract_collection___Iterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable4)) break; /*for*/
-    variable4 = ((abstract_collection___Iterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*MapIterator::item*/;
+    variable4 = ((abstract_collection___Iterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*Iterator::item*/;
     variable5 = ((partial_order___PartialOrderElement_____l_t)CALL( variable4 /*s*/,COLOR_partial_order___PartialOrderElement_____l))( variable4 /*s*/,  variable2 /*e*/) /*PartialOrderElement::<*/;
     if (UNTAG_Bool(variable5)) { /*if*/
       variable5 = ((partial_order___PartialOrderElement___value_t)CALL( variable4 /*s*/,COLOR_partial_order___PartialOrderElement___value))( variable4 /*s*/) /*PartialOrderElement::value*/;
-      ((abstract_collection___SimpleCollection___add_t)CALL( variable1 /*set*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*set*/, variable5) /*Set::add*/;
+      ((abstract_collection___SimpleCollection___add_t)CALL( variable1 /*set*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*set*/, variable5) /*SimpleCollection::add*/;
     }
     continue_23: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*MapIterator::next*/;
+    ((abstract_collection___Iterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*Iterator::next*/;
   }
   break_23: while(0);
   tracehead = trace.prev;
   return;
 }
 void partial_order___PartialOrder___init(val_t  self, int* init_table) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrder___init, 185};
+  struct trace_t trace = {NULL, NULL, 185, LOCATE_partial_order___PartialOrder___init};
   val_t variable0;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_PartialOrder].i]) return;
-  variable0 = NEW_hash___HashMap___init(); /*new HashMap[E, PartialOrderElement[E]]*/
+  variable0 = NEW_HashMap_hash___HashMap___init(); /*new HashMap[E, PartialOrderElement[E]]*/
   ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/ = variable0;
-  variable0 = NEW_array___Array___init(); /*new Array[E]*/
+  variable0 = NEW_Array_array___Array___init(); /*new Array[E]*/
   ATTR_partial_order___PartialOrder____elements_list( self) /*PartialOrder::_elements_list*/ = variable0;
-  variable0 = NEW_array___Array___init(); /*new Array[E]*/
+  variable0 = NEW_Array_array___Array___init(); /*new Array[E]*/
   ATTR_partial_order___PartialOrder____roots( self) /*PartialOrder::_roots*/ = variable0;
   init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_PartialOrder].i] = 1;
   tracehead = trace.prev;
   return;
 }
 val_t partial_order___PartialOrderElement___order(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrderElement___order, 194};
+  struct trace_t trace = {NULL, NULL, 194, LOCATE_partial_order___PartialOrderElement___order};
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   tracehead = trace.prev;
   return ATTR_partial_order___PartialOrderElement____order( self) /*PartialOrderElement::_order*/;
 }
 val_t partial_order___PartialOrderElement___value(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrderElement___value, 197};
+  struct trace_t trace = {NULL, NULL, 197, LOCATE_partial_order___PartialOrderElement___value};
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   tracehead = trace.prev;
   return ATTR_partial_order___PartialOrderElement____value( self) /*PartialOrderElement::_value*/;
 }
 val_t partial_order___PartialOrderElement___rank(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrderElement___rank, 200};
+  struct trace_t trace = {NULL, NULL, 200, LOCATE_partial_order___PartialOrderElement___rank};
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   tracehead = trace.prev;
   return ATTR_partial_order___PartialOrderElement____rank( self) /*PartialOrderElement::_rank*/;
 }
 val_t partial_order___PartialOrderElement___direct_greaters(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrderElement___direct_greaters, 206};
+  struct trace_t trace = {NULL, NULL, 206, LOCATE_partial_order___PartialOrderElement___direct_greaters};
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   tracehead = trace.prev;
   return ATTR_partial_order___PartialOrderElement____direct_greaters( self) /*PartialOrderElement::_direct_greaters*/;
 }
 val_t partial_order___PartialOrderElement___direct_smallers(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrderElement___direct_smallers, 209};
+  struct trace_t trace = {NULL, NULL, 209, LOCATE_partial_order___PartialOrderElement___direct_smallers};
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   tracehead = trace.prev;
   return ATTR_partial_order___PartialOrderElement____direct_smallers( self) /*PartialOrderElement::_direct_smallers*/;
 }
 val_t partial_order___PartialOrderElement___greaters(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrderElement___greaters, 212};
+  struct trace_t trace = {NULL, NULL, 212, LOCATE_partial_order___PartialOrderElement___greaters};
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   tracehead = trace.prev;
   return ATTR_partial_order___PartialOrderElement____greaters( self) /*PartialOrderElement::_greaters*/;
 }
 val_t partial_order___PartialOrderElement___greaters_and_self(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrderElement___greaters_and_self, 218};
+  struct trace_t trace = {NULL, NULL, 218, LOCATE_partial_order___PartialOrderElement___greaters_and_self};
   val_t variable0;
     val_t variable1;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 = ATTR_partial_order___PartialOrderElement____greaters_and_self_cache( self) /*PartialOrderElement::_greaters_and_self_cache*/;
-  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*Array::==*/)));
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*AbstractArray::==*/)));
   if (UNTAG_Bool(variable0)) { /*if*/
     variable0 = ATTR_partial_order___PartialOrderElement____greaters( self) /*PartialOrderElement::_greaters*/;
-    variable0 = ((array___Collection___to_a_t)CALL(variable0,COLOR_array___Collection___to_a))(variable0) /*Set::to_a*/;
+    variable0 = ((array___Collection___to_a_t)CALL(variable0,COLOR_array___Collection___to_a))(variable0) /*Collection::to_a*/;
     ATTR_partial_order___PartialOrderElement____greaters_and_self_cache( self) /*PartialOrderElement::_greaters_and_self_cache*/ = variable0;
     variable0 = ATTR_partial_order___PartialOrderElement____greaters_and_self_cache( self) /*PartialOrderElement::_greaters_and_self_cache*/;
     variable1 = ATTR_partial_order___PartialOrderElement____value( self) /*PartialOrderElement::_value*/;
-    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*AbstractArray::add*/;
   }
   variable0 = ATTR_partial_order___PartialOrderElement____greaters_and_self_cache( self) /*PartialOrderElement::_greaters_and_self_cache*/;
   goto return_label25;
@@ -522,10 +549,11 @@ val_t partial_order___PartialOrderElement___greaters_and_self(val_t  self) {
   return variable0;
 }
 val_t partial_order___PartialOrderElement___smallers(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrderElement___smallers, 234};
+  struct trace_t trace = {NULL, NULL, 234, LOCATE_partial_order___PartialOrderElement___smallers};
   val_t variable0;
   val_t variable1;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 = ATTR_partial_order___PartialOrderElement____smallers_last_length( self) /*PartialOrderElement::_smallers_last_length*/;
   variable1 = ATTR_partial_order___PartialOrderElement____order( self) /*PartialOrderElement::_order*/;
   variable1 = ((partial_order___PartialOrder___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*PartialOrder::length*/;
@@ -545,7 +573,7 @@ val_t partial_order___PartialOrderElement___smallers(val_t  self) {
   return variable0;
 }
 val_t partial_order___PartialOrderElement___linear_extension(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrderElement___linear_extension, 247};
+  struct trace_t trace = {NULL, NULL, 247, LOCATE_partial_order___PartialOrderElement___linear_extension};
   val_t variable0;
     val_t variable1;
     val_t variable2;
@@ -555,17 +583,18 @@ val_t partial_order___PartialOrderElement___linear_extension(val_t  self) {
         val_t variable6;
         val_t variable7;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 = ATTR_partial_order___PartialOrderElement____linear_extension_cache( self) /*PartialOrderElement::_linear_extension_cache*/;
-  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*Array::==*/)));
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*AbstractArray::==*/)));
   if (UNTAG_Bool(variable0)) { /*if*/
-    variable1 = NEW_array___Array___init(); /*new Array[E]*/
+    variable1 = NEW_Array_array___Array___init(); /*new Array[E]*/
     variable0 = variable1;
-    variable2 = NEW_array___Array___init(); /*new Array[E]*/
+    variable2 = NEW_Array_array___Array___init(); /*new Array[E]*/
     variable1 = variable2;
     variable2 = ((partial_order___PartialOrderElement___value_t)CALL( self,COLOR_partial_order___PartialOrderElement___value))( self) /*PartialOrderElement::value*/;
-    ((array___AbstractArray___add_t)CALL( variable0 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*res*/, variable2) /*Array::add*/;
+    ((array___AbstractArray___add_t)CALL( variable0 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*res*/, variable2) /*AbstractArray::add*/;
     variable2 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL( self,COLOR_partial_order___PartialOrderElement___direct_greaters))( self) /*PartialOrderElement::direct_greaters*/;
-    variable2 = ((array___AbstractArray___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Array::iterator*/;
+    variable2 = ((array___AbstractArray___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*AbstractArray::iterator*/;
     while (true) { /*for*/
       variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable3)) break; /*for*/
@@ -574,21 +603,21 @@ val_t partial_order___PartialOrderElement___linear_extension(val_t  self) {
       variable5 = ((partial_order___PartialOrder_____bra_t)CALL(variable5,COLOR_partial_order___PartialOrder_____bra))(variable5,  variable3 /*s*/) /*PartialOrder::[]*/;
       variable5 = ((partial_order___PartialOrderElement___linear_extension_t)CALL(variable5,COLOR_partial_order___PartialOrderElement___linear_extension))(variable5) /*PartialOrderElement::linear_extension*/;
       variable4 = variable5;
-      ((array___AbstractArray___clear_t)CALL( variable1 /*res2*/,COLOR_abstract_collection___RemovableCollection___clear))( variable1 /*res2*/) /*Array::clear*/;
-      variable5 = ((array___AbstractArray___iterator_t)CALL( variable0 /*res*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*res*/) /*Array::iterator*/;
+      ((array___AbstractArray___clear_t)CALL( variable1 /*res2*/,COLOR_abstract_collection___RemovableCollection___clear))( variable1 /*res2*/) /*AbstractArray::clear*/;
+      variable5 = ((array___AbstractArray___iterator_t)CALL( variable0 /*res*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*res*/) /*AbstractArray::iterator*/;
       while (true) { /*for*/
         variable6 = ((array___ArrayIterator___is_ok_t)CALL(variable5,COLOR_abstract_collection___Iterator___is_ok))(variable5) /*ArrayIterator::is_ok*/;
         if (!UNTAG_Bool(variable6)) break; /*for*/
         variable6 = ((array___ArrayIterator___item_t)CALL(variable5,COLOR_abstract_collection___Iterator___item))(variable5) /*ArrayIterator::item*/;
-        variable7 = ((array___AbstractArray___has_t)CALL( variable4 /*sl*/,COLOR_abstract_collection___Collection___has))( variable4 /*sl*/,  variable6 /*e*/) /*Array::has*/;
+        variable7 = ((array___AbstractArray___has_t)CALL( variable4 /*sl*/,COLOR_abstract_collection___Collection___has))( variable4 /*sl*/,  variable6 /*e*/) /*AbstractArray::has*/;
         if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable7)))) { /*if*/
-          ((array___AbstractArray___add_t)CALL( variable1 /*res2*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*res2*/,  variable6 /*e*/) /*Array::add*/;
+          ((array___AbstractArray___add_t)CALL( variable1 /*res2*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*res2*/,  variable6 /*e*/) /*AbstractArray::add*/;
         }
         continue_29: while(0);
         ((array___ArrayIterator___next_t)CALL(variable5,COLOR_abstract_collection___Iterator___next))(variable5) /*ArrayIterator::next*/;
       }
       break_29: while(0);
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable1 /*res2*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*res2*/,  variable4 /*sl*/) /*Array::append*/;
+      ((abstract_collection___IndexedCollection___append_t)CALL( variable1 /*res2*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*res2*/,  variable4 /*sl*/) /*IndexedCollection::append*/;
       variable5 =  variable0 /*res*/;
       variable0 =  variable1 /*res2*/ /*res=*/;
       variable1 =  variable5 /*tmp*/ /*res2=*/;
@@ -605,20 +634,21 @@ val_t partial_order___PartialOrderElement___linear_extension(val_t  self) {
   return variable0;
 }
 val_t partial_order___PartialOrderElement___reverse_linear_extension(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrderElement___reverse_linear_extension, 275};
+  struct trace_t trace = {NULL, NULL, 275, LOCATE_partial_order___PartialOrderElement___reverse_linear_extension};
   val_t variable0;
     val_t variable1;
       val_t variable2;
       val_t variable3;
       val_t variable4;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 = ATTR_partial_order___PartialOrderElement____reverse_linear_extension_cache( self) /*PartialOrderElement::_reverse_linear_extension_cache*/;
-  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*Array::==*/)));
+  variable0 = TAG_Bool((variable0 ==  NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0,  NIT_NULL /*null*/) /*AbstractArray::==*/)));
   if (UNTAG_Bool(variable0)) { /*if*/
-    variable1 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
+    variable1 = NEW_HashSet_hash___HashSet___init(); /*new HashSet[E]*/
     variable0 = variable1;
     variable1 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL( self,COLOR_partial_order___PartialOrderElement___direct_greaters))( self) /*PartialOrderElement::direct_greaters*/;
-    variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Array::iterator*/;
+    variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*AbstractArray::iterator*/;
     while (true) { /*for*/
       variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable2)) break; /*for*/
@@ -627,14 +657,14 @@ val_t partial_order___PartialOrderElement___reverse_linear_extension(val_t  self
       variable4 = ((partial_order___PartialOrder_____bra_t)CALL(variable4,COLOR_partial_order___PartialOrder_____bra))(variable4,  variable2 /*s*/) /*PartialOrder::[]*/;
       variable4 = ((partial_order___PartialOrderElement___linear_extension_t)CALL(variable4,COLOR_partial_order___PartialOrderElement___linear_extension))(variable4) /*PartialOrderElement::linear_extension*/;
       variable3 = variable4;
-      ((abstract_collection___SimpleCollection___add_all_t)CALL( variable0 /*res*/,COLOR_abstract_collection___SimpleCollection___add_all))( variable0 /*res*/,  variable3 /*sl*/) /*HashSet::add_all*/;
+      ((abstract_collection___SimpleCollection___add_all_t)CALL( variable0 /*res*/,COLOR_abstract_collection___SimpleCollection___add_all))( variable0 /*res*/,  variable3 /*sl*/) /*SimpleCollection::add_all*/;
       continue_31: while(0);
       ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/;
     }
     break_31: while(0);
     variable1 = ((partial_order___PartialOrderElement___value_t)CALL( self,COLOR_partial_order___PartialOrderElement___value))( self) /*PartialOrderElement::value*/;
     ((hash___HashSet___add_t)CALL( variable0 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*res*/, variable1) /*HashSet::add*/;
-    variable1 = ((array___Collection___to_a_t)CALL( variable0 /*res*/,COLOR_array___Collection___to_a))( variable0 /*res*/) /*HashSet::to_a*/;
+    variable1 = ((array___Collection___to_a_t)CALL( variable0 /*res*/,COLOR_array___Collection___to_a))( variable0 /*res*/) /*Collection::to_a*/;
     ATTR_partial_order___PartialOrderElement____linear_extension_cache( self) /*PartialOrderElement::_linear_extension_cache*/ = variable1;
   }
   variable0 = ATTR_partial_order___PartialOrderElement____linear_extension_cache( self) /*PartialOrderElement::_linear_extension_cache*/;
@@ -644,31 +674,33 @@ val_t partial_order___PartialOrderElement___reverse_linear_extension(val_t  self
   return variable0;
 }
 val_t partial_order___PartialOrderElement_____l(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrderElement_____l, 291};
+  struct trace_t trace = {NULL, NULL, 291, LOCATE_partial_order___PartialOrderElement_____l};
   val_t variable0;
   val_t variable1;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
   variable1 = ATTR_partial_order___PartialOrderElement____greaters( self) /*PartialOrderElement::_greaters*/;
-  variable1 = ((abstract_collection___Collection___has_t)CALL(variable1,COLOR_abstract_collection___Collection___has))(variable1,  variable0 /*o*/) /*Set::has*/;
+  variable1 = ((abstract_collection___Collection___has_t)CALL(variable1,COLOR_abstract_collection___Collection___has))(variable1,  variable0 /*o*/) /*Collection::has*/;
   goto return_label32;
   return_label32: while(false);
   tracehead = trace.prev;
   return variable1;
 }
 val_t partial_order___PartialOrderElement_____leq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrderElement_____leq, 297};
+  struct trace_t trace = {NULL, NULL, 297, LOCATE_partial_order___PartialOrderElement_____leq};
   val_t variable0;
   val_t variable1;
   val_t variable2;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
   variable1 = ATTR_partial_order___PartialOrderElement____value( self) /*PartialOrderElement::_value*/;
   variable1 = TAG_Bool((variable1 ==  variable0 /*o*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, variable0 /*o*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  variable0 /*o*/) /*Object::==*/)))));
   variable2 = variable1;
   if (!UNTAG_Bool(variable2)) { /* or */
     variable2 = ATTR_partial_order___PartialOrderElement____greaters( self) /*PartialOrderElement::_greaters*/;
-    variable2 = ((abstract_collection___Collection___has_t)CALL(variable2,COLOR_abstract_collection___Collection___has))(variable2,  variable0 /*o*/) /*Set::has*/;
+    variable2 = ((abstract_collection___Collection___has_t)CALL(variable2,COLOR_abstract_collection___Collection___has))(variable2,  variable0 /*o*/) /*Collection::has*/;
   }
   variable1 = variable2;
   goto return_label33;
@@ -677,11 +709,12 @@ val_t partial_order___PartialOrderElement_____leq(val_t  self, val_t  param0) {
   return variable1;
 }
 val_t partial_order___PartialOrderElement_____g(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrderElement_____g, 303};
+  struct trace_t trace = {NULL, NULL, 303, LOCATE_partial_order___PartialOrderElement_____g};
   val_t variable0;
   val_t variable1;
   val_t variable2;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
   variable1 = ATTR_partial_order___PartialOrderElement____order( self) /*PartialOrderElement::_order*/;
   variable1 = ((partial_order___PartialOrder_____bra_t)CALL(variable1,COLOR_partial_order___PartialOrder_____bra))(variable1,  variable0 /*o*/) /*PartialOrder::[]*/;
@@ -693,12 +726,13 @@ val_t partial_order___PartialOrderElement_____g(val_t  self, val_t  param0) {
   return variable1;
 }
 val_t partial_order___PartialOrderElement_____geq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrderElement_____geq, 309};
+  struct trace_t trace = {NULL, NULL, 309, LOCATE_partial_order___PartialOrderElement_____geq};
   val_t variable0;
   val_t variable1;
   val_t variable2;
     val_t variable3;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
   variable1 = ATTR_partial_order___PartialOrderElement____value( self) /*PartialOrderElement::_value*/;
   variable1 = TAG_Bool((variable1 ==  variable0 /*o*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, variable0 /*o*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1,  variable0 /*o*/) /*Object::==*/)))));
@@ -716,18 +750,19 @@ val_t partial_order___PartialOrderElement_____geq(val_t  self, val_t  param0) {
   return variable1;
 }
 void partial_order___PartialOrderElement___register_direct_smallers(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrderElement___register_direct_smallers, 315};
+  struct trace_t trace = {NULL, NULL, 315, LOCATE_partial_order___PartialOrderElement___register_direct_smallers};
   val_t variable0;
   val_t variable1;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
   variable1 = ATTR_partial_order___PartialOrderElement____direct_smallers( self) /*PartialOrderElement::_direct_smallers*/;
-  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  variable0 /*e*/) /*Array::add*/;
+  ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1,  variable0 /*e*/) /*AbstractArray::add*/;
   tracehead = trace.prev;
   return;
 }
 void partial_order___PartialOrderElement___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table) {
-  struct trace_t trace = {NULL, LOCATE_partial_order___PartialOrderElement___init, 320};
+  struct trace_t trace = {NULL, NULL, 320, LOCATE_partial_order___PartialOrderElement___init};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -739,6 +774,7 @@ void partial_order___PartialOrderElement___init(val_t  self, val_t  param0, val_
     val_t variable8;
       val_t variable9;
   trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_partial_order;
   variable0 =  param0;
   variable1 =  param1;
   variable2 =  param2;
@@ -746,21 +782,21 @@ void partial_order___PartialOrderElement___init(val_t  self, val_t  param0, val_
   ATTR_partial_order___PartialOrderElement____order( self) /*PartialOrderElement::_order*/ =  variable0 /*o*/;
   ATTR_partial_order___PartialOrderElement____value( self) /*PartialOrderElement::_value*/ =  variable1 /*e*/;
   ATTR_partial_order___PartialOrderElement____direct_greaters( self) /*PartialOrderElement::_direct_greaters*/ =  variable2 /*directs*/;
-  variable3 = NEW_array___Array___init(); /*new Array[E]*/
+  variable3 = NEW_Array_array___Array___init(); /*new Array[E]*/
   ATTR_partial_order___PartialOrderElement____direct_smallers( self) /*PartialOrderElement::_direct_smallers*/ = variable3;
-  variable3 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
+  variable3 = NEW_HashSet_hash___HashSet___init(); /*new HashSet[E]*/
   ATTR_partial_order___PartialOrderElement____greaters( self) /*PartialOrderElement::_greaters*/ = variable3;
-  variable3 = NEW_hash___HashSet___init(); /*new HashSet[E]*/
+  variable3 = NEW_HashSet_hash___HashSet___init(); /*new HashSet[E]*/
   ATTR_partial_order___PartialOrderElement____smallers_cache( self) /*PartialOrderElement::_smallers_cache*/ = variable3;
   variable4 = ATTR_partial_order___PartialOrderElement____greaters( self) /*PartialOrderElement::_greaters*/;
   variable3 = variable4;
   variable4 =  TAG_Int(0);
-  variable5 = ((array___AbstractArray___iterator_t)CALL( variable2 /*directs*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*directs*/) /*Array::iterator*/;
+  variable5 = ((array___AbstractArray___iterator_t)CALL( variable2 /*directs*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*directs*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
     variable6 = ((array___ArrayIterator___is_ok_t)CALL(variable5,COLOR_abstract_collection___Iterator___is_ok))(variable5) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable6)) break; /*for*/
     variable6 = ((array___ArrayIterator___item_t)CALL(variable5,COLOR_abstract_collection___Iterator___item))(variable5) /*ArrayIterator::item*/;
-    ((abstract_collection___SimpleCollection___add_t)CALL( variable3 /*g*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*g*/,  variable6 /*ee*/) /*Set::add*/;
+    ((abstract_collection___SimpleCollection___add_t)CALL( variable3 /*g*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*g*/,  variable6 /*ee*/) /*SimpleCollection::add*/;
     variable8 = ATTR_partial_order___PartialOrderElement____order( self) /*PartialOrderElement::_order*/;
     variable8 = ((partial_order___PartialOrder_____bra_t)CALL(variable8,COLOR_partial_order___PartialOrder_____bra))(variable8,  variable6 /*ee*/) /*PartialOrder::[]*/;
     variable7 = variable8;
@@ -773,12 +809,12 @@ void partial_order___PartialOrderElement___init(val_t  self, val_t  param0, val_
     }
     ((partial_order___PartialOrderElement___register_direct_smallers_t)CALL( variable7 /*poee*/,COLOR_partial_order___PartialOrderElement___register_direct_smallers))( variable7 /*poee*/,  variable1 /*e*/) /*PartialOrderElement::register_direct_smallers*/;
     variable8 = ((partial_order___PartialOrderElement___greaters_t)CALL( variable7 /*poee*/,COLOR_partial_order___PartialOrderElement___greaters))( variable7 /*poee*/) /*PartialOrderElement::greaters*/;
-    variable8 = ((abstract_collection___Collection___iterator_t)CALL(variable8,COLOR_abstract_collection___Collection___iterator))(variable8) /*Set::iterator*/;
+    variable8 = ((abstract_collection___Collection___iterator_t)CALL(variable8,COLOR_abstract_collection___Collection___iterator))(variable8) /*Collection::iterator*/;
     while (true) { /*for*/
       variable9 = ((abstract_collection___Iterator___is_ok_t)CALL(variable8,COLOR_abstract_collection___Iterator___is_ok))(variable8) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable9)) break; /*for*/
       variable9 = ((abstract_collection___Iterator___item_t)CALL(variable8,COLOR_abstract_collection___Iterator___item))(variable8) /*Iterator::item*/;
-      ((abstract_collection___SimpleCollection___add_t)CALL( variable3 /*g*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*g*/,  variable9 /*eee*/) /*Set::add*/;
+      ((abstract_collection___SimpleCollection___add_t)CALL( variable3 /*g*/,COLOR_abstract_collection___SimpleCollection___add))( variable3 /*g*/,  variable9 /*eee*/) /*SimpleCollection::add*/;
       continue_39: while(0);
       ((abstract_collection___Iterator___next_t)CALL(variable8,COLOR_abstract_collection___Iterator___next))(variable8) /*Iterator::next*/;
     }