Update c_src
[nit.git] / c_src / partial_order._sep.c
index 7e54804..075ad72 100644 (file)
@@ -1,46 +1,46 @@
 /* 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, LOCATE_partial_order, 30, LOCATE_partial_order___PartialOrder___roots};
   trace.prev = tracehead; tracehead = &trace;
   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, LOCATE_partial_order, 35, LOCATE_partial_order___PartialOrder___is_empty};
   val_t variable0;
   trace.prev = tracehead; tracehead = &trace;
   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, LOCATE_partial_order, 37, LOCATE_partial_order___PartialOrder___length};
   val_t variable0;
   trace.prev = tracehead; tracehead = &trace;
   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, LOCATE_partial_order, 39, LOCATE_partial_order___PartialOrder___first};
   val_t variable0;
   trace.prev = tracehead; tracehead = &trace;
   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, LOCATE_partial_order, 41, LOCATE_partial_order___PartialOrder___has};
   val_t variable0;
   val_t variable1;
   trace.prev = tracehead; tracehead = &trace;
@@ -53,20 +53,20 @@ 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, LOCATE_partial_order, 43, LOCATE_partial_order___PartialOrder___has_only};
   val_t variable0;
   val_t variable1;
   val_t variable2;
   trace.prev = tracehead; tracehead = &trace;
   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,7 +75,7 @@ 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, LOCATE_partial_order, 45, LOCATE_partial_order___PartialOrder___count};
   val_t variable0;
   val_t variable1;
   trace.prev = tracehead; tracehead = &trace;
@@ -93,18 +93,18 @@ 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, LOCATE_partial_order, 54, LOCATE_partial_order___PartialOrder___iterator};
   val_t variable0;
   trace.prev = tracehead; tracehead = &trace;
   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, LOCATE_partial_order, 58, LOCATE_partial_order___PartialOrder_____bra};
   val_t variable0;
   val_t variable1;
   trace.prev = tracehead; tracehead = &trace;
@@ -124,7 +124,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, LOCATE_partial_order, 68, LOCATE_partial_order___PartialOrder___to_dot};
   val_t variable0;
   val_t variable1;
     val_t variable2;
@@ -139,14 +139,14 @@ val_t partial_order___PartialOrder___to_dot(val_t  self) {
   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,7 +159,7 @@ 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*/
@@ -171,7 +171,7 @@ 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, LOCATE_partial_order, 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*/
@@ -181,7 +181,7 @@ val_t partial_order___PartialOrder___to_dot_header(val_t  self) {
   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, LOCATE_partial_order, 89, LOCATE_partial_order___PartialOrder___to_dot_node};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -207,7 +207,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, LOCATE_partial_order, 95, LOCATE_partial_order___PartialOrder___to_dot_edge};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -244,7 +244,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, LOCATE_partial_order, 101, LOCATE_partial_order___PartialOrder___select_smallests};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -254,13 +254,13 @@ val_t partial_order___PartialOrder___select_smallests(val_t  self, val_t  param0
     val_t variable6;
   trace.prev = tracehead; tracehead = &trace;
   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]*/
     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]*/
   variable2 = variable3;
@@ -292,7 +292,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, LOCATE_partial_order, 122, LOCATE_partial_order___PartialOrder___add};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -303,14 +303,14 @@ val_t partial_order___PartialOrder___add(val_t  self, val_t  param0, val_t  para
   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 +318,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 +327,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,7 +336,7 @@ 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, LOCATE_partial_order, 137, LOCATE_partial_order___PartialOrder___has_all};
   val_t variable0;
   val_t variable1;
     val_t variable2;
@@ -364,7 +364,7 @@ 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, LOCATE_partial_order, 148, LOCATE_partial_order___PartialOrder___new_poe};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -378,7 +378,7 @@ val_t partial_order___PartialOrder___new_poe(val_t  self, val_t  param0, val_t
   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, LOCATE_partial_order, 154, LOCATE_partial_order___PartialOrder___add_to_smallests};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -390,10 +390,10 @@ val_t partial_order___PartialOrder___add_to_smallests(val_t  self, val_t  param0
   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 +405,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 +419,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, LOCATE_partial_order, 175, LOCATE_partial_order___PartialOrder___compute_smallers_for};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -434,27 +434,27 @@ 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, LOCATE_partial_order, 185, LOCATE_partial_order___PartialOrder___init};
   val_t variable0;
   trace.prev = tracehead; tracehead = &trace;
   if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_PartialOrder].i]) return;
-  variable0 = NEW_hash___HashMap___init(); /*new HashMap[E, PartialOrderElement[E]]*/
+  variable0 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
   ATTR_partial_order___PartialOrder____elements( self) /*PartialOrder::_elements*/ = variable0;
   variable0 = NEW_array___Array___init(); /*new Array[E]*/
   ATTR_partial_order___PartialOrder____elements_list( self) /*PartialOrder::_elements_list*/ = variable0;
@@ -465,55 +465,55 @@ void partial_order___PartialOrder___init(val_t  self, int* init_table) {
   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, LOCATE_partial_order, 194, LOCATE_partial_order___PartialOrderElement___order};
   trace.prev = tracehead; tracehead = &trace;
   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, LOCATE_partial_order, 197, LOCATE_partial_order___PartialOrderElement___value};
   trace.prev = tracehead; tracehead = &trace;
   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, LOCATE_partial_order, 200, LOCATE_partial_order___PartialOrderElement___rank};
   trace.prev = tracehead; tracehead = &trace;
   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, LOCATE_partial_order, 206, LOCATE_partial_order___PartialOrderElement___direct_greaters};
   trace.prev = tracehead; tracehead = &trace;
   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, LOCATE_partial_order, 209, LOCATE_partial_order___PartialOrderElement___direct_smallers};
   trace.prev = tracehead; tracehead = &trace;
   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, LOCATE_partial_order, 212, LOCATE_partial_order___PartialOrderElement___greaters};
   trace.prev = tracehead; tracehead = &trace;
   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, LOCATE_partial_order, 218, LOCATE_partial_order___PartialOrderElement___greaters_and_self};
   val_t variable0;
     val_t variable1;
   trace.prev = tracehead; tracehead = &trace;
   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,7 +522,7 @@ 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, LOCATE_partial_order, 234, LOCATE_partial_order___PartialOrderElement___smallers};
   val_t variable0;
   val_t variable1;
   trace.prev = tracehead; tracehead = &trace;
@@ -545,7 +545,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, LOCATE_partial_order, 247, LOCATE_partial_order___PartialOrderElement___linear_extension};
   val_t variable0;
     val_t variable1;
     val_t variable2;
@@ -556,16 +556,16 @@ val_t partial_order___PartialOrderElement___linear_extension(val_t  self) {
         val_t variable7;
   trace.prev = tracehead; tracehead = &trace;
   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]*/
     variable0 = variable1;
     variable2 = NEW_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 +574,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,7 +605,7 @@ 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, LOCATE_partial_order, 275, LOCATE_partial_order___PartialOrderElement___reverse_linear_extension};
   val_t variable0;
     val_t variable1;
       val_t variable2;
@@ -613,12 +613,12 @@ val_t partial_order___PartialOrderElement___reverse_linear_extension(val_t  self
       val_t variable4;
   trace.prev = tracehead; tracehead = &trace;
   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]*/
     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 +627,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,20 +644,20 @@ 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, LOCATE_partial_order, 291, LOCATE_partial_order___PartialOrderElement_____l};
   val_t variable0;
   val_t variable1;
   trace.prev = tracehead; tracehead = &trace;
   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, LOCATE_partial_order, 297, LOCATE_partial_order___PartialOrderElement_____leq};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -668,7 +668,7 @@ val_t partial_order___PartialOrderElement_____leq(val_t  self, val_t  param0) {
   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,7 +677,7 @@ 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, LOCATE_partial_order, 303, LOCATE_partial_order___PartialOrderElement_____g};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -693,7 +693,7 @@ 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, LOCATE_partial_order, 309, LOCATE_partial_order___PartialOrderElement_____geq};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -716,18 +716,18 @@ 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, LOCATE_partial_order, 315, LOCATE_partial_order___PartialOrderElement___register_direct_smallers};
   val_t variable0;
   val_t variable1;
   trace.prev = tracehead; tracehead = &trace;
   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, LOCATE_partial_order, 320, LOCATE_partial_order___PartialOrderElement___init};
   val_t variable0;
   val_t variable1;
   val_t variable2;
@@ -755,12 +755,12 @@ void partial_order___PartialOrderElement___init(val_t  self, val_t  param0, val_
   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 +773,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*/;
     }